免責事項:これは英文の記事「Contour Supervisor Service Pods Failing Readiness/Liveness Probes due to NSX Distributed Load Balancer Degraded Alarm」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
NSX-T を使用している VKS Supervisor クラスタにおいて、Contour Supervisor サービスの Pod が正常に起動せず、CrashLoopBackOff(CLBO) または Not Ready の状態のままとなる事象が発生します。
Contour Pod の詳細を確認すると、ポート 8000 および 8001 に対する connection refused エラーにより、Readiness および Liveness プローブが失敗していることが確認されます。
エラー例:
readiness probe failed for container contour:
dial tcp <pod-ip>:8001: connection refused
liveness probe failed for container contour:
GET http://<pod-ip>:8000/healthz: connection refused
vSphere Kubernetes Service
NSX-T
本事象は、NSX 分散ロードバランサー(Distributed Load Balancer:DLB) が Degraded 状態となっていることが原因で発生します。
Contour Supervisor サービスは、NSX-T のロードバランサー機能を利用して、ポート 8000(Liveness)および 8001(Readiness)経由で Contour Pod へトラフィックをルーティングしています。分散ロードバランサーが Degraded 状態の場合、以下の事象が発生します。
Contour サービスをバックエンドとする仮想サーバーが正常に機能しない
トラフィックが Contour Pod の IP アドレスへ正しく転送されない
Kubernetes の Readiness / Liveness プローブが connection refused エラーにより失敗する
その結果、Contour Pod は正常な Running 状態へ遷移しない
本件は Contour Pod 自体の問題ではなく、基盤となる NSX-T ロードバランサーインフラストラクチャ側の問題です。
Supervisor サービスをバックエンドとする NSX 分散ロードバランサーの Degraded 状態を解消してください。
NSX-T Manager UI にログインします。
Networking > Load Balancers > Distributed Load Balancer に移動します。
Degraded アラームが表示されている DLB を特定します。
プールメンバーの問題、設定不備、サービス障害など、根本原因を調査し是正対応を行います。
DLB が正常な状態に復旧すると、Contour Pod は自動的に Readiness および Liveness プローブを通過し、Running 状態へ遷移します。
分散ロードバランサーの Degraded アラームの詳細なトラブルシューティングおよび解決手順については、以下の KB 記事をご参照ください。
NSX Distributed Load Balancer shows Degraded alarm
https://knowledge.broadcom.com/external/article/420132/nsx-distributed-load-balancer-shows-degr.html