k8s集群新增节点的token怎么获取,具体展示下
时间: 2023-09-03 12:25:21 浏览: 263
kubeadm 生成的k8s集群token过期后,集群增加或删除节点-详细文档
### 回答1:
使用kubeadm命令可以获取token,具体操作步骤如下:1.在集群的master节点上执行kubeadm token create命令,以获取token:$ kubeadm token create2.使用kubeadm token list命令可以查看当前的所有token:$kubeadm token list3.将获取的token复制到新节点上,然后使用kubeadm join命令将新节点加入到集群中:$ kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
### 回答2:
Kubernetes(简称k8s)是一个开源的容器编排平台,用于管理和部署容器化应用程序。在k8s集群中,如果要将新节点添加到集群中,需要使用一个令牌(token)来进行验证和授权。
获取k8s集群新增节点的token的方法如下:
1. 登录到k8s集群的控制节点或master节点。
2. 执行以下命令获取Token:
```
kubeadm token create
```
这将生成一个随机的字符串作为token。
3. 使用以下命令获取集群的CA证书哈希:
```
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
```
这将返回一个长字符串的哈希值,它是CA证书的指纹。
4. 将第2步生成的token和第3步生成的CA证书哈希保存起来,以备将来在新节点上加入集群时使用。
具体展示如下:
```
# 生成Token
$ kubeadm token create
duqwtn.hbbavk5i28tco1gm
# 获取CA证书哈希
$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
41bea122ae05aef8dabf401dd279d166db5e66e7beea75263d84e7d0bf5e34e5
# 将Token和CA证书哈希保存起来
Token: duqwtn.hbbavk5i28tco1gm
CA证书哈希: 41bea122ae05aef8dabf401dd279d166db5e66e7beea75263d84e7d0bf5e34e5
```
这样,你就获得了k8s集群新增节点的token,可以将该token发送给需要加入集群的新节点,并使用相应的命令完成节点的加入操作。
### 回答3:
在Kubernetes (k8s) 集群中,要添加新的节点,我们需要首先获取一个用于加入集群的 token。获取 token 的过程如下:
1. 打开拥有管理员权限的 Kubernetes 主控制节点(通常是其中的一个 master 节点)。
2. 通过以下命令创建新的 token:
```
kubectl create sa <service-account-name> -n <namespace>
```
在上述命令中,`<service-account-name>` 是一个为新增节点创建的服务账户名称,可以自定义。`<namespace>` 是新增节点所在的命名空间,也可以自定义。
3. 为新增的服务账户创建一个角色绑定,这将使其获得足够的权限来加入集群。使用以下命令创建角色绑定:
```
kubectl create clusterrolebinding <binding-name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<service-account-name>
```
在上述命令中,`<binding-name>` 是角色绑定的名称,可以自定义。
4. 使用以下命令获取新节点的 token:
```
kubectl get secret $(kubectl get sa <service-account-name> -n <namespace> -o jsonpath='{.secrets[0].name}') -n <namespace> -o jsonpath='{.data.token}' | base64 --decode
```
在上述命令中,`<service-account-name>` 是步骤 2 中为新增节点创建的服务账户的名称,`<namespace>` 是新增节点所在的命名空间。
5. 上述命令执行后,将显示新节点的 token。这是一个长字符串,在添加新节点时使用。
以上是获取 k8s 集群新增节点的 token 的步骤。请注意,这里假设您已经具有足够的管理员权限来执行这些命令。
阅读全文