节点加入k8s 集群的步骤

  • 使用kubeadm 初始化集群成功后会返回join命令,里面包含token, discovery-token-ca-cert-hash 等参数

token的过期时间是24h
certrificate-key 过期时间是2小时

  • 如果不记得,可以执行下面的命令获取
    1.如果没有超过24h,用下面的命令获取(主要查看是否过期)
kubeadm token list 

2.如果过期,那用重新创建token

kubeadm token create

3.如果没有discovery-token-ca-cert-hash值,通过以下命令获取

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

在node节点输入join命令:

kubeadm join 10.26.12.152:6443 --token n5l04n.f1bib0dhbd2ca69i         --discovery-token-ca-cert-hash sha256:7cd067dd84ed97d4863cd8ee4af1e7adefa20657c6e599251c2148838a9512b5

containerd安装的默认禁用
使用安装包安装的containerd会默认禁用作为容器的运行时的功能,即安装包安装containerd后默认禁用containerd作为容器运行时
这会引起K8S报错,因为没有容器运行时可以用
开启方法:

vim /etc/containerd/config.toml
# 到这个文件中把disabled_plugins=["cri"] 改成 disabled_plugins=[]
systemctl restart containerd
# 重启后才能生效

再运行join命令就没问题了。

[root@whdcinthe004 ~]# kubectl get node
NAME                    STATUS   ROLES           AGE     VERSION
whdcinthe001.cn.infra   Ready    <none>          2m34s   v1.28.7
whdcinthe004.cn.infra   Ready    control-plane   47h     v1.28.7

给node打role标签

kubectl label nodes whdcinthe001.cn.infra kubernetes.io/role=ingress-nginx

最后面的=号表示在原来ROLES基础上再增加一个,-号就表示删除某个ROLES
删除role标签

kubectl label nodes whdcinthe001.cn.infra kubernetes.io/role-
posted @ 2024-03-13 15:15  希望能摸鱼的凛耶酱  阅读(99)  评论(0)    收藏  举报