Vous pouvez utiliser SSH pour vous connecter à un nœud de cluster Tanzu Kubernetes en tant que vmware-system-user
à l'aide d'une clé privée.
Vous pouvez vous connecter par SSH à n'importe quel nœud de cluster Tanzu Kubernetes en tant qu'utilisateur vmware-system-user
. Le secret qui contient la clé privée SSH est nommé CLUSTER-NAME-ssh
. Pour plus d'informations, consultez Obtenir les secrets du cluster Tanzu Kubernetes.
Pour vous connecter à un nœud de cluster Tanzu Kubernetes via le protocole SSH en utilisant une clé privée, vous créez un système JumpBox Espace vSphere sur le Cluster superviseur.
Procédure
- Connectez-vous au Cluster superviseur.
- Créez une variable d'environnement nommée NAMESPACE dont la valeur est le nom de l'Espace de noms vSphere dans lequel le cluster Tanzu Kubernetes cible est provisionné.
export NAMESPACE=VSPHERE-NAMESPACE
- Changez de contexte pour utiliser l'Espace de noms vSphere où le cluster Tanzu Kubernetes est provisionné.
kubectl config use-context $NAMESPACE
- Affichez l'objet secret
TKGS-CLUSTER-NAME-ssh
.
- Créez un Espace vSphere à l'aide de la commande
jumpbox.yaml
suivante.
Remplacez la valeur
namespace
YOUR-NAMESPACE
par l'
Espace de noms vSphere dans lequel le cluster cible est provisionné. Remplacez la valeur
secretName
YOUR-CLUSTER-NAME
-ssh par le nom du cluster cible.
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
- Déployez l'espace en appliquant la spécification
jumpbox.yaml
.
kubectl apply -f jumpbox.yaml
- Vérifiez que l'espace est en cours d'exécution.
NAME READY STATUS RESTARTS AGE
jumpbox 1/1 Running 0 3h9m
Note : Vous devez également voir l'espace jumpbox de vCenter dans l'
Espace de noms vSphere.
- Créez une variable d'environnement avec l'adresse IP du nœud de cluster cible en exécutant l'ensemble de commandes suivant.
- Obtenez le nom de la machine virtuelle cible.
kubectl get virtualmachines
- Créez la variable d'environnement
VMNAME
dont la valeur est le nom du nœud cible.
export VMNAME=NAME-OF-THE-VIRTUAL-MACHINE
- Créez la variable d'environnement
VMIP
dont la valeur est l'adresse IP de la machine virtuelle du nœud cible.
export VMIP=$(kubectl -n $NAMESPACE get virtualmachine/$VMNAME -o jsonpath='{.status.vmIp}')
- Connectez-vous par SSH au nœud de cluster à l'aide de l'espace de système JumpBox en exécutant la commande suivante.
kubectl exec -it jumpbox /usr/bin/ssh vmware-system-user@$VMIP
Important : La création du conteneur et l'installation du logiciel prennent environ 60 secondes. Si vous recevez le message « 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, », attendez quelques secondes et réessayez la commande.
- Confirmez l'authenticité de l'hôte en saisissant 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
- Confirmez que vous êtes connecté au nœud cible en tant que
vmware-system-user
.
Par exemple, la sortie suivante indique que vous êtes connecté à un nœud de plan de contrôle en tant qu'utilisateur système.
vmware-system-user@tkgs-cluster-1-control-plane-66tbr [ ~ ]$
- Effectuez les opérations souhaitées sur le nœud.
Attention : Vous devrez éventuellement utiliser
sudo
ou
sudo su
pour effectuer certaines opérations sur le nœud, telles que le redémarrage de kubelet.
- Lorsque vous avez terminé, tapez exit pour vous déconnecter de la session SSH sur l'Espace vSphere.
- Pour supprimer l'espace, exécutez la commande
kubectl delete pod jumpbox
.
Attention : Pour des raisons de sécurité, envisagez de supprimer l'espace JumpBox à la fin de votre travail. Si nécessaire, vous pouvez le recréer ultérieurement.