【问题标题】:Is phase kubeconfig required after phase certs in kubeadm?在 kubeadm 中的阶段证书之后是否需要阶段 kubeconfig?
【发布时间】:2019-10-14 11:26:21
【问题描述】:

我最近使用 kubeadm 进行了升级,我希望它可以轮换所有证书,而且我还运行了 kubeadm init phase certs all,但我不确定需要哪些步骤来验证证书是否都正确地点并且不会过期。

我看到SO answer reference kubeadm init phase kubeconfig all 是另外需要的,但在kubernetes kubeadm documentation 中找不到告诉我它需要与阶段证书一起使用。

我需要做些什么来确保集群不会遇到过期的证书?

我已尝试通过连接到安全的本地端口进行验证:echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not,这将使我在下个月到期。

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -textopenssl x509 -in /etc/kubernetes/pki/apiserver-kubelet-client.crt -noout -text 的收益日期提前一年以上。

这些相互冲突的日期确实让我担心我会发现自己和其他许多证书过期的人一样。我怎么能挡在它前面?

感谢您的指导。

【问题讨论】:

    标签: kubernetes kubeadm


    【解决方案1】:

    本质上,kubeadm init phase certs all 会重新生成您的所有证书,包括您的 ca.crt(证书颁发机构),并且 Kubernetes 组件使用基于证书的身份验证连接到 kube-apiserver(kubelet、kube-scheduler、kube-controller-manager)所以你还必须通过运行kubeadm init phase kubeconfig all 重新生成几乎所有这些配置

    请记住,您必须在所有节点上重新生成 kubelet.conf,因为它还需要更新以使用新的 ca.crt 连接到 kube-apiserver。另外,请确保 add all your hostnames/IP addresses 您的 kube-apiserver 将服务于 kubeadm init phase certs all 命令 (--apiserver-cert-extra-sans)

    您在通过openssl 连接时没有看到更新的证书很可能是因为您尚未重新启动 Kubernetes 组件,尤其是 kube-apiserver。所以你必须启动你的 kube-apiserver、kube-scheduler、kube-controller-manager 等(或者 kube-apiservers、kube-scheduler 等,如果你正在运行一个多主控制平面)你还必须重新启动所有节点上的 kubelet。

    【讨论】:

    • 感谢您对发生的情况的解释,尽管在删除 pki 中的所有 .conf 和文件后,phase certsphase kubeconfig 加上重新启动服务器并没有改变 openssl证书到期指示。
    • 你重启了所有的 k8s master 了吗?
    • 是的。它是一个移除了污点的主节点,没有工作节点。
    • 它可能被配置为从另一个地方获取证书。你的配置在/etc/kubernetes/...下吗?
    • 是的,我们的配置在/etc/kubernetes 下。我已经通过查看 systemd kubelet 服务进行了验证。
    【解决方案2】:

    一个月后,我学到了一点东西,想为后面的人更新这个问题。

    我在 Kubernetes 上提交了issue 请求更多关于 kubeadm 升级过程如何自动更新证书的信息。 Kubernetes 上的文档说:

    注意:kubelet.conf 不包含在上面的列表中,因为 kubeadm 将 kubelet 配置为自动更新证书。

    升级后,我没有看到 kubelet 的自动证书更新。然后我被告知:

    关于何时轮换证书的决定是不确定的,它可能发生在证书总生命周期的 70-90% 以防止节点证书轮换重叠。

    他们还提供了以下流程,解决了我上次未完成的证书轮换问题:

    sudo mv /var/lib/kubelet/pki /var/lib/kubelet/pki-backup
    sudo systemctl restart kubelet
    # the pki folder should be re-created.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-03
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      相关资源
      最近更新 更多