Kubelet サーバー証明書の自動更新設定の確認

kubelet サーバー証明書を期限前に更新し、検証済みノードだけに発行してください。

説明

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 と承認・発行手順も必要です。

参考資料