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

您可以 vmware-system-user 使用者身分透過 SSH 連線至任何 Tanzu Kubernetes 叢集節點。包含 SSH 私密金鑰的密碼名為 CLUSTER-NAME-ssh。如需詳細資訊,請參閱 取得 Tanzu Kubernetes 叢集密碼

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

必要條件

在此工作中,可以將 vSphere 網繭 佈建為跳轉主機供 SSH 連線用。 vSphere 網繭 需要對 主管叢集 使用 NSX-T 網路。如果要對 主管叢集 使用 vDS 網路,請改用下列方法: 以系統使用者身分使用密碼透過 SSH 連線至 Tanzu Kubernetes 叢集節點

程序

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