Calico コンポーネントのデバッグ
仮想プライベートクラウド クラシック・インフラストラクチャー
デプロイしないポッドや断続的なネットワーキング問題など、Calico コンポーネントに関する問題が発生します。
デプロイしないポッドや断続的なネットワーキング問題など、Calico コンポーネントに関する問題が発生します。
Calico 詳細なログがなければ、ネットワークの問題の診断は困難になる場合があります。 Calico コンポーネントのデフォルトのログレベルは「 info 」に設定されています。このレベルでは基本的な動作情報は提供されますが、複雑なネットワークの問題をトラブルシューティングするには詳細情報が不十分な場合があります。
この問題に関するより詳細な情報を収集するために、 Calico コンポーネントのログレベルを「 debug 」に引き上げてください。 デバッグレベルのロギングでは、ネットワーク問題の根本原因を特定するのに役立つ詳細な出力が得られます。
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-config構成マップを編集します。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-nodeポッドが再始動されるまで有効になりません。 -
calico-nodeポッドを再始動して、変更を適用します。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-nodeデーモンセット内のすべてのポッドがローリング更新を完了し、変更が適用されます。calico-cniは、kube-system/calico-config構成マップ内のロギング・レベルに対するすべての変更も適用します。
calico-kube-controllers コンポーネントのログ・レベルの引き上げ
calico-kube-controllers コンポーネントのログ・レベルを上げるには、以下の手順を実行します。
-
次のコマンドを実行して、デプロイメントを編集します。
oc edit deploy calico-kube-controllers -n calico-system -
DATASTORE_TYPEの名前と値のペアの下に、以下の項目を追加します。- name: LOG_LEVEL value: debug -
変更を保存します。
calico-kube-controllersポッドが再始動し、変更が適用されます。
Calico ログの収集
-
クラスタ内のポッドとノードを一覧表示し、問題が発生しているポッド名、ポッドのIPアドレス、およびワーカーノードをメモしておいてください。
oc get pods -o wide -n calico-system -
問題が発生したワーカー・ノード上の
calico-nodeポッドのログを取得します。oc logs calico-typha-aaa11111a-aaaaa -n calico-system -
calico-kube-controllersポッドのログを取得します。oc logs calico-kube-controllers-11aaa11aa1-a1a1a -n calico-system -
oc exec を使用したデバッグ の手順に従って、ワーカー・ノードから
/var/log/syslog、containerd.log、kubelet.logおよびkern.logを取得します。