ビュー:
プロファイル適用性: レベル1 - マスターノード
証明書ベースのkubelet認証を有効にします。
デフォルトでは、apiserverはkubeletのHTTPSエンドポイントに対して自身を認証しません。apiserverからのリクエストは匿名として扱われます。リクエストを送信する際にapiserverがkubeletに対して自身を認証するように、証明書ベースのkubelet認証を設定する必要があります。
注意
注意
デフォルトでは、証明書ベースのkubelet認証は設定されていません。

影響

apiserverおよびkubeletにTLSを設定する必要があります。

監査

Control Planeノードで次のコマンドを実行します。
ps -ef | grep kube-apiserver
--kubelet-client-certificate--kubelet-client-key 引数が存在し、適切に設定されていることを確認してください。
代替監査方法
kubectl get pod -nkube-system -lcomponent=kube-apiserver -o=jsonpath='{range
.items[]}{.spec.containers[].command} {"\n"}{end}' | grep '--kubelet-client-certificate' |
grep -i false
終了コードが1の場合、コントロールが存在しないか失敗しています。

修復

Kubernetesのドキュメントに従って、apiserverとkubelet間のTLS接続を設定してください。その後、コントロールプレーンノード上のAPIサーバポッド仕様ファイル/etc/kubernetes/manifests/kube-apiserver.yamlを編集し、以下のようにkubeletクライアント証明書とキーのパラメータを設定してください。
--kubelet-client-certificate=<path/to/client-certificate-file>
--kubelet-client-key=<path/to/client-key-file>