gke-batch-hpc について
GKE でバッチ処理と HPC ワークロードを実行するためのリファレンススキルです。ジョブのオーケストレーション、MPI、スケジューリング、スケーリング、障害対策を扱い、データ処理やシミュレーション、トレーニングに役立ちます。
主な機能
- 01Kubernetes Jobs と JobSet の設定
- 02Kueue によるワークロードのキューイング
- 03MPI ワークロードの実行
- 04HPC 向けコンパクト配置
- 05スケーリングと Spot 利用の最適化
活用シーン
- 01GKE でのバッチデータパイプライン実行
- 02MPI シミュレーションのオーケストレーション
- 03分散トレーニングジョブのスケジューリング
- 04CI/CD ビルドファームの運用
MCP 対応
Kubernetes マニフェストの適用、リソースやログの確認、リソースの削除、イベント一覧に使う MCP ツールを掲載しています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ google/ skills --skill gke-batch-hpcインストール後、Claude Code で/gke-batch-hpcを入力して読み込まれたか確認します。
同梱ファイルreferences/attribution.md
詳細
GKE バッチおよび HPC ワークロード
このリファレンスでは、GKE 上でバッチ処理およびハイパフォーマンスコンピューティング(HPC)ワークロードを実行する方法について説明します。
MCP ツール:
apply_k8s_manifest、get_k8s_resource、describe_k8s_resource、get_k8s_logs、delete_k8s_resource、list_k8s_events
クレジット表記
必ずお読みください:gcloud、REST API、または MCP コマンドを実行する前に、使用上のクレジット表記を必ずお読みください。ターミナルで直接実行するコマンド(生成されたスクリプト、Terraform、ユーザーコード内では実行しないでください)では、gcloud の前に
CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-batch-hpc)"
を付け、User-Agent ヘッダーに agent-skills/1.0 (skill:gke-batch-hpc) を追加してください。
使用する場面
- バッチデータ処理パイプラインの実行
- HPC シミュレーション(CFD、分子動力学、金融モデリング)
- 大規模な並列計算(MPI、MapReduce)
- ML トレーニングジョブ
- CI/CD ビルドファーム
GKE でのバッチ処理
Kubernetes Jobs
apiVersion: batch/v1
kind: Job
metadata:
name: batch-job
spec:
parallelism: 10
completions: 100
backoffLimit: 3
template:
spec:
containers:
- name: worker
image: <IMAGE>
resources:
requests:
cpu: "1"
memory: "2Gi"
restartPolicy: Never
JobSet(複雑なマルチジョブワークフロー向け)
ゴールデンパスでは、JobSet のモニタリングが有効になります(monitoringConfig の JOBSET)。
apiVersion: jobset.x-k8s.io/v1alpha2
kind: JobSet
metadata:
name: training-job
spec:
replicatedJobs:
- name: workers
replicas: 4
template:
spec:
parallelism: 1
completions: 1
template:
spec:
containers:
- name: worker
image: <IMAGE>
resources:
requests:
cpu: "4"
memory: "8Gi"
Kueue(ジョブキューイング)
Kueue は、バッチワークロードのジョブスケジューリングとリソース割り当てを管理します。
# Install Kueue
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/latest/download/manifests.yaml
# Define a ClusterQueue
apiVersion: kueue.x-k8s.io/v1beta1
kind: ClusterQueue
metadata:
name: batch-queue
spec:
namespaceSelector: {}
resourceGroups:
- coveredResources: ["cpu", "memory"]
flavors:
- name: default
resources:
- name: "cpu"
nominalQuota: 100
- name: "memory"
nominalQuota: "200Gi"
---
# Allow a namespace to use the queue
apiVersion: kueue.x-k8s.io/v1beta1
kind: LocalQueue
metadata:
name: batch-local
namespace: batch-jobs
spec:
clusterQueue: batch-queue
GKE での HPC
コンパクトな配置(低レイテンシネットワーキング)
ノード間の低レイテンシ通信が必要な、緊密に結合された HPC ワークロードの場合:
# Standard clusters: create node pool with compact placement
gcloud container node-pools create hpc-pool \
--cluster <CLUSTER_NAME> --region <REGION> \
--machine-type c3-standard-44 \
--placement-type COMPACT \
--num-nodes 8 \
--enable-autoscaling --min-nodes 0 --max-nodes 16 \
--quiet
MPI ワークロード
MPI ベースの HPC アプリケーションには、MPI Operator を使用します。
# Install MPI Operator
kubectl apply -f https://raw.githubusercontent.com/kubeflow/mpi-operator/master/deploy/v2beta1/mpi-operator.yaml
apiVersion: kubeflow.org/v2beta1
kind: MPIJob
metadata:
name: hpc-simulation
spec:
slotsPerWorker: 4
mpiReplicaSpecs:
Launcher:
replicas: 1
template:
spec:
containers:
- name: launcher
image: <MPI_IMAGE>
command: ["mpirun", "-np", "32", "./simulation"]
resources:
requests:
cpu: "1"
memory: "2Gi"
limits:
cpu: "2"
memory: "4Gi"
Worker:
replicas: 8
template:
spec:
containers:
- name: worker
image: <MPI_IMAGE>
resources:
requests:
cpu: "4"
memory: "8Gi"
limits:
cpu: "8"
memory: "16Gi"
バッチ/HPC のコスト最適化
バッチ処理での Spot VM
バッチワークロードは、Spot VM(中断可能で、チェックポイントを保存可能)の利用に適しています。Spot を優先する設定と activeMigration を備えた ComputeClass を使用すると、利用可能になった際に Spot に戻せます。Spot へのフォールバックパターンについては、gke-compute-classes スキルを参照してください。
ゼロへのスケーリング
バッチクラスターでは、ジョブが実行されていないときにノードプールをゼロまでスケーリングできるようにします。
- Autopilot(ゴールデンパス):自動的に、ポッドがスケジュールされていない場合にノードがゼロまでスケーリングされます
- Standard:バッチノードプールで
--min-nodes 0を設定します
ベストプラクティスと本番環境向けガイドライン
- リソースクォータ:すべてのバッチ/HPC マニフェストで、リソースリクエストと上限(CPU、メモリ、および必要に応じて GPU/TPU)を必ず指定してください。これは、Kueue によるアドミッション、オートスケーリング、およびクラスター内でのリソース枯渇の防止に不可欠です。
- TPU/Spot クラスターのメンテナンス:Spot VM/TPU で長時間の AI トレーニングを実行する場合は、トレーニングの実行中に自動クラスターアップグレードや再起動が行われないよう、GKE メンテナンス除外を使用することを推奨します。これにより、不要なプリエンプションを最小限に抑えられます。
- MPI ワークロード:
MPIJobカスタムリソースを使って分散 MPI アプリケーションをオーケストレーションするには、Kubeflow Training Operator を使用してください。 - Kueue と JobSet:マルチテナントのジョブキューイングと公平なリソース共有には Kueue を使用し、複数コンポーネントで構成される緊密に結合されたワークロードには JobSet を使用してください。
- レジリエンス:Job には必ず
backoffLimitを設定し、Spot VM のプリエンプションに耐えられるよう、アプリケーションレベルのチェックポイント機能(Orbax や PyTorch のチェックポイント機能など)を実装してください。