添加 Node 节点
配置主机名
1
| hostnamectl set-hostname node03
|
关闭防火墙和 selinux
关闭 swap 分区
配置内核参数
1
2
3
4
5
| 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
|
安装 ipset 和 ipvsadm
1
| yum -y install conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
|
1
2
3
4
5
6
7
8
| cat >/etc/modules-load.d/ipvs.conf <<EOF
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
nf_conntrack_ipv4
EOF
|
systemctl enable --now systemd-modules-load.service
安装 containerd
1
| yum -y install yum-utils device-mapper-persistent-data lvm2
|
1
| yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
1
2
3
4
| cat >>/etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
|
1
2
| modprobe overlay
modprobe br_netfilter
|
1
| yum -y install containerd.io
|
1
2
3
4
5
6
7
| mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i '/SystemdCgroup/s/false/true/g' /etc/containerd/config.toml
sed -i '/sandbox_image/s/registry.k8s.io/registry.aliyuncs.com\/google_containers/g' /etc/containerd/config.toml
|
1
| systemctl enable --now containerd
|
安装 kubectl、kubelet、kubeadm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| 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
|
1
| yum -y install kubectl-1.27.6 kubelet-1.27.6 kubeadm-1.27.6
|
1
| systemctl enable --now kubelet
|
添加 Node 节点到集群
1
| kubeadm join 192.168.2.195:6443 --token l3alth.2b93rd1qfqf2tuys --discovery-token-ca-cert-hash sha256:c74c5f854db06b67d3368c91568c6bfe56a73e2c3a12d77d30fcc478b52e319b
|
移除 Node 节点
如果需要在k8s集群中删除节点,首先需要在master节点上删除该节点的相关数据,再删除该节点,接着在该节点上进行reset操作,最后删除相关文件
在 master 节点上查看所有 node 节点
把工作负载迁移到其他节点
1
2
| # 在主节点上驱逐该 node 节点上的 pod
kubectl drain k8s-node3 --delete-emptydir-data --force --ignore-daemonsets
|
在主节点上删除该 node 节点
1
| kubectl delete node k8s-node3
|
在主节点上查看集群信息
在该 Node 节点上清空集群信息
删除残留的文件
1
| rm -rf /etc/kubernetes/*
|
清除 iptables 或者 ipvs 的配置
1
2
3
| iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
ipvsadm --clear
|
重新加入 k8s 集群
该 node 节点重启 kubelet
1
| systemctl restart kubelet
|
在主节点上生成一个证书
1
2
| # 此命令可以生成一个永久性的 token
kubeadm token create --print-join-command
|
在 node 节点上执行 token 命令
1
| kubeadm join 192.168.2.195:6443 --token 9pczgv.0grfooog66ynm8xh --discovery-token-ca-cert-hash sha256:c74c5f8512d77d30fcc478b52e319b
|