k8s 中 node坏了
刚才面试有人问我k8s中node坏了怎么解决?node上面设置不可调度先把上面的跑的pod驱逐啊,让他上面没有工作的资源node节点故障之污点pod一直出处于pending状态,无法调度到节点报错日志原因node节点 taint污点为unschedule策略补充污点的三种类型NoSchedule :一定不能被调度。PreferNoSchedule:尽量不要调度。NoExecute:不仅不会调度,还
·
刚才面试有人问我k8s中node坏了怎么解决?
- node上面设置不可调度
先把上面的跑的pod驱逐啊,让他上面没有工作的资源
node节点故障之污点
pod一直出处于pending状态,无法调度到节点
报错日志
原因
node节点 taint污点为unschedule策略
补充
污点的三种类型
NoSchedule :一定不能被调度。
PreferNoSchedule:尽量不要调度。
NoExecute:不仅不会调度,还会驱逐Node上已有的Pod。
命令
查看污点: kubectl describe node node_id | grep Taints
对 Node 上设置污点:
kubectl taint nodes node1 key=value1:NoSchedule
kubectl taint nodes node1 key=value1:NoExecute
将名为 ek8s-node-1 的 node 设置为不可用,并且重新调度该 node 上所有允许的 pods
$ kubectl cordon ek8s-node-1
$ kubectl drain ek8s-node-1 --ignore-daemonsets --delete-local-data --force
$ kubectl get nodes
2.pod故障
kubectl describe po (你的pod名)
查看原因
kubectl logs 常用于将容器中的日志导出。命令格式:
kubectl logs [-f] [-p] POD [-c CONTAINER]
-c, --container="": 容器名
-f, --follow[=false]: 指定是否持续输出日志
--interactive[=true]: 如果为true,当需要时提示用户进行输入。默认为true
--limit-bytes=0: 输出日志的最大字节数。默认无限制
-p, --previous[=false]: 如果为true,输出pod中曾经运行过,但目前已终止的容器的日志
--since=0: 仅返回相对时间范围,如5s、2m或3h,之内的日志。默认返回所有日志。只能同时使用since和since-time中的一种
--since-time="": 仅返回指定时间(RFC3339格式)之后的日志。默认返回所有日志。只能同时使用since和since-time中的一种
--tail=-1: 要显示的最新的日志条数。默认为-1,显示所有的日志
--timestamps[=false]: 在日志中包含时间戳
更多推荐
已为社区贡献14条内容
所有评论(0)