1、kubeadm安装
参考文章: 3、kubeadm安装 https://www.cnblogs.com/ygbh/p/17221317.html
2、将node节点加入master集群
kubeadm join 192.168.10.26:6443 --token chsuee.cxw3s9mdyodk8ehk \ --discovery-token-ca-cert-hash sha256:5cd4bd62fa2c5bd83eb50c40dd941d3fdcd31edc9b7a169d3442ee2da6363218 [root@master1 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master1 NotReady control-plane 5m15s v1.26.2 master2 NotReady <none> 3m50s v1.26.2 master3 NotReady <none> 3m44s v1.26.2
3、CNI介绍
CNI是Container Network Interface的是一个标准的,通用的接口。CNI的工作是从容器管理系统 处获取运行时信息,包括network namespace的路径,容器ID以及network interface name,再从容 器网络的配置文件中加载网络配置信息,再将这些信息传递给对应的插件,由插件进行具体的网络配置工作, 并将配置的结果再返回到容器管理系统中。 CNI插件是可执行文件,会被kubelet调用。 启动参数 --network-plugin 指定柔情网络的接口类型 cni --cni-conf-dir 指定networkconfig配置,默认路径是:/etc/cni/net.d, --cni-bin-dir 指定plugin可执行文件路径,默认路径是:/opt/cni/bin; 它只在两种场景中使用:创建容器和删除容器
4、检查集群DNS是否解析正常
[root@master1 ~]# kubectl run curl --image=radial/busyboxplus:curl -it If you don't see a command prompt, try pressing enter. [ root@curl:/ ]$ nslookup kubernetes.default Server: 10.96.0.10 Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local Name: kubernetes.default Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local # 显示这样子,表示DNS解析正常
5、集群的重置
如果因为特殊因素导致,集群创建失败,我们可以通过两条命令实现环境的快速还原
5.1、Master重置清空方法
# Master节点重置 kubeadm reset; rm -rf /etc/kubernetes; rm -rf ~/.kube ; rm -rf /etc/cni/; # 清除容器的网络接口
systemctl restart containerd.service
5.2、Node重置清空方法
rm -rf /etc/cni/net.d; kubeadm reset; # 需要重启一下这个服务,避免网络插件有问题 systemctl restart containerd.service
6、Node加入集群token过期处理方法
6.1、查看当前token信息
kubeadm token list
6.2、手动生成token
# 生成token
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
# 使用token加入集群 kubeadm join 192.168.10.26:6443 --token 0cz1ut.m76ulyo3r3mc2c4g --discovery-token-ca-cert-hash sha256:【填写生成的token值】
6.3、自动生成加入集群的命令
kubeadm token create --print-join-command
7、Node节点从集群中删除
7.1、master执行-移除节点
kubectl drain node2 --delete-local-data --force --ignore-daemonsets
kubectl delete node node2
7.2、node节点执行-移除历史记录文件
kubeadm reset systemctl stop kubelet docker rm -rf /etc/kubernetes/
8、错误处理
8.1、NotReady
Mar 14 20:45:20 master1 kubelet[17332]: E0314 20:45:20.965419 17332 kubelet.go:2475] "Container runtime network not ready"
networkReady="NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized" # 原因:没有安装网络插件如:需要安装flannel、calico等 # 解决方法: kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml # 如果重启一下这个服务 systemctl restart containerd.service
8.2、cni0和flannel.1网段不一致的问题
报错:failed (add): failed to delegate add: failed to set bridge 现象:容器一直在创建中,无法创建,检查是节点flannel网关的问题 解除方法: ifconfig cni0 down ip link delete cni0 # 系统会自动创建 注意:cni0和flannel.1网口必须是同一个网段,否则网关有问题 cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450 inet 10.244.3.1 netmask 255.255.255.0 broadcast 10.244.3.255 flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450 inet 10.244.3.0 netmask 255.255.255.255 broadcast 0.0.0.0标签:Node,kubernetes,etc,部署,--,token,kubeadm,cni From: https://www.cnblogs.com/ygbh/p/17221415.html