除錯 Calico 元件
Virtual Private Cloud 標準基礎架構
您會遇到 Calico 元件的問題,例如不部署的 Pod 或間歇性網路問題。
提高 Calico 元件的記載層次,以收集問題的相關資訊。
增加 calico-typha 元件的記載層次
完成下列步驟,以增加 calico-typha 元件的記載層次。
-
執行以下命令來編輯
calico-typha部署。oc edit deploy calico-typha -n calico-system -
將
TYPHA_LOGSEVERITYSCREEN環境變數從info變更為debug。containers: - env: - name: TYPHA_LOGSEVERITYSCREEN value: debug -
儲存並關閉檔案以套用變更,然後重新啟動
calico-typha部署。
增加 calico-cni 元件的記載層次
完成下列步驟,以增加 calico-cni 元件的記載層次。
-
執行以下命令來編輯
calico-configConfigMap。oc edit cm -n calico-system cni-config -
將
cni_network_config>plugins>log_level環境變數變更為debug。cni_network_config: |- { "name": "k8s-pod-network", "cniVersion": "0.3.1", "plugins": [ { "type": "calico", "log_level": "debug", -
儲存並關閉檔案。 在重新啟動
calico-nodePod 之後,變更才會生效。 -
重新啟動
calico-nodepod 來套用變更。oc rollout restart daemonset/calico-node -n calico-system輸出範例
daemonset.apps/calico-node restarted
增加 calico-node 元件的記載層次
完成下列步驟,以增加 calico-node 元件的記載層次。
-
執行下列指令:
oc edit ds calico-node -n calico-system -
在
FELIX_USAGEREPORTINGENABLED名稱/值配對 (或任何FELIX_*環境變數名稱/值配對之後) 下,新增下列項目。- name: FELIX_LOGSEVERITYSCREEN value: Debug -
儲存變更。 儲存變更之後,
calico-nodedaemonset 中的所有 Pod 都會完成套用變更的漸進式更新。calico-cni也會將任何變更套用至kube-system/calico-configConfigMap中的記載層次。
增加 calico-kube-controllers 元件的記載層次
完成下列步驟,以增加 calico-kube-controllers 元件的記載層次。
-
透過執行以下命令編輯守護程序集。
oc edit ds calico-node -n calico-system -
在
DATASTORE_TYPE名稱/值配對下,新增下列項目。- name: LOG_LEVEL value: debug -
儲存變更。
calico-kube-controllersPod 會重新啟動並套用變更。
收集 Calico 日誌
-
列出叢集裡的 Pod 及節點,並建立具有問題的 Pod 名稱、Pod IP 位址及工作者節點的節點。
-
取得發生問題之工作者節點上
calico-nodePod 的日誌。oc logs calico-typha-aaa11111a-aaaaa -n calico-system -
取得
calico-kube-controllersPod 的日誌。oc logs calico-kube-controllers-11aaa11aa1-a1a1a -n calico-system -
遵循 使用 oc exec 進行除錯 的指示,從工作者節點取得
/var/log/syslog、containerd.log、kubelet.log及kern.log。