プライベート キーを使用して、vmware-system-user
として Tanzu Kubernetes クラスタ ノードに SSH で接続できます。
vmware-system-user
ユーザーとして任意の Tanzu Kubernetes クラスタ ノードに SSH で接続できます。SSH プライベート キーを含むシークレットには、CLUSTER-NAME-ssh
という名前が付いています。詳細については、『Tanzu Kubernetes クラスタのシークレットの取得』を参照してください。
プライベート キーを使用して SSH 経由で Tanzu Kubernetes クラスタ ノードに接続するには、スーパーバイザー クラスタ にジャンプ ボックス vSphere ポッド を作成します。
手順
- スーパーバイザー クラスタ に接続します。
- NAMESPACE という名前の環境変数を作成し、値に、ターゲット Tanzu Kubernetes クラスタがプロビジョニングされている vSphere 名前空間 の名前を指定します。
export NAMESPACE=VSPHERE-NAMESPACE
- Tanzu Kubernetes クラスタがプロビジョニングされている vSphere 名前空間 にコンテキストを切り替えます。
kubectl config use-context $NAMESPACE
-
TKGS-CLUSTER-NAME-ssh
シークレット オブジェクトを表示します。
- 次の
jumpbox.yaml
を使用して、vSphere ポッド を作成します。
namespace
値の
YOUR-NAMESPACE
を、ターゲット クラスタがプロビジョニングされている
vSphere 名前空間 に置き換えます。
secretName
値の
YOUR-CLUSTER-NAME
-ssh をターゲット クラスタの名前に置き換えます。
apiVersion: v1
kind: Pod
metadata:
name: jumpbox
namespace: YOUR-NAMESPACE #REPLACE
spec:
containers:
- image: "photon:3.0"
name: jumpbox
command: [ "/bin/bash", "-c", "--" ]
args: [ "yum install -y openssh-server; mkdir /root/.ssh; cp /root/ssh/ssh-privatekey /root/.ssh/id_rsa; chmod 600 /root/.ssh/id_rsa; while true; do sleep 30; done;" ]
volumeMounts:
- mountPath: "/root/ssh"
name: ssh-key
readOnly: true
resources:
requests:
memory: 2Gi
volumes:
- name: ssh-key
secret:
secretName: YOUR-CLUSTER-NAME-ssh #REPLACE
-
jumpbox.yaml
の仕様を適用して、ポッドをデプロイします。
kubectl apply -f jumpbox.yaml
- ポッドが実行されていることを確認します。
NAME READY STATUS RESTARTS AGE
jumpbox 1/1 Running 0 3h9m
注:
vSphere 名前空間 内の vCenter Server のジャンプボックス ポッドも確認する必要があります。
- 次の一連のコマンドを実行して、ターゲット クラスタ ノードの IP アドレスを持つ環境変数を作成します。
- ターゲット仮想マシンの名前を取得します。
kubectl get virtualmachines
- 値がターゲット ノードの名前である
VMNAME
環境変数を作成します。
export VMNAME=NAME-OF-THE-VIRTUAL-MACHINE
- 値がターゲット ノード仮想マシンの IP アドレスである
VMIP
環境変数を作成します。
export VMIP=$(kubectl -n $NAMESPACE get virtualmachine/$VMNAME -o jsonpath='{.status.vmIp}')
- 次のコマンドを実行して、ジャンプ ボックス ポッドを使用してクラスタ ノードに SSH 接続します。
kubectl exec -it jumpbox /usr/bin/ssh vmware-system-user@$VMIP
重要: コンテナを作成してソフトウェアをインストールするには、約 60 秒かかります。「error executing command in container: container_linux.go:370: starting container process caused: exec: "/usr/bin/ssh": stat /usr/bin/ssh: no such file or directory」というエラーが表示された場合は、数秒後に再実行してください。
- yes を入力して、ホストの信頼性を確認します。
The authenticity of host '10.249.0.999 (10.249.0.999)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.249.0.999' (ECDSA) to the list of known hosts.
Welcome to Photon 3.0
- ターゲット ノードに
vmware-system-user
としてログインしていることを確認します。
たとえば、次の出力は、システム ユーザーとして制御プレーン ノードにログインしていることを示しています。
vmware-system-user@tkgs-cluster-1-control-plane-66tbr [ ~ ]$
- ノードで必要な操作を実行します。
注目: kubelet の再起動などの特定の処理をノードで実行するには、
sudo
または
sudo su
を使用しなければならない場合があります。
- 操作完了後、exit を入力し、vSphere ポッド の SSH セッションからログアウトします。
- ポッドを削除するには、
kubectl delete pod jumpbox
コマンドを実行します。
注意: セキュリティを確保するには、作業の完了後にジャンプボックス ポッドを削除することを検討してください。必要に応じて、後でポッドを再作成できます。