説明
--rotate-certificates=false は kubelet クライアント証明書の自動更新を無効にします。別の更新手順がなければ、期限切れにより API サーバーへの認証に失敗する可能性があります。
自動更新は新しい鍵と証明書署名要求(CSR)を使うため、承認と証明書の発行が実際に機能する必要があります。kubelet サーバー証明書の更新とは別です。
想定される影響
- 証明書の期限切れにより、ノードから API サーバーへのアクセスが中断する可能性があります。
- 手動更新の漏れや遅延は、障害復旧の負担を増やすおそれがあります。
対処方法
- KubeletConfiguration の
rotateCertificates: true、または使用バージョンが対応する--rotate-certificates=trueを設定してください。 - 必要な CSR 承認・署名権限を構成し、実際の証明書の更新と有効期限を確認してください。
- 手動管理が必要な場合は、期限前の更新手順と警告を用意してください。
例
kubelet の引数を比較する抜粋です。foo/bar は仮の値なので、実際のノードの kubelet 設定に適用してください。
変更前
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: foo/bar
command: ["kubelet"]
args: ["--rotate-certificates=false"]
クライアント証明書の自動更新が無効なため、別の更新手順が必要です。
変更後
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: foo/bar
command: ["kubelet"]
args: ["--rotate-certificates"]
更新を要求する設定です。新しい証明書を使用するには、CSR の承認と署名が正常に完了する必要があります。