龙空技术网

kubernetes基础知识之驱逐节点

王啸皓月山巅 68

前言:

而今你们对“kubernetes删除node”大体比较重视,你们都想要了解一些“kubernetes删除node”的相关内容。那么小编同时在网络上搜集了一些对于“kubernetes删除node””的相关资讯,希望朋友们能喜欢,咱们一起来了解一下吧!

kubernetes中设置master节点为不可调度:

kubectl cordon $node_ip

kubernetes中驱逐故障节点上的pod:

kubectl drain $node_ip --ignore-daemonsets --delete-local-data(删除本地数据需要谨慎操作)

遇到不能驱逐的,采取强制驱逐:

kubectl get pod -A - o wide | grep -w ${workernode_ip} >./podlist.txt

while read ns pod; do kubectl delete pod $pod $ns; done <./podlist.txt

deployment用来部署无状态的服务,statefulset用来部署有状态的服务。

有状态的服务管理的是持久化数据,无状态的服务只维护有限的状态信息。

无状态的服务比如web应用,有状态的服务比如分布式数据库。

无状态的业务不会在本地存储持久化数据。

在pod的spec里面指定nameNode,可以绑定pod到worker node节点。

绑定节点的pod不可漂移,当服务器故障之后,一般会处于pending状态,请求不会转发到这个状态的pod上。

~~~我是华丽的分隔线~~~

查看kubernetes pod的镜像版本:

kubectl get pod -n $namespace -o yaml | grep -i images

~~~我是华丽的分隔线~~~

镜像的导出和导入:

导出:

docker save 镜像:标签 -o /tmp/镜像名称.tar

远程拷贝镜像:

scp -P22 镜像名 远程IP:路径

导入docker镜像:

docker load -i 镜像名

~~~我是华丽的分隔线~~~

清除pagecache和slab分配器中的缓存对象:

echo 3> /proc/sys/vm/drop_caches

清除pagecache:

echo 1> /proc/sys/vm/drop_caches

~~~我是华丽的分隔线~~~

docker启动Django应用:

docker run -d -p 8002:8002 --name myblog -e MYSQL_HOST=192.168.116.168 -e MYSQL_USER=root -e MYSQL_PASSWD=123456 myblog:v1

进入docker 容器:

docker exec -it myblog bash

导入数据:

python3 manage.py makemigrations

python3 manage.py migrate

创建超级用户:

docker exec -ti myblog python3 manage.py createsuperuser

收集静态文件:

docker exec -ti myblog python3 manage.py collectstatic

~~~我是华丽的分隔线~~~

kubernetes对pod副本数减少,进行缩容:

kubectl get deploy -A> /tmp/deploy.txt

把所有pod副本数调整成1:

while read ns deploy ready utd av age; do kubectl scale deploy $deploy --replicas=1 -n $ns;done < /tmp/deploy.txt

恢复pod副本数:

while read ns deploy ready utd av age; do kubectl scale deploy $deploy --replicas=$av -n $ns;done < /tmp/deploy.txt

~~~我是华丽的分隔线~~~

设置node节点为不可调度:

kubectl cordon ${node_ip}

驱逐node节点上的pod:

kubectl drain ${node_ip}

kubectl drain ${node_ip} --ignore-daemonsets

kubectl drain ${node_ip} --ignore-daemonsets --delete-local-data

强制删除pod:

kubectl delete pod -n $namespace $pod_name --force --grace-period=0

使用循环强制驱逐pod:

kubectl get pod -A -o wide | grep -w ${node_ip}> /tmp/podlist.txt

while read ns pod; do kubectl delete pod $pod $ns;done < /tmp/podlist.txt

~~~我是华丽的分隔线~~~

kubernetes设置节点不可调度pod:

kubectl cordon ${node_ip}

kubernetes设置恢复节点调度:

kubectl uncordon ${node_ip}

环球影城

鼓励的话语:四海之内皆兄弟!

标签: #kubernetes删除node