このページでは、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.controlPlaneVIP
と loadBalancer.vips.ingressVIP
の値として VIP を指定します。
管理クラスタの構成ファイルで設定した値("ManualLB"
、"F5BigIP"
、または "Seesaw"
)と同じ値を loadBalancer.kind
に設定します。次に、対応するセクション(manualLB
、f5BigIP
、または seesaw
)に入力します。
masterNode
masterNode
セクションに入力します。
nodePools
nodePools
セクションに入力します。
antiAffinityGroups
antiAffinityGroups.enabled
を true
または false
に設定します。
authentication
OpenID Connect(OIDC)を使用してユーザーを認証する場合は、authentication.oidc
セクションに入力します。
ユーザー クラスタの vCenter Server に追加のサービス証明書を提供する場合は、authentication.sni
セクションに入力します。
stackdriver
stackdriver
セクションに入力します。
gkeConnect
gkeConnect
セクションに入力します。
cloudRun
cloudRun.enabled
を true
または 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 ファイルのパスです。
出力には、ユーザー クラスタノードが表示されます。
トラブルシューティング
クラスタの作成とアップグレードに対するトラブルシューティングをご覧ください。