7.10. Résolution des problèmes liés à la charge de travail des conteneurs Windows


7.10.1. Windows Machine Config Operator ne s'installe pas

Si vous avez terminé le processus d'installation de Windows Machine Config Operator (WMCO), mais que l'Operator est bloqué dans la phase InstallWaiting, votre problème est probablement dû à un problème de réseau.

Le WMCO exige que votre cluster OpenShift Container Platform soit configuré avec un réseau hybride utilisant OVN-Kubernetes ; le WMCO ne peut pas terminer le processus d'installation si le réseau hybride n'est pas disponible. Ceci est nécessaire pour gérer les nœuds sur plusieurs systèmes d'exploitation (OS) et variantes d'OS. Cette opération doit être effectuée lors de l'installation de votre cluster.

Pour plus d'informations, voir Configuration de la mise en réseau hybride.

Il y a plusieurs raisons pour lesquelles une machine Windows ne devient pas un nœud de calcul. La meilleure façon d'étudier ce problème est de collecter les journaux de l'opérateur de configuration de la machine Windows (WMCO).

Conditions préalables

  • Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
  • Vous avez créé un ensemble de machines de calcul Windows.

Procédure

  • Exécutez la commande suivante pour collecter les journaux WMCO :

    $ oc logs -f deployment/windows-machine-config-operator -n openshift-windows-machine-config-operator
    Copy to Clipboard Toggle word wrap

7.10.3. Accès à un nœud Windows

Il n'est pas possible d'accéder aux nœuds Windows à l'aide de la commande oc debug node; cette commande nécessite l'exécution d'un pod privilégié sur le nœud, ce qui n'est pas encore pris en charge pour Windows. En revanche, il est possible d'accéder à un nœud Windows à l'aide d'un shell sécurisé (SSH) ou d'un protocole de bureau à distance (RDP). Un bastion SSH est nécessaire pour les deux méthodes.

7.10.3.1. Accès à un nœud Windows à l'aide de SSH

Vous pouvez accéder à un nœud Windows en utilisant un shell sécurisé (SSH).

Conditions préalables

  • Vous avez installé le Windows Machine Config Operator (WMCO) à l'aide de l'Operator Lifecycle Manager (OLM).
  • Vous avez créé un ensemble de machines de calcul Windows.
  • Vous avez ajouté à l'agent ssh la clé utilisée dans le secret cloud-private-key et la clé utilisée lors de la création du cluster. Pour des raisons de sécurité, n'oubliez pas de supprimer les clés de l'agent ssh après utilisation.
  • Vous vous êtes connecté au nœud Windows à l 'aide d'un pod ssh-bastion .

Procédure

  • Accédez au nœud Windows en exécutant la commande suivante :

    $ ssh -t -o StrictHostKeyChecking=no -o ProxyCommand='ssh -A -o StrictHostKeyChecking=no \
        -o ServerAliveInterval=30 -W %h:%p core@$(oc get service --all-namespaces -l run=ssh-bastion \
        -o go-template="{{ with (index (index .items 0).status.loadBalancer.ingress 0) }}{{ or .hostname .ip }}{{end}}")' <username>@<windows_node_internal_ip> 
    1
     
    2
    Copy to Clipboard Toggle word wrap
    1
    Indiquez le nom d'utilisateur du fournisseur de cloud, par exemple Administrator pour Amazon Web Services (AWS) ou capi pour Microsoft Azure.
    2
    Spécifiez l'adresse IP interne du nœud, qui peut être découverte en exécutant la commande suivante :
    $ oc get nodes <node_name> -o jsonpath={.status.addresses[?\(@.type==\"InternalIP\"\)].address}
    Copy to Clipboard Toggle word wrap

7.10.3.2. Accès à un nœud Windows à l'aide de RDP

Vous pouvez accéder à un nœud Windows en utilisant un protocole de bureau à distance (RDP).

Conditions préalables

  • Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
  • Vous avez créé un ensemble de machines de calcul Windows.
  • Vous avez ajouté à l'agent ssh la clé utilisée dans le secret cloud-private-key et la clé utilisée lors de la création du cluster. Pour des raisons de sécurité, n'oubliez pas de supprimer les clés de l'agent ssh après utilisation.
  • Vous vous êtes connecté au nœud Windows à l 'aide d'un pod ssh-bastion .

Procédure

  1. Exécutez la commande suivante pour établir un tunnel SSH :

    $ ssh -L 2020:<windows_node_internal_ip>:3389 \ 
    1
    
        core@$(oc get service --all-namespaces -l run=ssh-bastion -o go-template="{{ with (index (index .items 0).status.loadBalancer.ingress 0) }}{{ or .hostname .ip }}{{end}}")
    Copy to Clipboard Toggle word wrap
    1
    Spécifiez l'adresse IP interne du nœud, qui peut être découverte en exécutant la commande suivante :
    $ oc get nodes <node_name> -o jsonpath={.status.addresses[?\(@.type==\"InternalIP\"\)].address}
    Copy to Clipboard Toggle word wrap
  2. À partir de l'interpréteur de commandes résultant, connectez-vous en SSH au nœud Windows et exécutez la commande suivante pour créer un mot de passe pour l'utilisateur :

    C:\> net user <username> * 
    1
    Copy to Clipboard Toggle word wrap
    1
    Indiquez le nom d'utilisateur du fournisseur de cloud, par exemple Administrator pour AWS ou capi pour Azure.

Vous pouvez maintenant accéder à distance au nœud Windows à l'adresse localhost:2020 à l'aide d'un client RDP.

La journalisation des conteneurs Windows fonctionne différemment de la journalisation des conteneurs Linux ; les journaux des nœuds Kubernetes pour les charges de travail Windows sont transmis par défaut au répertoire C:\var\logs. Par conséquent, vous devez collecter les journaux des nœuds Windows à partir de ce répertoire.

Conditions préalables

  • Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
  • Vous avez créé un ensemble de machines de calcul Windows.

Procédure

  1. Pour afficher les journaux dans tous les répertoires de C:\var\logs, exécutez la commande suivante :

    $ oc adm node-logs -l kubernetes.io/os=windows --path= \
        /ip-10-0-138-252.us-east-2.compute.internal containers \
        /ip-10-0-138-252.us-east-2.compute.internal hybrid-overlay \
        /ip-10-0-138-252.us-east-2.compute.internal kube-proxy \
        /ip-10-0-138-252.us-east-2.compute.internal kubelet \
        /ip-10-0-138-252.us-east-2.compute.internal pods
    Copy to Clipboard Toggle word wrap
  2. Vous pouvez désormais lister les fichiers dans les répertoires à l'aide de la même commande et afficher les fichiers journaux individuels. Par exemple, pour afficher les journaux des kubelets, exécutez la commande suivante :

    $ oc adm node-logs -l kubernetes.io/os=windows --path=/kubelet/kubelet.log
    Copy to Clipboard Toggle word wrap

Le shim Get-WinEvent sur le point de terminaison kubelet logs peut être utilisé pour collecter des journaux d'événements d'application à partir de machines Windows.

Conditions préalables

  • Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
  • Vous avez créé un ensemble de machines de calcul Windows.

Procédure

  • Pour afficher les journaux de toutes les applications qui se connectent aux journaux d'événements sur la machine Windows, exécutez :

    $ oc adm node-logs -l kubernetes.io/os=windows --path=journal
    Copy to Clipboard Toggle word wrap

    La même commande est exécutée lors de la collecte des journaux avec oc adm must-gather.

    D'autres journaux d'applications Windows du journal des événements peuvent également être collectés en spécifiant le service respectif avec un drapeau -u. Par exemple, vous pouvez exécuter la commande suivante pour collecter les journaux du service d'exécution Docker :

    $ oc adm node-logs -l kubernetes.io/os=windows --path=journal -u docker
    Copy to Clipboard Toggle word wrap

Le service Windows Docker n'envoie pas ses journaux vers stdout, mais les enregistre dans le journal des événements de Windows. Vous pouvez consulter les journaux d'événements de Docker pour enquêter sur les problèmes que vous pensez être causés par le service Windows Docker.

Conditions préalables

  • Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
  • Vous avez créé un ensemble de machines de calcul Windows.

Procédure

  1. Accédez au nœud Windows par SSH et entrez dans PowerShell :

    C:\N> powershell
    Copy to Clipboard Toggle word wrap
  2. Affichez les journaux Docker en exécutant la commande suivante :

    C:\N> Get-EventLog -LogName Application -Source Docker
    Copy to Clipboard Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat