説明
kubelet サーバー証明書を期限までに更新しないと、API サーバーからノードへの接続に失敗する可能性があります。自動更新には RotateKubeletServerCertificate、serverTLSBootstrap: true、正常な CSR 承認・署名手順が必要です。
Kubernetes の組み込み承認器は、kubelet サーバー証明書の CSR を自動承認しません。検証を行う別の承認器または手動手順を用意し、クライアント証明書の更新とは区別してください。
想定される影響
- サーバー証明書の期限切れで、ログ取得などのノード管理が中断する可能性があります。
- CSR を検証せず承認すると、他のノードになりすます証明書が発行されるおそれがあります。
対処方法
- サポート対象の kubelet 設定で、機能と
serverTLSBootstrap: trueを有効にしてください。 - ノードの身元と要求する DNS 名・IP アドレスを検証する承認・署名手順を構成してください。すべての要求を無条件に承認しないでください。
- 実際のサーバー証明書の更新と API サーバーの CA 検証を試験し、有効期限を監視してください。
例
機能ゲートだけを比較する KubeletConfiguration の抜粋です。更新設定全体や CSR の承認手順は含みません。
変更前
yaml
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
featureGates:
RotateKubeletServerCertificate: false
サーバー証明書の更新機能が無効です。別途証明書を管理しなければ、期限切れで接続に失敗する可能性があります。
変更後
yaml
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
featureGates:
RotateKubeletServerCertificate: true
機能ゲートを有効にしています。これだけでは更新は始まらず、serverTLSBootstrap と承認・発行手順も必要です。