可以 vmware-system-user 身分使用私密金鑰透過 SSH 連線至 TKG 叢集節點。

您可以 vmware-system-user 使用者身分透過 SSH 連線至任何 TKG 叢集節點。包含 SSH 私密金鑰的密碼名為 CLUSTER-NAME-ssh。請參閱使用 Kubectl 取得 TKG 叢集密碼

若要使用私密金鑰透過 SSH 連線至 TKG 叢集節點,您可以在 主管 上建立跳轉盒 vSphere 網繭

必要條件

在此工作中,可以將 vSphere 網繭 佈建為跳轉主機供 SSH 連線用。 vSphere 網繭 需要對 主管 使用 NSX 網路。如果正在對 主管 使用 vDS 網路,請參閱 以系統使用者身分使用密碼透過 SSH 連線至 TKG 服務 叢集節點

程序

  1. 連線至 主管
  2. 建立名為 NAMESPACE 的環境變數,其值為佈建目標 TKG 叢集之 vSphere 命名空間 的名稱。
    export NAMESPACE=VSPHERE-NAMESPACE
  3. 將內容切換至佈建 Tanzu Kubernetes 所在的 vSphere 命名空間 叢集。
    kubectl config use-context $NAMESPACE
  4. 檢視 TKG-CLUSTER-NAME-ssh 密碼物件。
    kubectl get secrets
  5. 建立 Docker Hub 登錄認證密碼。
    依預設,將從 Docker Hub 中提取用於建立 vSphere Pod (PhotonOS) 的映像。您可能需要認證密碼,才能成功提取該映像。請參閱 建立私人登錄認證密碼
  6. 使用下列 jumpbox.yaml 建立 vSphere 網繭
    namespaceYOUR-NAMESPACE 取代為已佈建目標叢集的 vSphere 命名空間。將 secretNameYOUR-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
    
  7. 透過套用 jumpbox.yaml 規格來部署網繭。
    kubectl apply -f jumpbox.yaml
    pod/jumpbox created
  8. 確認網繭是否正在執行。
    kubectl get pods
    NAME      READY   STATUS    RESTARTS   AGE
    jumpbox   1/1     Running   0          3h9m
    
    備註: 此外,還應在 vCenter 的 vSphere 命名空間 中看到跳躍方塊網繭。
  9. 透過執行下列一組命令,建立具有目標叢集節點之 IP 位址的環境變數。
    1. 取得目標虛擬機器的名稱。
      kubectl get virtualmachines
    2. 建立環境變數 VMNAME,其值為目標節點的名稱。
      export VMNAME=NAME-OF-THE-VIRTUAL-MACHINE
    3. 建立環境變數 VMIP,其值為目標節點虛擬機器的 IP 位址。
      export VMIP=$(kubectl -n $NAMESPACE get virtualmachine/$VMNAME -o jsonpath='{.status.vmIp}')
  10. 透過執行下列命令,使用跳躍方塊透過 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」,請在幾秒後再次嘗試執行此命令。
  11. 透過輸入 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
     
  12. 確認您已以 vmware-system-user 身分登入目標節點。
    例如,下列輸出指示您已以系統使用者身分登入控制平面節點。
    vmware-system-user@tkg-cluster-1-control-plane-66tbr [ ~ ]$
    
  13. 在節點上執行所需的作業。
    小心: 您可能需要使用 sudosudo su 在節點上執行某些作業,例如重新啟動 kubelet。
  14. 完成後,輸入 exit 登出 vSphere 網繭 上的 SSH 工作階段。
  15. 若要刪除網繭,請執行命令 kubectl delete pod jumpbox
    注意: 基於安全考量,請考慮在完成工作後刪除跳轉盒網繭。如果需要,您可以稍後再重新建立。