您的位置:首页 > 新闻 > 资讯 > 儿童7一8岁手工_学生ppt模板免费下载 素材_百度主页入口_腾讯广告投放推广平台价格

儿童7一8岁手工_学生ppt模板免费下载 素材_百度主页入口_腾讯广告投放推广平台价格

2025/2/27 13:26:18 来源:https://blog.csdn.net/a1369760658/article/details/145785139  浏览:    关键词:儿童7一8岁手工_学生ppt模板免费下载 素材_百度主页入口_腾讯广告投放推广平台价格
儿童7一8岁手工_学生ppt模板免费下载 素材_百度主页入口_腾讯广告投放推广平台价格

云原生学习路线导航页(持续更新中)

  • kubernetes学习系列快捷链接
    • Kubernetes架构原则和对象设计(一)
    • Kubernetes架构原则和对象设计(二)
    • Kubernetes架构原则和对象设计(三)
    • Kubernetes控制平面组件:etcd(一)
    • Kubernetes控制平面组件:etcd(二)
    • Kubernetes控制平面组件:etcd常用配置参数
    • Kubernetes控制平面组件:etcd高可用集群搭建
    • Kubernetes控制平面组件:etcd高可用解决方案
    • Kubernetes控制平面组件:Kubernetes如何使用etcd
    • kubectl 和 kubeconfig 基本原理
    • kubeadm 升级 k8s集群 1.17到1.20
    • Kubernetes常见问题解答
    • 查看云机器的一些常用配置

本文主要对kubernetes API Server 认证机制中的 引导Token 认证方式进行介绍,包括 引导Token 的设计理念、实现原理、认证流程,以及在 Kubernetes 中的具体应用

1.引导Token的认证方式简介

  • Kubernetes 的引导 Token(Bootstrap Token)认证是一种用于简化集群节点加入和初始化的机制。
  • 它允许新节点或组件通过临时 Token 加入集群,并在完成初始化后自动失效。
  • 这种方式常用于集群的自动化部署和扩展。

2.引导 Token 认证的工作原理

  • 引导 Token 是一种短期的、临时的 Token,用于以下场景

    • 节点加入集群:新节点使用引导 Token 向 API Server 认证并加入集群。
    • 初始化组件:如 kubeadm 初始化集群时,使用引导 Token 完成初始配置。
  • 引导 Token 的特点:

    • 短期有效:Token 有明确的过期时间,通常为 24 小时。
    • 自动失效:使用后会自动失效,避免长期暴露。
    • RBAC 支持:可以为引导 Token 绑定特定的 RBAC 权限,限制其使用范围。

3.引导 Token 的结构

  • 引导 Token 是一个由两部分组成的字符串,格式为:<token-id>.<token-secret>
    • 例如:abcdef.0123456789abcdef
    • Token ID:6 个字符的随机字符串,用于标识 Token。
    • Token Secret:16 个字符的随机字符串,用于验证 Token。

4.创建引导 Token

4.1.使用 kubeadm 创建引导 Token

kubeadm 提供了创建和管理引导 Token 的工具。

kubeadm token create

输出示例:

abcdef.0123456789abcdef

4.2.查看已创建的 Token

kubeadm token list

输出示例:

TOKEN                     TTL       EXPIRES                USAGES                   DESCRIPTION   EXTRA GROUPS
abcdef.0123456789abcdef   23h       2025-02-19T12:34:56Z   authentication,signing   <none>        system:bootstrappers:kubeadm:default-node-token

4.3.手动创建引导 Token

  • 如果需要手动创建引导 Token,可以按照以下步骤操作:

    • 生成 Token ID 和 Token Secret:

      TOKEN_ID=$(head -c 6 /dev/urandom | base64 | tr -d '/+' | head -c 6)
      TOKEN_SECRET=$(head -c 16 /dev/urandom | base64 | tr -d '/+' | head -c 16)
      BOOTSTRAP_TOKEN="${TOKEN_ID}.${TOKEN_SECRET}"
      echo "Bootstrap Token: ${BOOTSTRAP_TOKEN}"
      
    • 将 Token 写入 Kubernetes Secret:

      kubectl create secret generic bootstrap-token-${TOKEN_ID} \--namespace=kube-system \--type=bootstrap.kubernetes.io/token \--from-literal=token-id=${TOKEN_ID} \--from-literal=token-secret=${TOKEN_SECRET} \--from-literal=usage-bootstrap-authentication=true \--from-literal=usage-bootstrap-signing=true \--from-literal=expiration=$(date -d "+24 hours" -u +"%Y-%m-%dT%H:%M:%SZ")
      

5.使用引导 Token 加入集群

5.1.获取集群信息

  • 在 Master 节点上运行以下命令,获取集群的 CA 证书哈希和 API Server 地址:
    openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
    kubectl cluster-info
    

5.2.在新节点上使用引导 Token 加入集群

  • 在新节点上运行以下命令,使用引导 Token 加入集群:

    kubeadm join <api-server-address>:<port> \--token <bootstrap-token> \--discovery-token-ca-cert-hash sha256:<ca-cert-hash>
    
  • 例如:

    kubeadm join 192.168.1.100:6443 \--token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
    

6.引导 Token 的 RBAC 配置

  • 引导 Token 默认绑定到 system:bootstrappers:kubeadm:default-node-token 组,可以通过 RBAC 为其分配权限。

  • 例如,为新节点分配必要的权限:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:name: kubeadm:node-autoapprove-bootstrap
    roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: system:node-bootstrapper
    subjects:
    - apiGroup: rbac.authorization.k8s.iokind: Groupname: system:bootstrappers:kubeadm:default-node-token
    

7.引导 Token 的过期和清理

  • 引导 Token 在过期后会自动失效,也可以通过以下命令手动删除:
    kubeadm token delete <token-id>
    
  • 例如:
    kubeadm token delete abcdef
    

8.总结

  • 引导 Token 认证是 Kubernetes 中一种简单且安全的机制,适用于集群节点的初始化和自动化部署。
  • 通过 kubeadm 工具可以轻松创建和管理引导 Token,并结合 RBAC 实现权限控制。
  • 在实际操作中,建议:
    • 定期清理过期的 Token。
    • 结合自动化工具(如 Ansible、Terraform)实现集群的自动化部署。
    • 在生产环境中使用更安全的认证方式(如 TLS 证书)替代引导 Token。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com