我是靠谱客的博主 怕孤单自行车,最近开发中收集的这篇文章主要介绍[译]TLS bootstrapping,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

TLS BootStrapping 官方文档:https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/#initialization-process
在Kubernetes集群中,Node节点kubelet和kube-proxy上的组件需要与Kubernetes控制平面组件进行通信,特别是kube-apiserver。为了确保通信是私有的,不受干扰,并确保集群的每个组件都与另一个受信任的组件通信,我们强烈建议在节点上使用客户机TLS证书。

kubelet初始化过程

当工作节点启动时,kubelet 执行以下操作:

  1. 寻找它的kubeconfig文件,路径/etc/kubernetes/kubelet.kubeconfig
  2. 检索API服务器和凭据,通常是TLS密钥从URL和签名的证书kubeconfig文件
  3. 尝试使用凭据与 API 服务器通信。

假设 kube-apiserver 成功验证了 kubelet 的凭据,它将把 kubelet 视为有效节点,并开始为其分配 pod。

请注意,上述过程取决于:

  • 本地主机上存在密钥和证书 kubeconfig
  • 由 kube-apiserver 信任的证书颁发机构 (CA) 签署的证书

以下所有内容都是设置和管理集群的人的责任:

  1. 创建 CA 密钥和证书
  2. 将 CA 证书分发到运行 kube-apiserver 的控制平面节点
  3. 为每个 kubelet 创建密钥和证书;强烈建议为每个 kubelet 设置一个唯一的 CN,具有唯一的 CN
  4. 使用 CA 密钥签署 kubelet 证书
  5. 将 kubelet 密钥和签名证书分发到运行 kubelet 的特定节点

查看kubelet.kubeconfig证书有效期:
首先对kubelet.kubeconfi的certificate-authority-data字段进行解密:
然后使用OpenSSL查看证书过期时间:
在这里插入图片描述

Bootstrap Initialization

在 bootstrap 初始化过程中,会发生以下情况:

  1. kubelet 开始
  2. kubelet认为,它并没有有一个kubeconfig文件
  3. kubelet 搜索并找到一个bootstrap-kubeconfig文件
  4. kubelet 读取其引导程序文件,检索 API 服务器的 URL 和有限使用的“令牌”
  5. kubelet 连接到 API 服务器,使用令牌进行身份验证
  6. kubelet 现在具有有限的凭据来创建和检索证书签名请求 (CSR)
  7. kubelet 为自己创建一个 CSR,并将 signerName 设置为 kubernetes.io/kube-apiserver-client-kubelet
  8. CSR 通过以下两种方式之一获得批准:
    • 如果已配置,kube-controller-manager 会自动批准 CSR
    • 如果已配置,外部流程(可能是个人)使用 Kubernetes API 或通过 kubectl
  9. 为 kubelet 创建证书
  10. 证书颁发给 kubelet
  11. kubelet 检索证书
  12. kubeletkubeconfig使用密钥和签名证书创建一个适当的
  13. kubelet 开始正常运行
  14. 可选:如果已配置,kubelet 会在证书即将到期时自动请求更新证书
  15. 根据配置自动或手动批准和颁发更新的证书。

最后

以上就是怕孤单自行车为你收集整理的[译]TLS bootstrapping的全部内容,希望文章能够帮你解决[译]TLS bootstrapping所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部