このページでは、Google Distributed Cloud クラスタノードに SSH で接続する方法について説明します。
このページは、基盤となる技術インフラストラクチャのライフサイクルを管理する IT 管理者と運用担当者を対象としています。Google Cloud のコンテンツで参照する一般的なロールとタスク例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。
始める前に
以降の手順を行う前に、ユーザー クラスタと管理クラスタの kubeconfig
ファイルの場所を確認しておく必要があります。デフォルトでは、これらのファイルは、管理者クラスタとユーザー クラスタを作成したディレクトリに保存されます。kubeconfig
の詳細については、GKE ドキュメントの kubectl 用のクラスタ アクセスの構成をご覧ください。
クラスタノードの IP アドレスを取得する
ユーザー クラスタノードの IP アドレスを取得します。
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes --output wide
ここで、[USER_CLUSTER_KUBECONFIG] はユーザー クラスタの kubeconfig ファイルのパスです。
管理クラスタノードの IP アドレスを取得します。
kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get nodes --output wide
ここで、[ADMIN_CLUSTER_KUBECONFIG] は管理クラスタの kubeconfig ファイルのパスです。
どちらのコマンドでも、INTERNAL-IP
フィールドをメモします。これらはノードの IP アドレスです。NAME
フィールドには、固有の ID が付加されたユーザー クラスタの名前が含まれます。たとえば、my-user-cluster-12345678-abcdef
というノードは my-user-cluster
という名前のユーザー クラスタの一部です。
SSH を使用してユーザー クラスタ ノードに接続する
ユーザー クラスタの SSH 認証鍵を取得します。
kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n [USER_CLUSTER_NAME] ssh-keys \ -o jsonpath='{.data.ssh\.key}' | base64 -d > \ ~/.ssh/[USER_CLUSTER_NAME].key && chmod 600 ~/.ssh/[USER_CLUSTER_NAME].key
ここで
[ADMIN_CLUSTER_KUBECONFIG] は、管理クラスタの kubeconfig ファイルのパスです。
[USER_CLUSTER_NAME] は、ユーザー クラスタの名前です。これは、ユーザー クラスタの作成時に指定した名前です。
上記のコマンドによって、次の処理が実行されます。
管理クラスタから、[USER_CLUSTER_NAME] Namespace で
ssh-keys
という名前の Secret のssh.key
フィールドを取得します。鍵を Base64 でデコードします。
デコードされた鍵をファイル
~/.ssh/[USER_CLUSTER_NAME].key
に保存します。鍵ファイルに適切なアクセス権を設定します。
鍵を使用してユーザー クラスタノードに SSH 接続します。
ssh -i ~/.ssh/[USER_CLUSTER_NAME].key anthos@[USER_NODE_IP]
ここで、[USER_NODE_IP] は以前に収集したユーザー クラスタ内のノードの内部 IP アドレスです。
SSH を使用した管理クラスタノードへの接続
管理クラスタの SSH 認証鍵を取得します。
kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n kube-system sshkeys \ -o jsonpath='{.data.vsphere_tmp}' | base64 -d > \ ~/.ssh/admin-cluster.key && chmod 600 ~/.ssh/admin-cluster.key
ここで、[ADMIN_CLUSTER_KUBECONFIG] は管理クラスタの kubeconfig ファイルのパスです。
上記のコマンドによって、次の手順が行われます。
管理クラスタから、
kube-system
Namespace でsshkeys
という名前の Secret のvsphere_tmp
フィールドを取得します。Base64 で
vsphere_tmp
フィールドをデコードします。これが鍵となります。デコードされた鍵をファイル
~/.ssh/admin-cluster.key
に保存します。鍵ファイルに適切なアクセス権を設定します。
鍵を使用して管理クラスタノードに SSH 接続します。
ssh -i ~/.ssh/admin-cluster.key anthos@[ADMIN_NODE_IP]
ここで、[ADMIN_NODE_IP] は以前に収集した管理クラスタ内のノードの内部 IP アドレスです。