IBM Cloud Docs
Débogage des composants Calico

Débogage des composants Calico

Virtual Private Cloud Infrastructure classique

En version 1.29 et plus tard, le Calico L'opérateur détermine le nombre de calico-typha pods en fonction du nombre de nœuds de calcul du cluster et ne prend pas en compte les nœuds corrompus. Si vous avez moins de 3 nœuds intacts dans votre cluster, ou si vous disposez d'un très grand cluster avec un petit nombre de nœuds intacts, vous pouvez avoir un ou plusieurs nœuds intacts.calico-typha les dosettes sont coincées dedans Pending état car le pod ne trouve pas de nœud intact sur lequel s'exécuter. En général, cela ne pose pas de problème tant qu'il y a au moins un calico-typha pod dans Running state. Cependant, pour une haute disponibilité, il est recommandé d'avoir au moins deux calico-typha pods toujours en cours d'exécution. Il est recommandé de s'assurer qu'il y a suffisamment de nœuds intacts pour exécuter tous les calico-typha pods créés par le Calico opérateur.

Vous avez des problèmes avec des composants Calico tels que des cabosses qui ne se déploient pas ou des problèmes de mise en réseau intermittents.

Augmenter le niveau de journalisation des composants Calico pour collecter plus d'informations sur la question.

Augmentation du niveau de journalisation des composants calico-typha

Pour augmenter le niveau de journalisation du composant calico-typha , procédez comme suit :

  1. Exécutez la commande suivante pour éditer le calico-typha déploiement.

    Pour 1.29 et les versions ultérieures :

    kubectl edit deploy calico-typha -n calico-system
    

    Pour 1.28 et les versions antérieures:

    kubectl edit deploy calico-typha -n kube-system
    
  2. Remplacez la TYPHA_LOGSEVERITYSCREENvariable d'environnement de info par debug.

          containers:
        - env:
          - name: TYPHA_LOGSEVERITYSCREEN
            value: debug
    
  3. Enregistrez et fermez le fichier pour appliquer les modifications et redémarrez le déploiement calico-typha .

Augmentation du niveau de journalisation des composants calico-cni

Pour augmenter le niveau de journalisation du composant calico-cni , procédez comme suit :

  1. Exécutez la commande suivante pour modifier la calico-config carte de configuration.

    kubectl edit cm -n kube-system calico-config
    
  2. Remplacez la variable d'environnement cni_network_config > plugins > log_level par debug.

      cni_network_config: |-
      {
        "name": "k8s-pod-network",
        "cniVersion": "0.3.1",
        "plugins": [
          {
            "type": "calico",
            "log_level": "debug",
    
  3. Sauvegardez et fermez le fichier. La modification ne prendra effet que lorsque les calico-nodepods seront redémarrés.

  4. Redémarrez les fichiers calico-node pour appliquer les modifications.

    kubectl rollout restart daemonset/calico-node -n kube-system
    

    Exemple de sortie

    daemonset.apps/calico-node restarted
    

Augmentation du niveau de journalisation des composants calico-node

Pour augmenter le niveau de journalisation du composant calico-node , procédez comme suit :

  1. Exécutez la commande suivante :

    Pour 1.29 et les versions ultérieures :

    kubectl edit ds calico-node -n calico-system
    

    Pour 1.28 et les versions antérieures:

    kubectl edit ds calico-node -n kube-system
    
  2. Sous la paire nom et valeur FELIX_USAGEREPORTINGENABLED (ou après l'une des paires de valeurs de nom de variable d'environnement FELIX_* ), ajoutez l'entrée suivante.

    - name: FELIX_LOGSEVERITYSCREEN
      value: Debug
    
  3. Enregistrez le changement. Après avoir enregistré vos modifications, tous les pods du calico-nodegroupe de travail effectuent une mise à jour continue qui applique les modifications. calico-cni applique également toutes les modifications apportées aux niveaux de journalisation dans la carte de configuration kube-system/calico-config .

Augmentation du niveau de journalisation des composants calico-kube-controllers

Pour augmenter le niveau de journalisation du composant calico-kube-controllers , procédez comme suit :

  1. Éditez le daemonset en exécutant la commande suivante.

    Pour 1.29 et les versions ultérieures :

    kubectl edit ds calico-node -n calico-system
    

    Pour 1.28 et les versions antérieures:

    kubectl edit ds calico-node -n kube-system
    
  2. Sous la paire nom et valeur DATASTORE_TYPE, ajoutez l'entrée suivante.

    - name: LOG_LEVEL
      value: debug
    
  3. Enregistrez le changement. La pod calico-kube-controllers redémarre et applique les modifications.

Collecte des journaux Calico

  1. Dressez la liste des pods et des nœuds de votre cluster et créez un nœud du nom du pod, de l'adresse IP du pod et du nœud de travailleur qui présente le problème.

  2. Obtenez les journaux pour le calico-nodepod sur le nœud de travail où le problème s'est produit.

    Pour 1.29 et les versions ultérieures :

    kubectl logs calico-typha-aaa11111a-aaaaa -n calico-system
    

    Pour 1.28 et les versions antérieures:

    kubectl logs calico-typha-aaa11111a-aaaaa -n kube-system
    
  3. Récupère les journaux pour le podcalico-kube-controllers.

    Pour 1.29 et les versions ultérieures :

    kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n calico-system
    

    Pour 1.28 et les versions antérieures:

    kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n kube-system
    
  4. Suivez les instructions de Débogage à l'aide de la commande kubectl exec pour obtenir /var/log/syslog, containerd.log, kubelet.loget kern.log à partir du noeud de travail.