在Kubernetes 1.6中,当使用ssl身份验证时,Kubelet服务无法启动,为什么?

时间:2017-07-27 05:52:46

标签: kubernetes kubernetes-security

当我执行“systemctl start kubelet”命令时,结果显示“错误:无法运行kubelet:无法创建证书签名请求:服务器已请求客户端提供凭据(post certificateigningrequests.certificates.k8s.io )“

配置文件如下:

- experimental-bootstrap-kubeconfig = / etc / kubernetes / bootstrap.kubeconfig --kubeconfig = / etc / kubernetes / kubelet.kubeconfig --require-kubeconfig --cert-dir = / etc / kubernetes / ssl - 群集域= cluster.local。 --hairpin-mode promiscuous-bridge --serialize-image-pulls = false“

如果我对上面的一行发表评论,那么一切正常,但我想使用SSL身份验证,那么我该怎么办?

1 个答案:

答案 0 :(得分:0)

可能缺少一些额外的参数。这是使用证书签名请求(https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/06-kubernetes-worker.md)的启动命令的示例:

ExecStart=/usr/bin/kubelet \\
  --api-servers=${API_SERVERS} \\
  --allow-privileged=true \\
  --cluster-dns=10.32.0.10 \\
  --cluster-domain=cluster.local \\
  --container-runtime=docker \\
  --experimental-bootstrap-kubeconfig=/var/lib/kubelet/bootstrap.kubeconfig \\
  --network-plugin=kubenet \\
  --kubeconfig=/var/lib/kubelet/kubeconfig \\
  --serialize-image-pulls=false \\
  --register-node=true \\
  --tls-cert-file=/var/lib/kubelet/kubelet-client.crt \\
  --tls-private-key-file=/var/lib/kubelet/kubelet-client.key \\
  --cert-dir=/var/lib/kubelet \\
  --v=2

您可以尝试添加register-node或tls-cert-file和tls-cert-key-file等标志(我的意思是它会生成)

但是,当我尝试使证书签名请求完全正常工作时,我发现仍然存在一些问题,因此我建议您使用群集CA手动创建证书。