K8S集群Token过期处理方法以及Kubectl命令无法使用的问题解决

K8S集群Token过期处理方法以及Kubectl命令无法使用的问题解决

1.Token过期处理方法

使用Kubeadm方式部署的K8S集群,在初始化的时候生成的Token的有效期为1天,当过期之后Token就无法使用了,也就意味着,在Node节点执行kubeadm join命令加入K8S集群时就会失败,可以通过下面的方法重新生成Token。

1)创建Token

1.通过下面的命令可以创建一个不过期的token
# kubeadm token create --ttl 0
W0322 22:42:54.687441   18368 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
p4rynu.uj4jaxnzk2s0y9vi						#这个值就是Token

2.查看可用的token列表
# kubeadm token list
TOKEN                     TTL         EXPIRES   USAGES                   DESCRIPTION                                                EXTRA GROUPS
p4rynu.uj4jaxnzk2s0y9vi   <forever>   <never>   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token

2)获取集群CA证书的HASH值

Node节点加入集群时不光要指定Token值还需要指定CA证书的HASH值,HASH值是永不过期的。

# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outformder 2>/dev/null|openssl dgst -sha256 -hex | sed 's/^.* //'
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

3)将Node节点加入到K8S集群中

# kubeadm join --token p4rynu.uj4jaxnzk2s0y9vi 192.168.20.10:6443 --discovery-token-ca-cert-hash sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

2.Kubectl命令无法使用的处理方法

不管是Node节点还是Master节点部署完成后,都是无法使用kubectl命令的,执行kubectl命令时会报错权限的问题,需要手动进行配置。

报错如下:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

解决方法:

# mkdir $HOME/.kube
# cp -irf /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/125802856