コンテナ ワークロードを実行するクラスタを作成する

コンテナ ワークロードのデプロイを可能にするユーザー クラスタを作成します。

始める前に

ユーザー クラスタの作成に必要な権限を取得するには、組織の IAM 管理者にユーザー クラスタ管理者ロール(user-cluster-admin ロール)を付与するよう依頼してください。

ユーザー クラスタを作成する

ユーザー クラスタの作成に必要な権限を取得するには、IAM 管理者にユーザー クラスタ管理者ロール(user-cluster-admin ロール)の付与を依頼してください。

次の手順を完了して、ユーザー クラスタを作成します。

コンソール

  1. ナビゲーション メニューで [クラスタ] を選択します。

  2. [クラスタを作成] をクリックします。

  3. [名前] フィールドに、ユーザー クラスタの名前を指定します。

  4. GDC クラスタのバージョンを選択します。各バージョンは、個別の Kubernetes バージョンにマッピングされます。

  5. [次へ] をクリックします。

  6. クラスタのネットワーク設定を構成します。クラスタの作成後にこれらのネットワーク設定を変更することはできません。ユーザー クラスタでサポートされているデフォルトのインターネット プロトコルは、インターネット プロトコル バージョン 4(IPv4)のみです。

    1. 専用のロードバランサ ノードを作成する場合は、作成するノードの数を入力します。デフォルトでは、ノードはゼロになり、ロードバランサ トラフィックはコントロール ノードを通過します。

    2. 使用するサービス CIDR(クラスレス ドメイン間ルーティング)を選択します。ロードバランサなどのデプロイされたサービスには、この範囲から IP アドレスが割り当てられます。

    3. 使用する Pod CIDR を選択します。クラスタは、この範囲から Pod と VM に IP アドレスを割り当てます。

    4. [次へ] をクリックします。

  7. ユーザー クラスタ用に自動生成されたデフォルトのノードプールの詳細を確認します。 [編集] をクリックして、デフォルトのノードプールを変更します。

  8. 追加のノードプールを作成するには、[ノードプールを追加] を選択します。デフォルトのノードプールを編集するときや、新しいノードプールを追加するときに、次のオプションを使用してカスタマイズします。

    1. ノードプールに名前を割り当てます。ノードプールの作成後に名前を変更することはできません。
    2. ノードプール内に作成するワーカーノードの数を指定します。
    3. ワークロードの要件に最も適したマシンクラスを選択します。次の設定のリストを表示します。

      • マシンタイプ
      • CPU
      • メモリ
    4. [保存] をクリックします。

  9. [作成] をクリックして、ユーザー クラスタを作成します。

API

API を直接使用して新しいユーザー クラスタを作成するには、カスタム リソースを GDC インスタンスに適用します。

  1. Cluster カスタム リソースを作成し、cluster.yaml などの YAML ファイルとして保存します。

    apiVersion: cluster.gdc.goog/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: platform
    spec:
      clusterNetwork:
        podCIDRSize: POD_CIDR
        serviceCIDRSize: SERVICE_CIDR
      initialVersion:
        kubernetesVersion: KUBERNETES_VERSION
      loadBalancer:
        ingressServiceIPSize: LOAD_BALANCER_POOL_SIZE
      nodePools:
      - machineTypeName: MACHINE_TYPE
        name: NODE_POOL_NAME
        nodeCount: NUMBER_OF_WORKER_NODES
        taints: TAINTS
        labels: LABELS
      releaseChannel:
        channel: UNSPECIFIED
    

    次のように置き換えます。

    • CLUSTER_NAME: クラスタの名前。クラスタ名の末尾を -system にすることはできません。-system 接尾辞は、GDC によって作成されたクラスタ用に予約されています。
    • POD_CIDR: Pod の仮想 IP アドレスが割り当てられるネットワーク範囲のサイズ。未設定の場合、デフォルト値の 21 が使用されます。
    • SERVICE_CIDR: サービス仮想 IP アドレスが割り振られるネットワーク範囲のサイズ。未設定の場合、デフォルト値の 23 が使用されます。
    • KUBERNETES_VERSION: クラスタの Kubernetes バージョン(1.26.5-gke.2100 など)。構成可能な Kubernetes バージョンを一覧表示するには、クラスタで使用可能な Kubernetes バージョンを一覧表示するをご覧ください。
    • LOAD_BALANCER_POOL_SIZE: ロードバランサ サービスで使用される重複しない IP アドレスプールのサイズ。設定されていない場合は、デフォルト値の 20 が使用されます。
    • MACHINE_TYPE: ノードプールのワーカーノードのマシンタイプ。構成可能な内容については、使用可能なマシンタイプをご覧ください。
    • NODE_POOL_NAME: ノードプールの名前。
    • NUMBER_OF_WORKER_NODES: ノードプールにプロビジョニングするワーカーノードの数。
    • TAINTS: このノードプールのノードに適用する taint。このフィールドは省略できます。
    • LABELS: このノードプールのノードに適用するラベル。Key-Value ペアのリストが含まれています。このフィールドは省略可能です。
  2. カスタム リソースを GDC インスタンスに適用します。

    kubectl apply -f cluster.yaml --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    ADMIN_CLUSTER_KUBECONFIG は、組織管理クラスタの kubeconfig ファイルのパスに置き換えます。

クラスタで使用可能な Kubernetes バージョンを一覧表示する

kubectl CLI を使用して、GDC インスタンスで使用可能な Kubernetes バージョンを一覧表示できます。

kubectl get userclustermetadata.upgrade.private.gdc.goog \
    -o=custom-columns=K8S-VERSION:.spec.kubernetesVersion \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

ADMIN_CLUSTER_KUBECONFIG は、管理クラスタの kubeconfig ファイルのパスに置き換えます。

出力は次のようになります。

K8S-VERSION
1.25.10-gke.2100
1.26.5-gke.2100
1.27.4-gke.500

ユーザー クラスタで GPU リソースをサポートする

GDC は、ユーザー クラスタに NVIDIA グラフィック プロセッシング ユニット(GPU)のサポートを提供し、GPU デバイスをユーザー ワークロードとして実行します。GPU マシンがプロビジョニングされているクラスタでは、GPU サポートがデフォルトで有効になっています。Deep Learning Containers を活用する前に、ユーザー クラスタが GPU デバイスをサポートしていることを確認します。たとえば、Deep Learning Containers を実行する場合は、少なくとも 1 つの GPU ノードを含むユーザー クラスタを作成してください。

ユーザー クラスタは、GDC コンソールまたは API を直接使用して作成できます。関連付けられたコンテナで GPU ワークロードをサポートするように、ユーザー クラスタに GPU マシンをプロビジョニングします。詳細については、ユーザー クラスタを作成するをご覧ください。

サポートされている NVIDIA GPU カード

GDC クラスタは A100 PCIe 80 GB NVIDIA GPU をサポートしています。このサポートを有効にするには、ユーザー クラスタに a2-ultragpu-1g-gdc マシンタイプをプロビジョニングします。