K8S 核心原理分析,你学到了什么?( 二 )


 

K8S 核心原理分析,你学到了什么?

文章插图
 
3.3 自动伸缩K8S可以通过指标检查工作负载的资源需求 , 例如CPU利用率、响应时长、内存利用率、或者其他 , 从而判断是否需要执行伸缩 , 垂直维度可以是更多的资源分配 , 水平维度可以是更多的集群部署;
 
K8S 核心原理分析,你学到了什么?

文章插图
 
K8S可以自动伸缩 , 也具备自动修复的能力 , 当节点故障或者应用服务异常时 , 会被检查到 , 可能会进行节点迁移或者重启;
四、应用案例1、服务部署在此前的实践案例中 , 用CLI命令行和脚本文件的方式 , 完成的部署动作 , 而在整个流程中涉及集群的多个组件协作 , 多次的通信和调度;
kubectl create -f pod.yaml 
K8S 核心原理分析,你学到了什么?

文章插图
 
2、交互流程 
K8S 核心原理分析,你学到了什么?

文章插图
 
【1】CLI命令行和UI界面 , 都是通过APIserver接口 , 与集群内部组件交互 , 比如上述的Pod部署操作;
【2】在APIserver收到请求之后 , 会将序列化状态的对象写入到etcd中完成存储操作;
【3】Scheduler调度器通过监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的Pod;
【4】在集群中找到一个Pod的所有可调度节点 , 对这些可调度节点打分 , 选出其中得分最高的节点来运行Pod , 然后调度器将这个调度决定通知给APIserver;
【5】APIserver完成信息存储后 , 然后通知相应节点的Kubelet;
【6】Kubelet是基于PodSpec来工作的 , 确保这些PodSpec中描述的容器处于运行状态且运行状况良好 , 每个PodSpec是一个描述Pod的YAML或JSON对象;
【7】Pod是可以在Kubernetes中创建和管理的、最小的可部署的计算单元 , 包括一个或多个容器;
五、参考源码文档仓库:https://gitee.com/cicadasmile/butte-JAVA-note脚本仓库:https://gitee.com/cicadasmile/butte-auto-parent 

【K8S 核心原理分析,你学到了什么?】


推荐阅读