Vous pouvez utiliser SSH pour vous connecter à un nœud de cluster TKG 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 TKG en tant qu'utilisateur vmware-system-user
. Le secret qui contient la clé privée SSH est nommé CLUSTER-NAME-ssh
. Reportez-vous à la section Obtenir les secrets du cluster TKG à l'aide de Kubectl.
Pour vous connecter à un nœud de cluster TKG via le protocole SSH en utilisant une clé privée, créez un système JumpBox d'Espace vSphere sur le Superviseur.
Procédure
- Connectez-vous au 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 TKG 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
TKG-CLUSTER-NAME-ssh
.
- Créez un secret des informations d'identification de registre Docker Hub.
Par défaut, l'image utilisée pour créer l'espace vSphere (PhotonOS) est extraite de Docker Hub. Vous pouvez avoir besoin d'un secret des informations d'identification pour extraire correctement l'image. Reportez-vous à la section
Créer un secret d'identification de registre privé.
- 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
imagePullSecrets:
- name: regcred
- 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@tkg-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.