IBM Cloud Docs
除錯 Calico 元件

除錯 Calico 元件

Virtual Private Cloud 標準基礎架構

您會遇到 Calico 元件的問題,例如不部署的 Pod 或間歇性網路問題。

提高 Calico 元件的記載層次,以收集問題的相關資訊。

增加 calico-typha 元件的記載層次

完成下列步驟,以增加 calico-typha 元件的記載層次。

  1. 執行以下命令來編輯 calico-typha 部署。

    oc edit deploy calico-typha -n calico-system
    
  2. TYPHA_LOGSEVERITYSCREEN 環境變數從 info 變更為 debug

          containers:
        - env:
          - name: TYPHA_LOGSEVERITYSCREEN
            value: debug
    
  3. 儲存並關閉檔案以套用變更,然後重新啟動 calico-typha 部署。

增加 calico-cni 元件的記載層次

完成下列步驟,以增加 calico-cni 元件的記載層次。

  1. 執行以下命令來編輯 calico-configConfigMap。

    oc edit cm -n calico-system cni-config
    
  2. cni_network_config > plugins > log_level 環境變數變更為 debug

      cni_network_config: |-
      {
        "name": "k8s-pod-network",
        "cniVersion": "0.3.1",
        "plugins": [
          {
            "type": "calico",
            "log_level": "debug",
    
  3. 儲存並關閉檔案。 在重新啟動 calico-node Pod 之後,變更才會生效。

  4. 重新啟動 calico-node pod 來套用變更。

    oc rollout restart daemonset/calico-node -n calico-system
    

    輸出範例

    daemonset.apps/calico-node restarted
    

增加 calico-node 元件的記載層次

完成下列步驟,以增加 calico-node 元件的記載層次。

  1. 執行下列指令:

    oc edit ds calico-node -n calico-system
    
  2. FELIX_USAGEREPORTINGENABLED 名稱/值配對 (或任何 FELIX_* 環境變數名稱/值配對之後) 下,新增下列項目。

    - name: FELIX_LOGSEVERITYSCREEN
      value: Debug
    
  3. 儲存變更。 儲存變更之後,calico-node daemonset 中的所有 Pod 都會完成套用變更的漸進式更新。 calico-cni 也會將任何變更套用至 kube-system/calico-config ConfigMap中的記載層次。

增加 calico-kube-controllers 元件的記載層次

完成下列步驟,以增加 calico-kube-controllers 元件的記載層次。

  1. 透過執行以下命令編輯守護程序集。

    oc edit ds calico-node -n calico-system
    
  2. DATASTORE_TYPE 名稱/值配對下,新增下列項目。

    - name: LOG_LEVEL
      value: debug
    
  3. 儲存變更。 calico-kube-controllers Pod 會重新啟動並套用變更。

收集 Calico 日誌

  1. 列出叢集裡的 Pod 及節點,並建立具有問題的 Pod 名稱、Pod IP 位址及工作者節點的節點。

  2. 取得發生問題之工作者節點上 calico-node Pod 的日誌。

    oc logs calico-typha-aaa11111a-aaaaa -n calico-system
    
  3. 取得 calico-kube-controllers Pod 的日誌。

    oc logs calico-kube-controllers-11aaa11aa1-a1a1a -n calico-system
    
  4. 遵循 使用 oc exec 進行除錯 的指示,從工作者節點取得 /var/log/syslogcontainerd.logkubelet.logkern.log