5、Node部署

Kubernetes学习目录

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

9、配置crictl

9.1、背景

因为docker查看不了k8s运行镜像的状态,所以要使用crictl查询

9.2、配置

cat >/etc/crictl.yaml<<'EOF'
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: false
EOF

9.3、测试

[root@node1 ~]# crictl pods
POD ID              CREATED             STATE               NAME                                NAMESPACE           ATTEMPT             RUNTIME
98c512f3fb52d       49 minutes ago      Ready               nginx-deployment-5b47ccdd5c-b9pnc   default             0                   (default)
548537fb74473       15 hours ago        Ready               kube-flannel-ds-z4bgg               kube-system         0                   (default)
6d84a7ce7d3d5       15 hours ago        Ready               kube-proxy-t7n6h                    kube-system         0                   (default)

 

posted @ 2023-03-16 10:34  小粉优化大师  阅读(127)  评论(0编辑  收藏  举报