10.8. Accès aux consoles des machines virtuelles
OpenShift Virtualization fournit différentes consoles de machines virtuelles que vous pouvez utiliser pour accomplir différentes tâches du produit. Vous pouvez accéder à ces consoles via la console web d'OpenShift Container Platform et en utilisant des commandes CLI.
10.8.1. Accéder aux consoles des machines virtuelles dans la console web d'OpenShift Container Platform
Vous pouvez vous connecter aux machines virtuelles en utilisant la console série ou la console VNC dans la console web d'OpenShift Container Platform.
Vous pouvez vous connecter aux machines virtuelles Windows en utilisant la console de visualisation du bureau, qui utilise le protocole RDP (remote desktop protocol), dans la console web d'OpenShift Container Platform.
10.8.1.1. Connexion à la console série
Connectez-vous à la console série d'une machine virtuelle en cours d'exécution à partir de l'onglet Console sur la page VirtualMachine details de la console Web.
Procédure
-
Dans la console OpenShift Container Platform, cliquez sur Virtualization
VirtualMachines dans le menu latéral. - Sélectionnez une machine virtuelle pour ouvrir la page VirtualMachine details.
- Cliquez sur l'onglet Console. La console VNC s'ouvre par défaut.
- Cliquez sur Disconnect pour vous assurer qu'une seule session de console est ouverte à la fois. Sinon, la session de console VNC reste active en arrière-plan.
- Cliquez sur la liste déroulante VNC Console et sélectionnez Serial Console.
- Cliquez sur Disconnect pour mettre fin à la session de la console.
- Optionnel : Ouvrez la console série dans une fenêtre séparée en cliquant sur Open Console in New Window.
10.8.1.2. Connexion à la console VNC
Connectez-vous à la console VNC d'une machine virtuelle en cours d'exécution à partir de l'onglet Console sur la page VirtualMachine details de la console Web.
Procédure
-
Dans la console OpenShift Container Platform, cliquez sur Virtualization
VirtualMachines dans le menu latéral. - Sélectionnez une machine virtuelle pour ouvrir la page VirtualMachine details.
- Cliquez sur l'onglet Console. La console VNC s'ouvre par défaut.
- Facultatif : Ouvrez la console VNC dans une fenêtre séparée en cliquant sur Open Console in New Window.
- Facultatif : Envoyez les combinaisons de touches à la machine virtuelle en cliquant sur Send Key.
- Cliquez en dehors de la fenêtre de la console, puis cliquez sur Disconnect pour mettre fin à la session.
10.8.1.3. Se connecter à une machine virtuelle Windows avec RDP
La console Desktop viewer, qui utilise le protocole RDP (Remote Desktop Protocol), offre une meilleure expérience de la console pour la connexion aux machines virtuelles Windows.
Pour se connecter à une machine virtuelle Windows avec RDP, téléchargez le fichier console.rdp
pour la machine virtuelle à partir de l'onglet Console sur la page VirtualMachine details de la console web et fournissez-le à votre client RDP préféré.
Conditions préalables
-
Une machine virtuelle Windows en cours d'exécution avec l'agent invité QEMU installé. Le site
qemu-guest-agent
est inclus dans les pilotes VirtIO. - Un client RDP installé sur une machine du même réseau que la machine virtuelle Windows.
Procédure
-
Dans la console OpenShift Container Platform, cliquez sur Virtualization
VirtualMachines dans le menu latéral. - Cliquez sur une machine virtuelle Windows pour ouvrir la page VirtualMachine details.
- Cliquez sur l'onglet Console.
- Dans la liste des consoles, sélectionnez Desktop viewer.
-
Cliquez sur Launch Remote Desktop pour télécharger le fichier
console.rdp
. -
Faites référence au fichier
console.rdp
dans votre client RDP préféré pour vous connecter à la machine virtuelle Windows.
10.8.1.4. Passer d'un affichage de machine virtuelle à l'autre
Si votre machine virtuelle Windows (VM) est équipée d'un vGPU, vous pouvez passer de l'affichage par défaut à l'affichage du vGPU à l'aide de la console web.
Conditions préalables
-
Le dispositif médiatisé est configuré dans la ressource personnalisée
HyperConverged
et affecté à la VM. - La VM est en cours d'exécution.
Procédure
-
Dans la console OpenShift Container Platform, cliquez sur Virtualization
VirtualMachines - Sélectionnez une machine virtuelle Windows pour ouvrir l'écran Overview.
- Cliquez sur l'onglet Console.
- Dans la liste des consoles, sélectionnez VNC console.
Choisissez la combinaison de touches appropriée dans la liste Send Key:
-
Pour accéder à l'affichage VM par défaut, sélectionnez
Ctl Alt 1
. -
Pour accéder à l'affichage vGPU, sélectionnez
Ctl Alt 2
.
-
Pour accéder à l'affichage VM par défaut, sélectionnez
Ressources supplémentaires
10.8.1.5. Copier la commande SSH à l'aide de la console web
Copiez la commande pour vous connecter au terminal d'une machine virtuelle (VM) via SSH.
Procédure
-
Dans la console OpenShift Container Platform, cliquez sur Virtualization
VirtualMachines dans le menu latéral. - Cliquez sur le menu Options de votre machine virtuelle et sélectionnez Copy SSH command.
- Collez-le dans le terminal pour accéder à la VM.
10.8.2. Accès aux consoles des machines virtuelles à l'aide de commandes CLI
10.8.2.1. Accéder à une machine virtuelle via SSH en utilisant virtctl
Vous pouvez utiliser la commande virtctl ssh
pour transférer le trafic SSH vers une machine virtuelle (VM) à l'aide de votre client SSH local.
Un trafic SSH important sur le plan de contrôle peut ralentir le serveur API. Si vous avez régulièrement besoin d'un grand nombre de connexions, utilisez un objet Kubernetes Service
dédié pour accéder à la machine virtuelle.
Conditions préalables
-
Vous avez accès à un cluster OpenShift Container Platform avec les permissions
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). -
Vous avez installé le client
virtctl
. - La machine virtuelle à laquelle vous souhaitez accéder est en cours d'exécution.
- Vous êtes dans le même projet que la VM.
Procédure
Utilisez la commande
ssh-keygen
pour générer une paire de clés publiques SSH :$ ssh-keygen -f <key_file> 1
- 1
- Indiquez le fichier dans lequel les clés doivent être stockées.
Créez un secret d'authentification SSH qui contient la clé publique SSH pour accéder à la VM :
oc create secret generic my-pub-key --from-file=key1=<key_file>.pub
Ajoutez une référence au secret dans le manifeste
VirtualMachine
. Par exemple :apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: testvm spec: running: true template: spec: accessCredentials: - sshPublicKey: source: secret: secretName: my-pub-key 1 propagationMethod: configDrive: {} 2 # ...
- Redémarrez la VM pour appliquer vos modifications.
Exécutez la commande suivante pour accéder à la VM via SSH :
virtctl ssh -i <key_file> <vusername>@<vm_name>
Facultatif : Pour transférer en toute sécurité des fichiers vers ou depuis la VM, utilisez les commandes suivantes :
Copier un fichier de votre machine vers la VM
virtctl scp -i <key_file> <filename> <vusername>@<vm_name> :
Copier un fichier de la VM vers votre machine
virtctl scp -i <key_file> <vusername@<vm_name>:<filename> .
Ressources supplémentaires
10.8.2.2. Accéder à la console série d'une instance de machine virtuelle
La commande virtctl console
ouvre une console série sur l'instance de machine virtuelle spécifiée.
Conditions préalables
-
Le paquet
virt-viewer
doit être installé. - L'instance de machine virtuelle à laquelle vous souhaitez accéder doit être en cours d'exécution.
Procédure
Connectez-vous à la console série avec
virtctl
:$ virtctl console <VMI>
10.8.2.3. Accéder à la console graphique d'une instance de machine virtuelle avec VNC
L'utilitaire client virtctl
peut utiliser la fonction remote-viewer
pour ouvrir une console graphique sur une instance de machine virtuelle en cours d'exécution. Cette fonctionnalité est incluse dans le paquetage virt-viewer
.
Conditions préalables
-
Le paquet
virt-viewer
doit être installé. - L'instance de machine virtuelle à laquelle vous souhaitez accéder doit être en cours d'exécution.
Si vous utilisez virtctl
via SSH sur une machine distante, vous devez transférer la session X vers votre machine.
Procédure
Connectez-vous à l'interface graphique avec l'utilitaire
virtctl
:$ virtctl vnc <VMI>
Si la commande a échoué, essayez d'utiliser l'indicateur
-v
pour collecter des informations de dépannage :$ virtctl vnc <VMI> -v 4
10.8.2.4. Se connecter à une machine virtuelle Windows avec une console RDP
Créez un objet Kubernetes Service
pour vous connecter à une machine virtuelle (VM) Windows à l'aide de votre client RDP (Remote Desktop Protocol) local.
Conditions préalables
-
Une machine virtuelle Windows en cours d'exécution avec l'agent invité QEMU installé. L'objet
qemu-guest-agent
est inclus dans les pilotes VirtIO. - Un client RDP installé sur votre machine locale.
Procédure
Modifiez le manifeste
VirtualMachine
pour ajouter l'étiquette de création de service :apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-ephemeral namespace: example-namespace spec: running: false template: metadata: labels: special: key 1 # ...
- 1
- Ajouter le libellé
special: key
dans la sectionspec.template.metadata.labels
.
NoteLes étiquettes d'une machine virtuelle sont transmises au pod. L'étiquette
special: key
doit correspondre à l'étiquette de l'attributspec.selector
du manifesteService
.-
Enregistrez le fichier manifeste
VirtualMachine
pour appliquer vos modifications. Créez un manifeste
Service
pour exposer la VM :apiVersion: v1 kind: Service metadata: name: rdpservice 1 namespace: example-namespace 2 spec: ports: - targetPort: 3389 3 protocol: TCP selector: special: key 4 type: NodePort 5 # ...
- 1
- Le nom de l'objet
Service
. - 2
- L'espace de noms dans lequel réside l'objet
Service
. Il doit correspondre au champmetadata.namespace
du manifesteVirtualMachine
. - 3
- Le port VM à exposer par le service. Il doit faire référence à un port ouvert si une liste de ports est définie dans le manifeste VM.
- 4
- La référence à l'étiquette que vous avez ajoutée dans la strophe
spec.template.metadata.labels
du manifesteVirtualMachine
. - 5
- Le type de service.
-
Enregistrez le fichier manifeste
Service
. Créez le service en exécutant la commande suivante :
oc create -f <service_name>.yaml
- Démarrez la VM. Si la VM est déjà en cours d'exécution, redémarrez-la.
Interroger l'objet
Service
pour vérifier qu'il est disponible :$ oc get service -n example-namespace
Exemple de sortie pour le service
NodePort
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE rdpservice NodePort 172.30.232.73 <none> 3389:30000/TCP 5m
Exécutez la commande suivante pour obtenir l'adresse IP du nœud :
$ oc get node <node_name> -o wide
Exemple de sortie
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP node01 Ready worker 6d22h v1.24.0 192.168.55.101 <none>
- Spécifiez l'adresse IP du nœud et le port attribué dans votre client RDP préféré.
- Saisissez le nom d'utilisateur et le mot de passe pour vous connecter à la machine virtuelle Windows.