1、修改hostname
有啥用:
在某些情况下需要将pod绑定至指定node节点,防止重启导致pod漂移到其他node节点。
例如:容器需要对外挂载
具体操作
1、通过以下命令驱逐节点上pod应用
kubectl drain 10.0.0.135 --delete-local-data --ignore-daemonsets
kubectl get node
NAME STATUS ROLES AGE VERSION
10.0.0.135 Ready,SchedulingDisabled <none> 24d v1.18.2
2、停止kubelete(每个节点)
systemctl stop kubelet
3、修改 kubelet.conf 配置文件中 hostname-override 参数
例如:将10.0.0.135修改未node-1
vim /opt/kubernetes/cfg/kubelet.conf
或者
vim /etc/kubernetes/kubelet
4、启动kubelete
systemctl start kubelet
kubectl get node
NAME STATUS ROLES AGE VERSION
node-1 Ready,SchedulingDisabled <none> 24d v1.18.2
5、取消驱逐
kubectl uncordon node-1
2、node节点缩容步骤
##节点选择 无k8s系统pod
1、不可调度
kubectl cordon 节点
然后用,查看
kubectl get node
STATUS会出现SchedulingDisabled不参与调度2
2、驱逐所有pod
kubectl drain 节点
#强制性驱逐
kubectl drain 节点 --ignore-daemonsets --force
最后就没有pod
kubectl get pod -A -o wide|grep node
3、删除node
kubectl delete node k8s-node4
4、查看无node信息
kubectl get node
重启kubectl服务
3、node节点扩容
通过kubectl delete 删除的主机,扩容为node
重启kubectl服务
kubectl --kubeconfig /etc/kubernetes/admin.kubeconfig label nodes node-ip kubernetes.io/role=node --overwrite
#查看是否添加成功
kubectl get node
#如果新增节点为不可调度
#设置为可调度
kubectl uncordon 节点
#测试,可以删除几个服务pod,会有pod调度到此节点
kubectl get pod -A -o wide|grep node