可以以 vmware-system-user
用户身份使用私钥通过 SSH 连接 TKG 集群节点。
您可以以 vmware-system-user
用户身份通过 SSH 连接到任何 TKG 集群节点。包含 SSH 私钥的机密被命名为 CLUSTER-NAME-ssh
。请参见使用 Kubectl 获取 TKG 集群密钥。
要使用私钥通过 SSH 连接 TKG 集群节点,请在 主管 上创建跳转盒 vSphere Pod。
过程
- 连接到 主管。
- 创建名为 NAMESPACE 的环境变量,其值是置备了目标 TKG 集群的 vSphere 命名空间 的名称。
export NAMESPACE=VSPHERE-NAMESPACE
- 将上下文切换到置备了 vSphere 命名空间 集群的 Tanzu Kubernetes。
kubectl config use-context $NAMESPACE
- 查看
TKG-CLUSTER-NAME-ssh
密钥对象。
- 创建 Docker Hub 注册表凭据密钥。
默认情况下,将从 Docker Hub 中提取用于创建 vSphere Pod (PhotonOS) 的映像。您可能需要凭据密钥才能成功提取该映像。请参见
创建专用注册表凭据密钥。
- 使用以下
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
imagePullSecrets:
- name: regcred
- 通过应用
jumpbox.yaml
规范部署 pod。
kubectl apply -f jumpbox.yaml
- 验证 pod 是否正在运行。
NAME 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@tkg-cluster-1-control-plane-66tbr [ ~ ]$
- 在节点上执行所需的操作。
注意: 您可能需要使用
sudo
或
sudo su
在节点上执行某些操作,例如重新启动 kubelet。
- 完成后,键入 exit,注销 vSphere Pod 上的 SSH 会话。
- 要删除 pod,请运行命令
kubectl delete pod jumpbox
。
小心: 为安全起见,请考虑在完成工作后删除 jumpbox pod。如果需要,可以稍后重新创建。