Kubernetes集群的CIS基准问题



我正在主节点上运行CIS kube工作台工具,并试图解决此错误

[FAIL] 1.2.6 Ensure that the --kubelet-certificate-authority argument is set as appropriate (Automated). 

我知道我需要更新API服务器清单YAML文件,该标志指向正确的CA文件--kubele-certificate-authority,但是,我不确定哪一个是kubelet的正确CA Certifyface。

这些是我在PKI目录中的文件:-

apiserver-etcd-client.crt
apiserver-etcd-client.key
apiserver-kubelet-client.crt
apiserver-kubelet-client.key
apiserver.crt
apiserver.key
ca.crt
ca.key
etcd
front-proxy-ca.crt
front-proxy-ca.key
front-proxy-client.crt
front-proxy-client.key
sa.key
sa.pub

3个关于同一主题的非常相似的讨论。我不会向您提供所有步骤,因为它在文档和堆栈上的相关问题中写得很好。仅高级概述

  1. 如何正确设置--kubelet证书颁发机构apiserver参数
  2. Kubernetes kubelet证书颁发机构与kubespray的内部部署导致主节点的证书验证错误
  3. Kubernetes kubelet证书颁发机构与kubespray的内部部署导致主节点的证书验证错误

您的操作:

  • 遵循Kubernetes文档,设置apiserver和kubelets之间的TLS连接

这些连接终止于kubelet的HTTPS端点依据默认情况下,apiserver不会验证kubelet的服务证书,使连接受制于中间人攻击并且在不受信任的和/或公共网络上运行是不安全的。

  • 启用Kubelet身份验证和Kubelet授权

然后,编辑主节点上的API服务器pod规范文件/etc/kubernetes/manifests/kube-apiserver.yaml,并将--kubelet-certificate-authority参数设置为证书颁发机构的证书文件的路径


来自@马特应答

  • 使用/etc/kubernetes/ssl/ca.crt为具有有效IP SAN的kubelet签署新证书
  • 设置--kubelet-certificate-authority=/etc/kubernetes/ssl/ca.crt(有效CA(
  • /var/lib/kubelet/config.yaml(kubelet配置文件(中,将tlsCertFiletlsPrivateKeyFile设置为指向新创建的kubeletcrtkey文件

根据澄清:

是的,您必须为kubelets生成证书并对其进行签名提供的证书颁发机构位于主机上的此处/etc/kubernetes/ssl/ca.crt

默认情况下,在Kubernetes中有3个不同的父CA(Kubernetes-CA,etcd-CA,Kubernete-front-proxy CA(。您正在寻找kubernetes ca,因为kubelet使用的是kubernetes-ca,您可以查看文档。kubernetes ca默认路径为/etc/kubernetes/pki/ca.crt,但您也可以通过kubelet configmap使用以下命令进行验证

kubectl get configmap -n kube-system $(kubectl get configmaps -n kube-system | grep kubelet  | awk '{print $1}') -o yaml | grep -i clientca

相关内容

  • 没有找到相关文章