バージョン 1.4このバージョンは完全にサポートされていますが、最新バージョンではありません。

SSH を使用したクラスタノードへの接続

このページでは、GKE on-prem クラスタノードに SSH 接続する方法を説明します。

始める前に

これらの手順を完了するには、ユーザー クラスタと管理クラスタの 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 アドレスです。

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 ubuntu@[NODE_IP]

ここで、[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 ubuntu@[NODE_IP]

ここで、[NODE_IP]以前に収集した管理クラスタ内のノードの内部 IP アドレスです。