ユーザー クラスタの作成

このページでは、Anthos clusters on VMware(GKE On-Prem)用にユーザー クラスタを作成する方法について説明します。

ここでは手順全体を詳しく解説します。ユーザー クラスタの作成についての簡略な説明については、ユーザー クラスタの作成(クイックスタート)をご覧ください。

始める前に

管理クラスタを作成します

管理ワークステーションへの SSH 接続の確立

管理ワークステーションへの SSH 接続を確立します。

gkeadm により、管理ワークステーションでコンポーネント アクセス サービス アカウントが有効にされたことを思い出してください。

このトピックの残りの手順はすべて、ホーム ディレクトリの管理ワークステーションで行います。

認証情報の構成ファイル

gkeadm を使用して管理ワークステーションを作成した際に、credential.yaml という名前の認証情報構成ファイルに入力しました。このファイルは、vCenter Server のユーザー名とパスワードを保持しています。

ユーザー クラスタの構成ファイル

gkeadm が管理用ワークステーションを作成した際に、user-cluster.yaml という名前の構成ファイルが生成されました。この構成ファイルはユーザー クラスタの作成用です。

構成ファイルの入力

name

name フィールドにユーザー クラスタの名前を設定します。

gkeOnPremVersion

このフィールドはあらかじめ入力されています。

vCenter

管理クラスタの構成ファイルvCenter セクションに設定する値はグローバルです。つまり、その値は管理クラスタとユーザー クラスタに適用されます。

作成する各ユーザー クラスタで、一部のグローバル vCenter 値をオーバーライドできます。

グローバル vCenter 値をオーバーライドする場合は、ユーザー クラスタ構成ファイルの vCenter セクションの関連するフィールドに入力します。

network

管理クラスタの構成ファイルで設定した値("dhcp" または "static")と同じ値を、network.ipMode.type に設定します。

ipMode.type"static" に設定する場合は、ユーザー クラスタ内のノードの静的 IP アドレスを指定する IP ブロック ファイルを作成します。network.ipMode.ipBlockFilePath を IP ブロック ファイルのパスに設定します。

network セクションの残りのフィールドに値を入力します。

DHCP サーバーを使用するか静的 IP アドレスのリストを指定するかにかかわらず、次の要件を満たす十分な数の IP アドレスが必要です。

  • ユーザー クラスタ内のノード

  • アップグレード中に一時的に使用するユーザー クラスタ内の追加のノード

前述のとおり、静的 IP アドレスを使用する場合は、IP ブロック ファイルを指定する必要があります。6 つのホストがある IP ブロック ファイルの例を次に示します。これは、5 つのノードと、不定期に使用されるアップグレード用の 6 つ目のノードがあるクラスタに十分なアドレスです。

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.21
      hostname: user-host1
    - ip: 172.16.20.22
      hostname: user-host2
    - ip: 172.16.20.23
      hostname: user-host3
    - ip: 172.16.20.24
      hostname: user-host4
    - ip: 172.16.20.25
      hostname: user-host5
    - ip: 172.16.20.26
      hostname: user-host6

loadBalancer

ユーザー クラスタの Kubernetes API サーバー用に VIP を確保します。ユーザー クラスタの Ingress サービス用に別の VIP を確保します。loadBalancer.vips.controlPlaneVIPloadBalancer.vips.ingressVIP の値として VIP を指定します。

管理クラスタの構成ファイルで設定した値("ManualLB""F5BigIP"、または "Seesaw")と同じ値を loadBalancer.kind に設定します。次に、対応するセクション(manualLBf5BigIP、または seesaw)に入力します。

masterNode

masterNode セクションに入力します。

nodePools

nodePools セクションに入力します。

antiAffinityGroups

antiAffinityGroups.enabledtrue または false に設定します。

authentication

OpenID Connect(OIDC)を使用してユーザーを認証する場合は、authentication.oidc セクションに入力します。

ユーザー クラスタの vCenter Server に追加のサービス証明書を提供する場合は、authentication.sni セクションに入力します。

stackdriver

stackdriver セクションに入力します。

gkeConnect

gkeConnect セクションに入力します。

cloudRun

cloudRun.enabledtrue または false に設定します。

usageMetering

クラスタで使用状況測定を有効にする場合は、usageMetering セクションに値を入力します。

cloudAuditLogging

クラスタの Kubernetes API サーバーの監査ログを Cloud Audit Logs と統合する場合は、cloudAuditLogging セクションに値を入力します。

構成ファイルの検証

ユーザー クラスタの構成ファイルに入力したら、gkectl check-config を実行してファイルが有効であることを検証します。

gkectl check-config --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_PATH]

ここで

  • [ADMIN_CLUSTER_KUBECONFIG] は管理クラスタの kubeconfig ファイルのパスです。

  • [CONFIG_PATH] は、ユーザー クラスタの構成ファイルのパスです。

コマンドがエラー メッセージを返した場合は、問題を修正してファイルを再度検証します。

時間のかかる検証をスキップする場合は、--fast フラグを渡します。個別の検証をスキップするには、--skip-validation-xxx フラグを使用します。check-config コマンドについて詳しくは、プリフライト チェックの実行をご覧ください。

ユーザー クラスタの Seesaw ロードバランサの作成

バンドルされた Seesaw ロードバランサを使用する場合は、このセクションの手順を行います。それ以外の場合は、このセクションをスキップします。

Seesaw ロードバランサの VM を作成して構成します。

gkectl create loadbalancer --kubeconfig kubeconfig --config user-cluster.yaml

コンテナ最適化 OS を vCenter にアップロードする

ユーザー クラスタ用にコンテナ最適化 OS ノードプールを作成する場合は、コンテナ最適化 OS を vCenter にアップロードする必要があります。

コンテナ最適化 OS を vCenter にアップロードするには、次のコマンドを実行します。

gkectl prepare --config ADMIN_CLUSTER_CONFIG_PATH --extra-os-image-types cos

ここで、ADMIN_CLUSTER_CONFIG_PATH は管理クラスタの構成ファイルのパスです。

ユーザー クラスタの作成

以下のようにユーザー クラスタを作成します。

gkectl create cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] \
  --config [CONFIG_PATH]

ここで

  • [CONFIG_PATH] は、ユーザー クラスタの構成ファイルのパスです。

  • [ADMIN_CLUSTER_KUBECONFIG] は管理クラスタの kubeconfig ファイルのパスです。

gkectl create cluster コマンドで、現在のディレクトリに [USER_CLUSTER_NAME]-kubeconfig という名前の kubeconfig ファイルが作成されます。この kubeconfig ファイルは後でユーザー クラスタとやり取りする際に必要になります。

ユーザー クラスタが実行されていることを確認する

ユーザー クラスタが実行されていることを確認します。

kubectl get nodes --kubeconfig [USER_CLUSTER_KUBECONFIG]

ここで、[USER_CLUSTER_KUBECONFIG] は kubeconfig ファイルのパスです。

出力には、ユーザー クラスタノードが表示されます。

トラブルシューティング

クラスタの作成とアップグレードに対するトラブルシューティングをご覧ください。

次のステップ