k8s 新增节点(扩容节点)kubesphere
CentOS7.9 利⽤ KubeKey 扩容 Kubernetes v1.26 Worker 节点实战
kubesphere version: v3.3.2
kubernetes: version: v1.22.12
如何使⽤ KubeKey 将新增的 Worker 节点加⼊到已有的 Kubernetes 集群。
kk 要更换成阿里云镜像 :连接
k8s 删除节点 kubesphere -删除节点 : 连接
1- 基础配置
先配置 nat 网关,进行ssh 远程登录
新增加的 Worker 节点,操作系统基础配置与初始化安装部署时 Worker3 节点的配置保持⼀致。
0 ) 更改主机名字
hostnamectl set-hostname worker3
1 ) 免密操作 (需要在 master 1 上执行)
以下操作无特殊说明时需在所有新增节点上执行
在 Master-1 节点上将 SSH 公钥发送到新增加的 Worker3 节点
配置 /etc/hosts
192.168.1.229 worker6
然后执行
ssh-copy-id root@worker3
做完这一步要验证一下, ssh woker3 是否不需要用密码就能登录了。
2)时间同步:
3 ) nfs 安装:
装客户端,不然出错
yum install -y nfs-utils
装好后,测试一下
showmount -e 192.168.1.208
正产情况会列出nfs 挂载路径
4 ) 安装依赖
# 安装 Kubernetes 系统依赖包
yum install curl socat conntrack ebtables ipset ipvsadm -y
5) 挂载硬盘
阿里云ESC挂载数据盘(新增数据盘)新增磁盘,扩容 : 连接
6) 创建docker 数据目录
mkdir -p /mnt/data/docker
ln -s /mnt/data/docker /var/lib/docker
检查:
ll /var/lib
(7)关闭系统防火墙 (阿里云默认已经关闭了)
systemctl stop firewalld && systemctl disable firewalld
(8) 禁用 SELinux (阿里云默认禁用了)
# 使用 sed 修改配置文件,实现彻底的禁用
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 使用命令,实现临时禁用,这一步其实不做也行,KubeKey 会自动配置
setenforce 0
(9) 不要安装docker, kk 会自动安装。
2- 开始扩容:
只需要操作2步:
1# 修改 KubeKey 部署时使⽤的集群配置⽂件
2# 执⾏增加节点的命令
第一步: 修改 配置文件 (在master1 上执行)
config-sample.yaml
主要修改点:
spec.hosts 部分:增加新的 worker 节点的信息。
spec.roleGroups.worker 部分:增加新的 worker 节点的信息
第2步: 使用kubekey 增加节点 (在master1 上执行)
在增加节点之前,我们再确认⼀下当前集群的节点信息。
kubectl get nodes -o wide
接下来我们执⾏下⾯的命令,使⽤修改后的配置⽂件将新增的 Worker 节点加⼊集群。
export KKZONE=cn
./kk add nodes -f config-sample.yaml
注意: export KKZONE=cn ⼀定要先执⾏,否则会去 DockerHub 上拉取镜像
上⾯的命令执⾏后,⾸先 kk 会检查部署 Kubernetes 的依赖及其他详细要求。检查合格后,系统将提示您确认安装。输⼊ yes 并按 ENTER 继续部署。
部署完成需要⼤约 15 分钟左右,具体看⽹速和机器配置,本次部署完成耗时 7 分钟。
我再测试集群上遇到个问题,
error execution phase preflight: couldn't validate the identity of the API Server: could not find a JWS signature in the cluster-info ConfigMap for token ID "nx1pk7"
这个的原因是我的时间同步可能有问题, 因为我用的快照恢复的集群,然后请教了一下老A ,我重启了集群,然后再次运行kk add 就可以了。
"Unable to update cni config" err="no networks found in /etc/cni/net.d" : 连接
3-验证:
我们打开浏览器访问 master-1 节点的 IP 地址和端⼝ 30880,登陆 KubeSphere 管理控制台的登录⻚⾯。
进⼊集群管理界⾯,单击左侧「节点」菜单,点击「集群节点」查看 Kubernetes 集群可⽤节点的详细信息。
kubectl get nodes -o wide
⾄此,我们完成了在已有三个 Master 节点和⼀个 Worker 节点的 Kubernetes 集群中增加 2 个 Worker 节点的全部任务。
https://www.kdocs.cn/l/crujFg5FWeSM?f=201
3- 给节点进行打标签-调度
kubectl label nodes worker7 deploy.type=suno
扩容节点上只需做一步就可以了。
kubernetes 将容器指定到某些节点运行(node selector) : 连接
知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 (zsxq.com)
遇到问题:
Error from server (InternalError): Internal error occurred: Authorization error (user=kube-apiserver-kubelet-client, verb=get, resource=nodes, subresource=proxy) :连接
删除节点:
k8s 删除节点 kubesphere -删除节点 : 连接
不支持删除 Master 节点。
./kk delete node <nodeName> -f config-sample.yaml
实操:
./kk delete node worker3 -f config-sample.yaml
过2分钟 刷新 30880 woker3 消失
欢迎来撩 : 汇总all