Kubernetes クラスタを維持する

Google Distributed Cloud(GDC)エアギャップを使用すると、GDC 上の GKE を使用して、Kubernetes クラスタを作成した後に管理できます。このサービスを使用すると、次のワークフローでコンテナ ワークロードの要件の変化に対応し、既存のクラスタノードを維持できます。

このドキュメントは、複数のプロジェクトにまたがるクラスタでホストされているコンテナ ワークロードを管理するプラットフォーム管理者グループ内の IT 管理者と、単一のプロジェクト内でアプリケーション ワークロードの作成を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。詳細については、GDC のエアギャップ環境のユーザー グループのドキュメントをご覧ください。

始める前に

このドキュメントのタスクを完了するには、次のリソースとロールが必要です。

  • 共有 Kubernetes クラスタでノードプールを表示して管理するには、組織の IAM 管理者に次のロールの付与を依頼してください。

    • ユーザー クラスタ管理者(user-cluster-admin
    • ユーザー クラスタ ノード閲覧者(user-cluster-node-viewer

    これらのロールはプロジェクト Namespace にバインドされていません。

  • 標準 Kubernetes クラスタでノードプールを表示して管理するには、組織の IAM 管理者に Standard Cluster 管理者(standard-cluster-admin)ロールの付与を依頼してください。このロールはプロジェクトの Namespace にバインドされます。

  • Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認してください。

    • Kubernetes クラスタ名を確認するか、プラットフォーム管理者グループのメンバーにクラスタ名を確認します。

    • まだ Kubernetes クラスタの kubeconfig ファイルがない場合は、ログインして生成します。

    • Kubernetes クラスタの kubeconfig パスを使用して、これらの手順の KUBERNETES_CLUSTER_KUBECONFIG を置き換えます。

プロジェクト階層内のクラスタを移動する

プロジェクトは、サービス インスタンスの論理グループ化を提供します。共有 Kubernetes クラスタを GDC プロジェクト階層に追加または削除して、サービスを適切にグループ化できます。標準クラスタは単一のプロジェクトにのみスコープ設定されているため、プロジェクト階層内で移動することはできません。

プロジェクトを共有クラスタに接続する

GDC コンソールから共有クラスタを作成する場合は、コンテナ ワークロードを正常にデプロイする前に、少なくとも 1 つのプロジェクトを関連付ける必要があります。既存のクラスタにプロジェクトを追加する必要がある場合は、次の手順を行います。

  1. ナビゲーション メニューで、[Kubernetes Engine] > [クラスタ] を選択します。
  2. クラスタのリストでクラスタをクリックして、[クラスタの詳細] ページを開きます。
  3. [プロジェクトを接続] を選択します。
  4. プロジェクト リストから追加する利用可能なプロジェクトを選択します。[保存] をクリックします。

共有クラスタからプロジェクトを切り離す

既存の共有クラスタからプロジェクトを切り離すには、次の操作を行います。

  1. ナビゲーション メニューで、[Kubernetes Engine] > [クラスタ] を選択します。
  2. クラスタのリストでクラスタをクリックして、[クラスタの詳細] ページを開きます。
  3. クラスタから切り離すプロジェクトの [切り離し] をクリックします。

組織内のすべてのクラスタを表示する

組織で使用可能なすべての Kubernetes クラスタ(ステータス、Kubernetes バージョン、その他の詳細を含む)を表示できます。

Kubernetes クラスタはゾーンリソースであるため、ゾーンごとにクラスタを一覧表示することしかできません。

コンソール

  • ナビゲーション メニューで、[Kubernetes Engine] > [クラスタ] を選択します。

    組織内の利用可能なすべての共有クラスタとそのステータスなどの情報が表示されます。

    組織内の各共有クラスタのステータスやその他の情報が表示されるクラスタの詳細ページ。

gdcloud

  • 組織内のゾーンで使用可能な共有クラスタを一覧表示します。

    gdcloud clusters list
    

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

    CLUSTERREF.NAME   READINESS.STATE   TYPE   CURRENTVERSION.USERCLUSTERVERSION     CURRENTVERSION.SUPPORT.STATUS
    user-vm-1         Ready             user   1.15.0-gdch.394225-1.28.15-gke.1200   In Support
    user-vm-2         Ready             user   1.15.0-gdch.394225-1.29.12-gke.800    In Support
    

API

  • 組織内のゾーンで使用可能な Kubernetes クラスタを一覧表示します。

    kubectl get clusters.cluster.gdc.goog -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

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

    • MANAGEMENT_API_SERVER: ゾーン API サーバーの kubeconfig パス。ターゲット ゾーンの API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインで詳細を確認してください。
    • KUBERNETES_CLUSTER_NAMESPACE: クラスタの Namespace。共有クラスタの場合は、platform Namespace を使用します。標準クラスタの場合は、クラスタのプロジェクト Namespace を使用します。

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

    NAME        STATE     K8S VERSION
    user-vm-1   Running   1.25.10-gke.2100
    user-test   Running   1.26.5-gke.2100
    

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

GDC ゾーンで使用可能な Kubernetes バージョンを一覧表示して、クラスタでアクセスできる Kubernetes 機能を検証できます。

  • ゾーンで使用可能な Kubernetes バージョンを一覧表示します。

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

    MANAGEMENT_API_SERVER は、クラスタのゾーン API サーバーの kubeconfig ファイルに置き換えます。

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

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

更新可能なプロパティを表示する

Kubernetes クラスタごとに、作成後に変更できるプロパティのセットがあります。変更できるのは、Cluster カスタム リソースの spec にある変更可能なプロパティのみです。spec のすべてのプロパティが、クラスタのプロビジョニング後に更新できるわけではありません。更新可能なプロパティを表示するには、次の操作を行います。

コンソール

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

  2. Kubernetes クラスタのリストで、クラスタ名をクリックしてプロパティを表示します。

  3. 編集可能なプロパティには、 [編集] アイコンが表示されます。

kubectl

  • Cluster 仕様のプロパティのリストと、各プロパティに対応する有効な値を表示します。

    kubectl explain clusters.cluster.gdc.goog.spec \
        --kubeconfig MANAGEMENT_API_SERVER
    

    MANAGEMENT_API_SERVER は、ゾーン API サーバーの kubeconfig パスに置き換えます。ターゲット ゾーンの API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインで詳細を確認してください。

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

    KIND:     Cluster
    VERSION:  cluster.gdc.goog/v1
    
    RESOURCE: spec <Object>
    
    DESCRIPTION:
        <empty>
    
    FIELDS:
      clusterNetwork    <Object>
        The cluster network configuration. If unset, the default configurations
        with pod and service CIDR sizes are used. Optional. Mutable.
    
      initialVersion    <Object>
        The GDC air-gapped version information of the user cluster during cluster creation.
        Optional. Default to use the latest applicable version. Immutable.
    
      loadBalancer  <Object>
        The load balancer configuration. If unset, the default configuration with
        the ingress service IP address size is used. Optional. Mutable.
    
      nodePools <[]Object>
        The list of node pools for the cluster worker nodes. Optional. Mutable.
    
      releaseChannel    <Object>
        The release channel a cluster is subscribed to. When a cluster is
        subscribed to a release channel, GDC maintains the cluster versions for
        users. Optional. Mutable.
    

    これらの設定を更新するには、GDC コンソールまたは kubectl CLI を使用します。たとえば、ノードプールのサイズを変更できます。

次のステップ