Debug dei componenti Calico

Virtual Private Cloud Infrastruttura classica

Si riscontrano problemi con i componenti di Calico, come i pod che non vengono distribuiti o problemi di rete intermittenti.

Si riscontrano problemi con i componenti di Calico, come i pod che non vengono distribuiti o problemi di rete intermittenti.

L'operatore " Calico " determina il numero di pod " calico-typha " in base al numero di worker del cluster e non tiene conto dei nodi contrassegnati come "tainted". Se nel cluster sono presenti meno di 3 nodi non contrassegnati, oppure se si dispone di un cluster molto grande con un numero ridotto di nodi non contrassegnati, è possibile che uno o più pod " calico-typha " rimangano bloccati nello stato " Pending ", poiché il pod non riesce a trovare un nodo non contrassegnato su cui essere eseguito. Di solito, questo non causa problemi finché c'è almeno un pod calico-typha nello stato Running. Tuttavia, per un'elevata disponibilità si consiglia di avere almeno due calico-typha pod sempre in esecuzione. Come procedura consigliata, assicurati che ci siano abbastanza nodi non contaminati per eseguire tutto il file calico-typha pod creati da Calico operatore.

Calico I problemi di rete possono essere difficili da diagnosticare senza registrazioni dettagliate. Il livello di log predefinito per i componenti di Calico è impostato su " info", che fornisce informazioni operative di base ma potrebbe non includere dettagli sufficienti per risolvere problemi di rete complessi.

Aumenta il livello di registrazione dei componenti di Calico impostandolo su " debug " per raccogliere informazioni più dettagliate sul problema. La registrazione a livello di debug fornisce un output dettagliato che può aiutare a identificare la causa principale dei problemi di rete.

Aumento del livello di log per i componenti calico-typha

Completare la seguente procedura per aumentare il livello di log per il componente calico-typha.

  1. Eseguire il seguente comando per modificare la distribuzione di calico-typha.

    Per 1.29 e versioni successive:

    kubectl edit deploy calico-typha -n calico-system
    

    Per 1.28 e versioni precedenti:

    kubectl edit deploy calico-typha -n kube-system
    
  2. Modificare la variabile di ambiente di TYPHA_LOGSEVERITYSCREEN da info a debug.

          containers:
        - env:
          - name: TYPHA_LOGSEVERITYSCREEN
            value: debug
    
  3. Salvare e chiudere il file per applicare le modifiche e riavviare la distribuzione di calico-typha.

Aumento del livello di log per i componenti calico-cni

Completare la seguente procedura per aumentare il livello di log per il componente calico-cni.

  1. Immettere il seguente comando per modificare calico-config ConfigMap.

    kubectl edit cm -n kube-system calico-config
    
  2. Modificare la variabile di ambiente di cni_network_config > plugins > log_level in debug.

      cni_network_config: |-
      {
        "name": "k8s-pod-network",
        "cniVersion": "0.3.1",
        "plugins": [
          {
            "type": "calico",
            "log_level": "debug",
    
  3. Salva e chiudi il file. La modifica non avrà effetto fino a quando i pod calico-node non vengono riavviati.

  4. Riavvia i pod calico-node per applicare le modifiche.

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

    Output di esempio

    daemonset.apps/calico-node restarted
    

Aumento del livello di log per i componenti calico-node

Completare la seguente procedura per aumentare il livello di log per il componente calico-node.

  1. Esegui il seguente comando:

    Per 1.29 e versioni successive:

    kubectl edit ds calico-node -n calico-system
    

    Per 1.28 e versioni precedenti:

    kubectl edit ds calico-node -n kube-system
    
  2. Nella coppia nome - valore FELIX_USAGEREPORTINGENABLED (o dopo una delle coppie nome - valore della variabile di ambiente FELIX_* ), aggiungere la seguente voce.

    - name: FELIX_LOGSEVERITYSCREEN
      value: Debug
    
  3. Salvare la modifica. Dopo aver salvato le tue modifiche, tutti i pod nel daemonset calico-node completano un aggiornamento progressivo che applica le modifiche. calico-cni applica inoltre eventuali modifiche ai livelli di registrazione nella kube-system/calico-config ConfigMap ConfigMap.

Aumento del livello di log per i componenti calico-kube-controllers

Completare la seguente procedura per aumentare il livello di log per il componente calico-kube-controllers.

  1. Modifica la distribuzione eseguendo il comando seguente.

    Per 1.29 e versioni successive:

    kubectl edit deploy calico-kube-controllers -n calico-system
    

    Per 1.28 e versioni precedenti:

    kubectl edit deploy calico-kube-controllers -n kube-system
    
  2. Nella coppia nome - valore DATASTORE_TYPE, aggiungere la seguente voce.

    - name: LOG_LEVEL
      value: debug
    
  3. Salvare la modifica. Il pod calico-kube-controllers viene riavviato e applica le modifiche.

Raccolta dei log Calico

  1. Elenca i pod e i nodi presenti nel tuo cluster e prendi nota del nome del pod, dell'indirizzo IP del pod e del nodo di lavoro su cui si verifica il problema.

    kubectl get pods -o wide -n kube-system
    
  2. Ottieni i log per il pod calico-node sul nodo di lavoro in cui si è verificato il problema.

    Per 1.29 e versioni successive:

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

    Per 1.28 e versioni precedenti:

    kubectl logs calico-typha-aaa11111a-aaaaa -n kube-system
    
  3. Ottieni i log per il pod calico-kube-controllers.

    Per 1.29 e versioni successive:

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

    Per 1.28 e versioni precedenti:

    kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n kube-system
    
  4. Segui le istruzioni per Debug utilizzando kubectl exec per ottenere /var/log/syslog, containerd.log, kubelet.log e kern.log dal nodo di lavoro.