Você pode usar o SSH para um nó de cluster do Tanzu Kubernetes como o vmware-system-user
usando uma chave privada.
Você pode se conectar por meio de SSH a qualquer nó do cluster Tanzu Kubernetes como o usuário vmware-system-user
. O segredo que contém a chave privada SSH é denominado CLUSTER-NAME-ssh
. Para obter mais informações, consulte Obter segredos de cluster de Tanzu Kubernetes.
Para se conectar a um nó de cluster Tanzu Kubernetes sobre SSH usando uma chave privada, crie uma jumpbox vSphere Pod no Supervisor Cluster.
Procedimento
- Conecte-se ao Supervisor Cluster.
- Crie uma variável de ambiente chamada NAMESPACE cujo valor é o nome do vSphere Namespace onde o cluster de destino Tanzu Kubernetes está provisionado.
export NAMESPACE=VSPHERE-NAMESPACE
- Alterne o contexto para o vSphere Namespace onde o cluster Tanzu Kubernetes está provisionado.
kubectl config use-context $NAMESPACE
- Visualize o objeto secreto
TKGS-CLUSTER-NAME -ssh
.
- Crie um vSphere Pod usando o seguinte
jumpbox.yaml
.
Substitua o valor de
namespace
YOUR-NAMESPACE
pelo
vSphere Namespace no qual o cluster de destino está provisionado. Substitua o valor
secretName
YOUR-CLUSTER-NAME
-ssh pelo nome do cluster 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
- Implante o pod aplicando a especificação
jumpbox.yaml
.
kubectl apply -f jumpbox.yaml
- Verifique se o pod está em execução.
NAME READY STATUS RESTARTS AGE
jumpbox 1/1 Running 0 3h9m
Observação: Você também deve ver o pod jumpbox no vCenter no
vSphere Namespace.
- Crie uma variável de ambiente com o endereço IP do nó do cluster de destino executando o seguinte conjunto de comandos.
- Obtenha o nome da máquina virtual de destino.
kubectl get virtualmachines
- Crie a variável de ambiente
VMNAME
cujo valor é o nome do nó de destino.
export VMNAME=NAME-OF-THE-VIRTUAL-MACHINE
- Crie a variável de ambiente
VMIP
cujo valor é o endereço IP da VM do nó de destino.
export VMIP=$(kubectl -n $NAMESPACE get virtualmachine/$VMNAME -o jsonpath='{.status.vmIp}')
- SSH para o nó do cluster usando o pod jumpbox executando o seguinte comando.
kubectl exec -it jumpbox /usr/bin/ssh vmware-system-user@$VMIP
Importante: Leva aproximadamente 60 segundos para criar o contêiner e instalar o software. Se você receber um "erro de execução do comando no contêiner: container_linux.go: 370: iniciando o processo do contêiner causado: exec:" / usr / bin / ssh ": stat / usr / bin / ssh: no such file or directory", tente o comando novamente em alguns segundos.
- Confirme a autenticidade do host digitando sim .
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
- Confirme se você está conectado ao nó de destino como
vmware-system-user
.
Por exemplo, a saída a seguir indica que você está conectado a um nó de plano de controle como o usuário do sistema.
vmware-system-user@tkgs-cluster-1-control-plane-66tbr [ ~ ]$
- Realize as operações desejadas no nó.
Atenção: Pode ser necessário usar
sudo
ou
sudo su
para executar determinadas operações no nó, como reiniciar o kubelet.
- Quando terminar, digite exit para fazer logout da sessão SSH no vSphere Pod.
- Para excluir o pod, execute o comando
kubectl delete pod jumpbox
.
Cuidado: Por motivos de segurança, considere excluir o pod jumpbox depois de concluir seu trabalho. Se necessário, você pode recriá-lo mais tarde.