专业做蛋糕的网站,每天一篇好文章网站,公司静态网站模板,佛山专业做淘宝网站推广目录 一#xff0c;需求描述
二、集群缩容-节点下线
1#xff0c;节点下线案例说明
2#xff0c;查看现有节点
3#xff0c;查看所有名称空间下的pod
编辑4#xff0c;驱逐下线节点的pod
5#xff0c;驱逐后再次查看pod
6#xff0c;驱逐pod后再次查看节点信息…目录 一需求描述
二、集群缩容-节点下线
1节点下线案例说明
2查看现有节点
3查看所有名称空间下的pod
编辑4驱逐下线节点的pod
5驱逐后再次查看pod
6驱逐pod后再次查看节点信息
7给要下线的节点打上污点
8再次查看要下线节点的pod
9下线节点重置
9.1.需要到要下线的节点中执行“重置”命令重置下线节点
9.2. 删除要下线节点的cni网络目录
9.3.清空路由规则
9.4.查看打印规则
10删除掉节点
三、集群扩群-节点上线
1给上线节点安装必要组件
2master节点创建token
3master查看刚刚创建的token
4新节点使用token加入集群
5验证是否成功 一需求描述 生产环境中对于k8s已有环境进行扩容和缩容是比较常见的操作比如现有k8s集群资源不足就需要扩容节点就是将物理机配置加入k8s集群node 或者说当前k8s集群工作不饱和有大量空闲的机器资源闲置浪费严重所以需要缩容就是将物理机配置退出k8s集群node 二、集群缩容-节点下线 我们从总体架构中第一天就让大家背下来了不知道的回去背下来知道k8s集群监控一个节点的cpu、内存、磁盘空间、文件系统inode等资源是依靠kubelet组件 当这些资源中的一个或者多个达到特定的消耗水平消耗到一定程度了kubelet就会主动将节点上的一个或者多个pod强制进行“驱逐”以防止当前node节点资源无法正常分配而引发内存溢出OOM
1节点下线案例说明
我们需要先把要下线的node节点中的pod驱逐模拟下线节点node节点可能因为硬件故障或者其他原因有下线的需求
2查看现有节点
[rootk8s1 k8s-yaml]# kubectl get nodes 3查看所有名称空间下的pod
[rootk8s1 k8s-yaml]# kubectl get pods -o wide -A
4驱逐下线节点的pod
驱逐一个节点的所有pod但是需要排除daemonset资源创建的pod因为dadmonset资源是根据节点数量来创建pod的若不排除则会驱逐不了
[rootk8s1 k8s-yaml]# kubectl drain k8s2 --ignore-daemonsets 参数介绍 --ignore-daemonsets #daemonset资源不能被驱逐需要排除加这个选项参数排除 --delete-emptydir-data #如果无法驱逐成功再加这个参数 5驱逐后再次查看pod
驱逐pod后我们会发现k8s233还存在两个pod一个是flannel组件还有一个是kube-proxy代理pod我们不用管这两个没有被驱逐的pod
[rootk8s1 k8s-yaml]# kubectl get pods -o wide -A | grep k8s26驱逐pod后再次查看节点信息
[rootk8s1 k8s-yaml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s1 Ready control-plane,master 13d v1.23.17
k8s2 Ready,SchedulingDisabled none 13d v1.23.177给要下线的节点打上污点
因为要将节点下线避免在下线过程中有人往这个节点中创建资源所以保守起见给它设置个污点双保险
kubectl taint node k8s2 k8soslee:NoExecute
8再次查看要下线节点的pod
这个时候会发现仅剩下kube-proxy了你就可以将节点直接下线了
[rootk8s1 k8s-yaml]# kubectl get pods -o wide -A | grep k8s2 9下线节点重置
9.1.需要到要下线的节点中执行“重置”命令重置下线节点
[rootk8s2 ~]# kubeadm reset -f
9.2. 删除要下线节点的cni网络目录
[rootk8s2 ~]# rm -rf /etc/cni/net.d
9.3.清空路由规则
[rootk8s2 ~]# iptables -F9.4.查看打印规则
iptables-save
10删除掉节点
注意master节点执行
[rootk8s1 k8s-yaml]# kubectl delete nodes k8s2
node k8s2 deleted# 验证
[rootk8s1 k8s-yaml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s1 Ready control-plane,master 13d v1.23.17温馨提示 1当我们直接下线一个节点的时候该节点的pod将不会立刻被检测出来故障大概5分钟左右才能将损坏的pod在其他节点中创建但是再次之前会优先发现该的状态为“Notready” 2综上所述我们生产环境中应该监控nodes的状态当然pods重启次数也需要关注哦所以说要报账pod业务正常运行必须监控nodes的状态 三、集群扩群-节点上线
1给上线节点安装必要组件
可参考3.2.k8s搭建-kubeadm_为docker做linux内核转发-CSDN博客
2master节点创建token
kubeadm token create --print-join-command
参数说明 --print-join-command #打进加入token的命令 --ttl 0 #token的过期时间0代表无限期 ################################# #token的名称规则 [a-z0-9]{6})\\.([a-z0-9]{16} 3master查看刚刚创建的token
kubeadm token list
4新节点使用token加入集群
在新节点执行
kubeadm join 192.168.11.11:6443 --token 1kum3s.20vvoag1zjp88a7e --discovery-token-ca-cert-hash sha256:40e957a9fe26974447bd43a8e0d56495fd0c2642a2e93bc6b9c042e3baead7a5
5验证是否成功
[rootk8s1 k8s-yaml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s1 Ready control-plane,master 13d v1.23.17
k8s2 Ready none 2m15s v1.23.17