Debugging von Calico-Komponenten
Virtual Private Cloud Classic-Infrastruktur
Es treten Probleme mit Calico-Komponenten wie Pods auf, die nicht bereitgestellt werden, oder sporadisch auftretende Netzprobleme.
Es treten Probleme mit Calico-Komponenten wie Pods auf, die nicht bereitgestellt werden, oder sporadisch auftretende Netzprobleme.
Der Operator „ Calico “ ermittelt die Anzahl der „ calico-typha “-Pods anhand der Anzahl der Cluster-Worker und berücksichtigt dabei keine mit einem Taint versehenen Knoten. Wenn Ihr Cluster weniger als drei „untainted“ Knoten enthält
oder es sich um einen sehr großen Cluster mit nur wenigen „untainted“ Knoten handelt, kann es vorkommen, dass ein oder mehrere „ calico-typha “-Pods im Status „ Pending “ hängen bleiben, da der Pod keinen „untainted“
Knoten findet, auf dem er ausgeführt werden kann. In der Regel ist dies kein Problem, solange sich mindestens ein calico-typha Pod im Zustand "Running" befindet. Aus Gründen der Hochverfügbarkeit wird jedoch empfohlen,
immer mindestens zwei calico-typha Pods laufen zu lassen. Als Best Practice sollten Sie sicherstellen, dass genügend unbelastete Knoten vorhanden sind, um alle calico-typha Pods, die von den Calico Operator.
Calico Netzwerkprobleme lassen sich ohne detaillierte Protokollierung oft nur schwer diagnostizieren. Die Standardprotokollstufe für die Komponenten von „ Calico “ ist auf „ info “ eingestellt. Diese Stufe liefert grundlegende Betriebsinformationen,
enthält jedoch möglicherweise nicht genügend Details, um komplexe Netzwerkprobleme zu beheben.
Erhöhen Sie die Protokollierungsstufe der „ Calico “-Komponenten auf „ debug “, um detailliertere Informationen zu dem Problem zu erhalten. Die Protokollierung auf Debug-Ebene liefert ausführliche Informationen, die dabei helfen können,
die Ursache von Netzwerkproblemen zu ermitteln.
Protokollstufe für die calico-typha-Komponenten erhöhen
Führen Sie die folgenden Schritte aus, um die Protokollierungsstufe für die calico-typha-Komponente zu erhöhen.
-
Führen Sie den folgenden Befehl aus, um die
calico-typha-Bereitstellung zu bearbeiten.Für „ 1.29 “ und spätere Versionen:
kubectl edit deploy calico-typha -n calico-systemFür 1.28 und früher:
kubectl edit deploy calico-typha -n kube-system -
Ändern Sie die Umgebungsvariable
TYPHA_LOGSEVERITYSCREENvoninfoindebug.containers: - env: - name: TYPHA_LOGSEVERITYSCREEN value: debug -
Speichern und schließen Sie die Datei, um die Änderungen anzuwenden, und starten Sie die
calico-typha-Bereitstellung erneut.
Protokollstufe für die calico-cni-Komponenten erhöhen
Führen Sie die folgenden Schritte aus, um die Protokollierungsstufe für die calico-cni-Komponente zu erhöhen.
-
Führen Sie den folgenden Befehl aus, um die
calico-config-Konfigurationszuordnung zu bearbeiten.kubectl edit cm -n kube-system calico-config -
Ändern Sie die Umgebungsvariable
cni_network_config>plugins>log_levelindebug.cni_network_config: |- { "name": "k8s-pod-network", "cniVersion": "0.3.1", "plugins": [ { "type": "calico", "log_level": "debug", -
Speichern und schließen Sie die Datei. Die Änderung wird erst wirksam, wenn die
calico-node-Pods erneut gestartet werden. -
Starten Sie die
calico-node-Pods erneut, um die Änderungen anzuwenden.kubectl rollout restart daemonset/calico-node -n kube-systemBeispielausgabe
daemonset.apps/calico-node restarted
Protokollstufe für die calico-node-Komponenten erhöhen
Führen Sie die folgenden Schritte aus, um die Protokollierungsstufe für die calico-node-Komponente zu erhöhen.
-
Führen Sie den folgenden Befehl aus:
Für „ 1.29 “ und spätere Versionen:
kubectl edit ds calico-node -n calico-systemFür 1.28 und früher:
kubectl edit ds calico-node -n kube-system -
Fügen Sie unter dem Name/Wert-Paar
FELIX_USAGEREPORTINGENABLED(oder nach einem beliebigen Name/Wert-Paar derFELIX_*-Umgebungsvariable) den folgenden Eintrag hinzu.- name: FELIX_LOGSEVERITYSCREEN value: Debug -
Speichern Sie die Änderung. Nach dem Speichern Ihrer Änderungen führen alle Pods in der
calico-node-Dämongruppe eine rollierende Aktualisierung durch, die die Änderungen anwendet.calico-cniwendet auch alle Änderungen an den Protokollierungsstufen in der Konfigurationsübersicht fürkube-system/calico-configan.
Protokollstufe für die calico-kube-controllers-Komponenten erhöhen
Führen Sie die folgenden Schritte aus, um die Protokollierungsstufe für die calico-kube-controllers-Komponente zu erhöhen.
-
Bearbeiten Sie die Bereitstellung, indem Sie den folgenden Befehl ausführen.
Für „ 1.29 “ und spätere Versionen:
kubectl edit deploy calico-kube-controllers -n calico-systemFür 1.28 und früher:
kubectl edit deploy calico-kube-controllers -n kube-system -
Fügen Sie unter dem Name/Wert-Paar
DATASTORE_TYPEden folgenden Eintrag hinzu.- name: LOG_LEVEL value: debug -
Speichern Sie die Änderung. Der
calico-kube-controllers-Pod wird erneut gestartet und wendet die Änderungen an.
Calico-Protokolle sammeln
-
Listen Sie die Pods und Knoten in Ihrem Cluster auf und notieren Sie sich den Pod-Namen, die IP-Adresse des Pods sowie den Worker-Knoten, bei dem das Problem auftritt.
kubectl get pods -o wide -n kube-system -
Rufen Sie die Protokolle für den
calico-node-Pod auf dem Workerknoten ab, auf dem das Problem aufgetreten ist.Für „ 1.29 “ und spätere Versionen:
kubectl logs calico-typha-aaa11111a-aaaaa -n calico-systemFür 1.28 und früher:
kubectl logs calico-typha-aaa11111a-aaaaa -n kube-system -
Rufen Sie Protokolle für den
calico-kube-controllers-Pod ab.Für „ 1.29 “ und spätere Versionen:
kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n calico-systemFür 1.28 und früher:
kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n kube-system -
Befolgen Sie die Anweisungen für das Debugging mit 'kubectl exec', um
/var/log/syslog,containerd.log,kubelet.logundkern.logaus dem Workerknoten abzurufen.