07.kubeadm 集群初始化命令指南09-token

kubeadm token 命令使用指南

一、kubeadm token 命令详解

  1. 命令概述
    kubeadm token 命令用于管理 Kubernetes 集群的引导令牌(bootstrap tokens)。这些令牌在节点加入集群时建立客户端与服务器之间的双向信任关系,
    是高级用例中的可选组件。

  2. 引导令牌的作用
    ‌建立信任‌:当客户端(如即将加入集群的节点)需要信任与之通信的服务器时,可使用具有“签名”用途的引导令牌。
    ‌短期认证‌:引导令牌还可作为向 API 服务器进行短期认证的方式,例如用于 TLS 引导过程。

  3. 引导令牌的具体信息
    ‌Secret 类型‌:引导令牌是存储在 kube-system 命名空间中的类型为 “bootstrap.kubernetes.io/token” 的 Secret。
    ‌格式要求‌:令牌必须遵循 “a-z0-9]{6}.a-z0-9]{16}” 的格式。前半部分是公共令牌 ID,后半部分是令牌密钥,必须严格保密。
    ‌Secret 名称‌:Secret 的名称必须为 “bootstrap-token-(token-id)”。

  4. 可用子命令
    ‌create‌:在服务器上创建引导令牌。
    ‌delete‌:在服务器上删除引导令牌。
    ‌generate‌:生成并打印引导令牌,但不在服务器上创建它。
    ‌list‌:列出服务器上的所有引导令

  5. 使用示例
    ‌查看帮助信息‌:通过 kubeadm token -h 查看命令的简要说明及可用子命令。
    ‌创建令牌‌:使用 kubeadm token create 命令在服务器上创建新的引导令牌。
    ‌删除令牌‌:通过指定令牌 ID 或 Secret 名称,使用 kubeadm token delete 命令删除特定的引导令牌。
    ‌生成令牌‌:运行 kubeadm token generate 命令生成一个新的引导令牌,但不会将其存储在服务器上。
    ‌列出令牌‌:使用 kubeadm token list 命令查看服务器上所有现有的引导令牌。

二、创建加入集群的令牌

1. 命令核心功能

用于创建 Kubernetes 集群的引导令牌(Bootstrap Token),支持以下核心能力:
‌生成随机令牌‌(默认)或‌指定自定义令牌‌
控制令牌有效期(TTL)
定义令牌用途(签名、认证)
直接生成节点加入命令(–print-join-command)

二、关键参数解析

kubeadm token create -h

--ttl	令牌有效期	2h30m、0(永不过期)	24h
--usages	令牌用途(逗号分隔)	signing,authentication	[signing,authentication]
--groups	认证组(RBAC 权限关联)	system:bootstrappers:worker-nodes	system:bootstrappers:kubeadm:default-node-token
--description	人类可读的令牌描述	"Auto-scaling worker token"	-
--print-join-command	输出完整的节点加入命令	true	false
--certificate-key	控制平面加入时的证书密钥(需配合 --print-join-command)	7a3f...d82c	-

三、典型场景操作示例

场景 1:创建普通工作节点令牌(有效期 2 小时)

kubeadm token create --ttl=2h --description="Worker node onboarding"

执行输出

root@k8s-master01:~# kubeadm token create --ttl=2h --description="Worker node onboarding"
xwt3zf.zhum519ch1hrn5ir
root@k8s-master01:~# kubeadm token list
TOKEN                     TTL         EXPIRES   USAGES                   DESCRIPTION                                                EXTRA GROUPS
abcdef.0123456789abcdef   <forever>   <never>   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
xwt3zf.zhum519ch1hrn5ir   1h          2025-04-04T03:51:31Z   authentication,signing   Worker node onboarding                                     system:bootstrappers:kubeadm:default-node-token

场景 2:创建控制平面节点令牌(需证书密钥)

# 生成证书密钥(在控制平面节点执行)
kubeadm init phase upload-certs --upload-certs

# 创建令牌并输出加入命令
kubeadm token create --ttl=1h \
  --certificate-key=7a3f...d82c \
  --print-join-command

执行输出

步骤1
root@k8s-master01:~# kubeadm init phase upload-certs --upload-certs
[upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace
[upload-certs] Using certificate key:
12b19772aaea4b390607ea0a9c292ac4cc6a140fdfdb3c082ff384c379010c95

步骤2
root@k8s-master01:~# kubeadm token create --ttl=1h \
>   --certificate-key=12b19772aaea4b390607ea0a9c292ac4cc6a140fdfdb3c082ff384c379010c95 \
>   --print-join-command
kubeadm join 10.62.1.180:8443 --token 32yq2v.o3f04itiwo4hju5o --discovery-token-ca-cert-hash sha256:ddf7eba18b7422823b475f7feb1dad2b2f03daab67abebbe51c957df350b476e --control-plane --certificate-key 12b19772aaea4b390607ea0a9c292ac4cc6a140fdfdb3c082ff384c379010c95
后续将生成kubeadm join  命令用于集群master 节点加入使用

场景 3:创建永久令牌(用于 CI/CD 流水线)

kubeadm token create --ttl=0 \
  --usages=authentication \
  --groups=system:bootstrappers:ci-pipeline

执行输出

root@k8s-master01:~# kubeadm token list
TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION  
d73f8z.6uj2kx5h8nxiv93x   <forever>   <never>   authentication           <none>                                                     system:bootstrappers:ci-pipeline

四、安全操作规范

1.令牌生命周期管理

# 查看所有令牌
kubeadm token list

# 删除过期令牌
kubeadm token delete d73f8z.6uj2kx5h8nxiv93x 
bootstrap token "d73f8z" deleted

‌2.证书密钥保护

# 加密存储证书密钥
echo "7a3f...d82c" | gpg --encrypt -r admin@example.com > cert-key.gpg

‌3.最小权限原则

# RBAC 配置示例(绑定到特定组)
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: node-auto-approve-csr
subjects:
- kind: Group
  name: system:bootstrappers:worker-nodes
roleRef:
  kind: ClusterRole
  name: system:certificates.k8s.io:certificatesigningrequests:nodeclient
  1. 调试技巧
    查看令牌 Secret 详情
kubectl -n kube-system get secret/bootstrap-token-abcdef -o yaml

五、参数组合参考表

操作目标 推荐参数组合
临时维护令牌 --ttl=15m --description=“Emergency maintenance”
自动扩缩容 --ttl=0 --groups=system:bootstrappers:autoscaler
多控制平面部署 --print-join-command --certificate-key=
受限用途令牌 --usages=signing --groups=system:bootstrappers:auditroups=system:bootstrappers:autoscaler
多控制平面部署 --print-join-command --certificate-key=
受限用途令牌 --usages=signing --groups=system:bootstrappers:audit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liao wen xiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值