可以 vmware-system-user
用户身份使用私钥通过 SSH 连接到 Tanzu Kubernetes 集群节点。
您可以以 vmware-system-user
用户身份通过 SSH 连接到任何 Tanzu Kubernetes 集群节点。包含 SSH 私钥的机密被命名为 CLUSTER-NAME-ssh
。有关详细信息,请参见获取 Tanzu Kubernetes 集群密钥。
要使用私钥通过 SSH 连接到 Tanzu Kubernetes 集群节点,请在 主管集群 上创建跳转盒 vSphere Pod。
前提条件
过程
- 连接到 主管集群。
- 创建名为 NAMESPACE 的环境变量,其值是置备了目标 Tanzu Kubernetes 集群的 vSphere 命名空间 的名称。
export NAMESPACE=VSPHERE-NAMESPACE
- 将上下文切换到置备了 vSphere 命名空间 集群的 Tanzu Kubernetes。
kubectl config use-context $NAMESPACE
- 查看
TKGS-CLUSTER-NAME-ssh
密钥对象。kubectl get secrets - 使用以下
jumpbox.yaml
创建 vSphere Pod。将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
规范部署 pod。kubectl apply -f jumpbox.yamlpod/jumpbox created - 验证 pod 是否正在运行。
kubectl get podsNAME READY STATUS RESTARTS AGE jumpbox 1/1 Running 0 3h9m注: 您也应会在 vSphere 命名空间 中看到 vCenter 中的 jumpbox pod。
- 通过运行以下一组命令,创建具有目标集群节点的 IP 地址的环境变量。
- 获取目标虚拟机的名称。
kubectl get virtualmachines
- 创建环境变量
VMNAME
,其值为目标节点的名称。export VMNAME=NAME-OF-THE-VIRTUAL-MACHINE - 创建环境变量
VMIP
,其值为目标节点虚拟机的 IP 地址。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 [ ~ ]$ - 在节点上执行所需的操作。
注意: 您可能需要使用
sudo
或sudo su
在节点上执行某些操作,例如重新启动 kubelet。 - 完成后,键入 exit,注销 vSphere Pod 上的 SSH 会话。
- 要删除 pod,请运行命令
kubectl delete pod jumpbox
。小心: 为安全起见,请考虑在完成工作后删除 jumpbox pod。如果需要,可以稍后重新创建。