为什么要使用kubeadm手动生成证书?

时间:2018-10-30 22:48:38

标签: kubernetes

我正在尝试遵循此tutorial

  1. 自行生成证书而不是依赖kubeadm的好处是什么?
  2. 如果您自己创建证书,那么从kubeadm设置集群后是否会自动旋转?

谢谢!

2 个答案:

答案 0 :(得分:3)

我自己创建所有证书,其原因是

  1. 我们使用的kubernetes集群可能不会每年更新一次,因此我们需要使用期限更长的证书。我们的应用程序不支持随机重启docker,并且我们不接受kubeadm phase命令来重新生成证书并重启docker。因此,我们创建了所有有效期为5年的证书,并将其提供给kubeadm,它可以正常工作。现在,我们不必担心每年的证书到期时间。

  2. 没有kubeadm不提供证书的自动轮换功能,这就是我们首先需要更长的证书到期时间的原因。

希望这会有所帮助。

答案 1 :(得分:1)

  1. 没有主要优势。 kubeadm的作用相同:生成自签名证书。唯一的迷你优势是您可以在CSR中添加一些自定义值,例如城市,组织等。

  2. 不是真的。

    • 有一个kubelet certificate旋转标记--rotate-certificates需要启用。
    • 还有来自主证书的证书轮换,kubeadm可以通过以下commands来帮助您解决问题:

      mkdir /etc/kubernetes/pkibak
      mv /etc/kubernetes/pki/* /etc/kubernetes/pkibak
      rm /etc/kubernetes/pki/*
      kubeadm init phase certs all --apiserver-advertise-address=0.0.0.0 --apiserver-cert-extra-sans=x.x.x.x,x.x.x.x
      systemctl restart docker
      

如果您想重新生成admin.conf文件,也可以使用kubeadm

$ kubeadm init phase kubeconfig admin \
  --cert-dir /etc/kubernetes/pki \
  --kubeconfig-dir /tmp/.