このページでは、GKE On-Prem クラスタノードに SSH 接続する方法を説明します。
クラスタノードの 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 ファイルのパスです。
SSH を使用してユーザー クラスタ ノードに接続する
ユーザー クラスタの SSH 認証鍵を取得します。
kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n [USER_CLUSTER_NAME] ssh-keys -o yaml \ | grep ssh.key: | awk '{ print $NF }' | 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 ubuntu@[NODE_IP]
ここで、[NODE_IP] はユーザー クラスタ内のノードの IP アドレスです。
SSH を使用して管理クラスタノードに接続する
管理クラスタの SSH 認証鍵を取得します。
kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n kube-system sshkeys -o yaml \ | grep vsphere_tmp: | awk '{ print $NF }' | 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 ubuntu@[NODE_IP]
ここで、[NODE_IP] は管理クラスタ内のノードの IP アドレスです。