Puede conectarse mediante SSH a un nodo de clúster de Tanzu Kubernetes como vmware-system-user con una clave privada.

Puede conectarse mediante SSH a cualquier nodo del clúster de Tanzu Kubernetes como usuario vmware-system-user. El secreto que contiene la clave privada SSH se denomina CLUSTER-NAME-ssh. Para obtener más información, consulte Obtener los secretos del clúster de Tanzu Kubernetes.

Para conectarse a un nodo del clúster de Tanzu Kubernetes a través de SSH mediante una clave privada, cree un pod de vSphere de Jump Box en el clúster supervisor.

Requisitos previos

En esta tarea se aprovisiona un pod de vSphere como host de salto para la conectividad SSH. Los pods de vSphere requieren redes de NSX-T para el clúster supervisor. Si utiliza redes de vDS para el clúster supervisor, utilice el siguiente método en su lugar: Conectarse mediante SSH a nodos de clúster de Tanzu Kubernetes como usuario del sistema con una contraseña.

Procedimiento

  1. Conéctese al clúster supervisor.
  2. Cree una variable de entorno denominada NAMESPACE cuyo valor sea el nombre del espacio de nombres de vSphere donde se aprovisiona el clúster de Tanzu Kubernetes de destino.
    export NAMESPACE=VSPHERE-NAMESPACE
  3. Cambie el contexto a la instancia de espacio de nombres de vSphere en la que se aprovisiona el clúster de Tanzu Kubernetes.
    kubectl config use-context $NAMESPACE
  4. Consulte el objeto secreto TKGS-CLUSTER-NAME-ssh.
    kubectl get secrets
  5. Cree una instancia de pod de vSphere mediante las siguientes especificaciones jumpbox.yaml.
    Reemplace el valor de namespace YOUR-NAMESPACE por el espacio de nombres de vSphere en el que se aprovisiona el clúster de destino. Reemplace el valor de secretName YOUR-CLUSTER-NAME-ssh con el nombre del clúster de destino.
    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. Implemente el pod aplicando la especificación jumpbox.yaml.
    kubectl apply -f jumpbox.yaml
    pod/jumpbox created
  7. Compruebe que el pod se esté ejecutando.
    kubectl get pods
    NAME      READY   STATUS    RESTARTS   AGE
    jumpbox   1/1     Running   0          3h9m
    
    Nota: También debe ver el pod de Jump Box en vCenter en el espacio de nombres de vSphere.
  8. Cree una variable de entorno con la dirección IP del nodo de clúster de destino ejecutando el siguiente conjunto de comandos.
    1. Obtenga el nombre de la máquina virtual de destino.
      kubectl get virtualmachines
    2. Cree la variable de entorno VMNAME cuyo valor sea el nombre del nodo de destino.
      export VMNAME=NAME-OF-THE-VIRTUAL-MACHINE
    3. Cree la variable de entorno VMIP cuyo valor sea la dirección IP de la máquina virtual del nodo de destino.
      export VMIP=$(kubectl -n $NAMESPACE get virtualmachine/$VMNAME -o jsonpath='{.status.vmIp}')
  9. Para utilizar SSH en el nodo del clúster mediante el pod de Jump Box, ejecute el siguiente comando.
    kubectl exec -it jumpbox  /usr/bin/ssh vmware-system-user@$VMIP
    Importante: La creación del contenedor e instalación del software tarda aproximadamente 60 segundos. Si recibe un "mensaje de error al ejecutar el comando en el contenedor: container_linux.go:370: starting container process caused: exec: "/usr/bin/ssh": stat /usr/bin/ssh: no such file or directory", vuelva a intentar el comando pasados unos segundos.
  10. Para confirmar la autenticidad del host, introduzca 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. Confirme que ha iniciado sesión en el nodo de destino como vmware-system-user.
    Por ejemplo, el siguiente resultado indica que ha iniciado sesión en un nodo del plano de control como usuario del sistema.
    vmware-system-user@tkgs-cluster-1-control-plane-66tbr [ ~ ]$
    
  12. Realice las operaciones deseadas en el nodo.
    Atención: Es posible que deba usar sudo o sudo su para realizar ciertas operaciones en el nodo, como reiniciar el kubelet.
  13. Cuando termine, escriba exit para cerrar la sesión de SSH en pod de vSphere.
  14. Para eliminar el pod, ejecute el comando kubectl delete pod jumpbox.
    Precaución: Por motivos de seguridad, considere la posibilidad de eliminar el pod de Jumpbox después de haber realizado su trabajo. Si es necesario, puede volver a crearla más adelante.