一、添加Node节点
1、配置主机名
[root@localhost ~]# hostnamectl set-hostname k8s-node4 --static
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
2、关闭防火墙和selinux
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
[root@k8s-node4 ~]# systemctl stop firewalld.service
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
[root@k8s-node4 ~]# systemctl disable firewalld.service
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
[root@k8s-node4 ~]# setenforce 0
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
[root@k8s-node4 ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
4、关闭swap分区
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
[root@k8s-node4 ~]# swapoff -a
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
[root@k8s-node4 ~]# sed -i '/swap/s/^/#/g' /etc/fstab
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
5、配置内核参数和优化
文章源自小柒网-https://www.yangxingzhen.cn/9673.html
[root@k8s-node4 ~]# cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
[root@k8s-node4 ~]# sysctl --system
6、安装ipset、ipvsadm
[root@k8s-node4 ~]# yum -y install conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
[root@k8s-node4 ~]# cat >/etc/modules-load.d/ipvs.conf <<EOF
# Load IPVS at boot
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
nf_conntrack_ipv4
EOF
[root@k8s-node4 ~]# systemctl enable --now systemd-modules-load.service
7、安装containerd
1)安装依赖软件包
[root@k8s-node4 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
2)添加阿里Docker源
[root@k8s-node4 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3)添加overlay和netfilter模块
[root@k8s-node4 ~]# cat >>/etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
[root@k8s-node4 ~]# modprobe overlay
[root@k8s-node4 ~]# modprobe br_netfilter
4)安装Containerd,这里安装最新版本
[root@k8s-node4 ~]# yum -y install containerd.io
5)创建Containerd的配置文件
[root@k8s-node4 ~]# mkdir -p /etc/containerd
[root@k8s-node4 ~]# containerd config default > /etc/containerd/config.toml
[root@k8s-node4 ~]# sed -i '/SystemdCgroup/s/false/true/g' /etc/containerd/config.toml
[root@k8s-node4 ~]# sed -i '/sandbox_image/s/registry.k8s.io/registry.aliyuncs.com\/google_containers/g' /etc/containerd/config.toml
6)启动containerd
[root@k8s-node4 ~]# systemctl enable containerd
[root@k8s-node4 ~]# systemctl start containerd
8、安装kubectl、kubelet、kubeadm
[root@k8s-node4 ~]# cat >/etc/yum.repos.d/kubernetes.repo <<-EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
[root@k8s-node4 ~]# yum -y install kubectl-1.27.6 kubelet-1.27.6 kubeadm-1.27.6
[root@k8s-node4 ~]# systemctl enable kubelet
[root@k8s-node4 ~]# systemctl start kubelet
9、添加Node节点加入集群
[root@k8s-node4 ~]# kubeadm join 192.168.2.195:6443 --token l3alth.2b93rd1qfqf2tuys --discovery-token-ca-cert-hash sha256:c74c5f854db06b67d3368c91568c6bfe56a73e2c3a12d77d30fcc478b52e319b
10、查看集群节点状态
[root@k8s-master1 ~]# kubectl get nodes
二、移除Node节点
如果需要在k8s集群中删除节点,首先需要在master节点上删除该节点的相关数据,再删除该节点,接着在该节点上进行reset操作,最后删除相关文件。
1、在master上查看所有node节点
[root@k8s-master1 ~]# kubectl get nodes
2、将工作负载迁移到其他节点
# 在主节点上驱逐该node节点上的Pod
[root@k8s-master1 ~]# kubectl drain k8s-node3 --delete-emptydir-data --force --ignore-daemonsets
3、在主节点上删除该node节点
[root@k8s-master1 ~]# kubectl delete node k8s-node3
node "k8s-node3" deleted
4、查看集群信息
[root@k8s-master1 ~]# kubectl get nodes
# 从上图结果可知k8s-node3节点已经被删除。
5、在k8s-node3节点上清空集群信息
# 重置k8s
[root@k8s-node3 ~]# kubeadm reset
# 删除残留的文件
[root@k8s-node3 ~]# rm -rf /etc/kubernetes/*
# 清除iptables或者ipvs的配置
[root@k8s-node3 ~]# iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
[root@k8s-node3 ~]# ipvsadm --clear
# 如果删除的是master节点,还需要删除用户目录下的.kube文件
[root@k8s-node3 ~]# rm -rf ~/.kube
三、重新加入K8s集群
1、重启kubelet
[root@k8s-node3 ~]# systemctl restart kubelet
2、在主节点上生成一个证书
[root@k8s-master1 ~]# kubeadm token create --print-join-command
# 此命令可以生成一个永久性的token
[root@k8s-master1 ~]# kubeadm token create --print-join-command --ttl=0
3、在node节点上执行token命令
[root@k8s-node3 ~]# kubeadm join 192.168.2.195:6443 --token 9pczgv.0grfooog66ynm8xh --discovery-token-ca-cert-hash sha256:c74c5f8512d77d30fcc478b52e319b
4、在主节点上查看node检查是否添加成功
[root@k8s-master1 ~]# kubectl get nodes
至此,k8s-node3重新加入集群成功。
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
评论