[k8s]k8s的控制层kubelet+docker配合调度机制(k8架构)

Posted 毛台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[k8s]k8s的控制层kubelet+docker配合调度机制(k8架构)相关的知识,希望对你有一定的参考价值。

意外停掉一台node的kubelet,发现调度有问题,研究了下调度的细节

k8s架构

技术分享图片

控制层- kubelet(配合节点docker工作)

技术分享图片

数据层- kube-proxy

技术分享图片
逻辑图:
技术分享图片

测试pod调度

停掉n1的kubelet,等几min后
kubectl get node 显示n1 not ready
在等几min后
kubectl get no -o wide AGE字段显示unkown.
在等几min.
发现开始调度了,调度结果
技术分享图片
注: 调度完成后即使挂掉的n1起来,pod也不会重新回归了.

在跑道n1上去看,以前老的容器依旧running,待下次启动kubelet后,这些容器立马被kubelet干掉.
这是n1启动后kubelet的日志
技术分享图片

出现的问题: kubelet和docker不好好配合,导致kubelet挂掉后无法调度.没查清楚什么问题

技术分享图片

难道是内核和docker兼容问题? 不得而知,已上尝试调度好几次,有一次出现这个问题
参考:
https://docs.docker.com/engine/userguide/storagedriver/selectadriver/#docker-ee-and-cs-engine
http://blog.csdn.net/styshoo/article/details/60715942

技术分享图片
为了给Docker配置overlay存储驱动,你的Docker host必须运行在Linux kernel3.18版本之上,而且加载了overlay内核驱动。对于overlay2驱动,kernel版本必须在4.0或以上。OverlayFS可以运行在大多数Linux文件系统之上。不过,现在最建议在生产环境中使用ext4。

以上是关于[k8s]k8s的控制层kubelet+docker配合调度机制(k8架构)的主要内容,如果未能解决你的问题,请参考以下文章

K8s进阶

K8s进阶

K8s进阶

k8s医生k8s集群故障排查 – 关于kubelet 的NotReady故障

k8s安装kubelet

从 Rancher 目录安装 k8s 后 kubelet 不健康