Kubernetes新增和移除节点

小柒助手 Kubernetes评论4291字数 3705阅读12分21秒阅读模式

一、添加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重新加入集群成功。

若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!

继续阅读
历史上的今天
11月
8
Wechat
微信扫一扫,加我!
weinxin
我的微信
微信公众号
微信扫一扫,关注我!
weinxin
我的公众号
小柒助手
  • 本文由 小柒助手 发表于 2023年11月8日18:02:33
  • 声明:本站所有文章,如无特殊说明或标注,本站文章均为原创。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。转载请务必保留本文链接:https://www.yangxingzhen.cn/9673.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

拖动滑块以完成验证