gpt4 book ai didi

kubernetes - k8s 中 TLS bootstrap 中的 cluster-info configmap 是什么?

转载 作者:行者123 更新时间:2023-12-02 11:32:37 25 4
gpt4 key购买 nike

我试图通过 TLS 引导工作节点加入我现有的 1 个主节点和 2 个工作节点集群。以下是我遵循的过程 -

  1. 在主服务器上创建引导 token 以进行初始身份验证。
  2. 创建适当的集群角色绑定(bind),让 kubelet 提出、批准和轮换证书。
  3. 在工作节点上创建一个 bootstrap-kubeconfig 文件。
  4. 创建一个 kubelet 服务并启动它。

所有这些工作正常,我的新工作节点能够毫无问题地加入集群。

但现在我在 Bootstrap 过程中遇到了称为 cluster-info configmap signing 的东西。 link

它到底是什么以及它如何帮助我进行引导过程?我浏览了 k8s 文档,但他们没有提供很多细节。我所知道的是您必须创建一个名称为 cluster-info 的配置映射,但不确定如何以及为何使用它。

提前致谢!

p.s - 如果有任何链接通过实际示例详细阐述了此过程,请分享。

最佳答案

您可以在 kubernetes 代码中找到一些信息:

https://github.com/kubernetes/kubernetes/blob/1493757d69a8e0032128a5dadc56b168b00a6519/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo.go

还有一些信息,当你使用 kubeadm 引导时:

https://github.com/kubernetes/community/blob/master/contributors/design-proposals/cluster-lifecycle/bootstrap-discovery.md

kubeadm 将实现以下流程:

kubeadm 连接到通过 TLS 指定的 API 服务器地址。因为我们还没有根 要信任的证书,这是一个不安全的连接,服务器证书未经验证。 kubeadm 根本不提供身份验证凭据。

实现说明:API 服务器不必暴露新的和特殊的不安全 HTTP 端点。 (D)DoS 问题:在此流程可以安全地公开使用/启用之前(未引导时),API 服务器必须支持速率限制。

kubeadm 请求一个包含上面定义的 kubeconfig 文件的 ConfigMap。此 ConfigMap 存在于众所周知的 URL 中:

https:///api/v1/namespaces/kube-public/configmaps/cluster-info

这个 ConfigMap 是真正公开的。用户无需身份验证即可读取此 ConfigMap。事实上,客户端不能在这里使用不记名 token ,因为我们还不信任这个端点。

API server 正常返回带有 kubeconfig 内容的 ConfigMap 该 ConfigMap 上的额外数据项包含 JWS 签名。 kubeadm 根据 token 的 token-id 部分找到正确的签名。

kubeadm 验证 JWS,现在可以信任服务器。进一步的通信更简单,因为 kubeconfig 文件中的 CA 证书可以信任

作为保护集群的一种方式,您可以关闭对集群信息的公共(public)访问:

https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-join#turning-off-public-access-to-the-cluster-info-configmap

关于kubernetes - k8s 中 TLS bootstrap 中的 cluster-info configmap 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58695172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com