K8S基本概念--《K8S权威指南》

1.Master
(1)指集群控制节点,每个集群中至少有一个Master负责集群的管理和控制。K8S集群中所有的控制命令都发给Master节点,它负责具体的执行过程。Master若不可用,对于集群的管理都将失效。
(2)Master节点上运行的关键进程
kube-apiserver:提供HTTP Rest接口的关键服务进程,是K8S里所有资源的增删改查的操作的唯一入口,也是集群控制的入口进程。
kube-controller-manager:K8S里所有资源对象的自动化控制中心。
kube-scheduler:负责资源调度(Pod调度)的进程。
(3)etcd数据库:存储Master节点上所有资源对象的数据。
2.Node
(1)除了Master外,集群中其他机器被称为Node。Node作为K8S集群中的工作负载节点,每个Node会被Master分配工作负载,当Node宕机时,上面的工作负载会被Master自动转移到其他Node。
(2)Node节点上运行的关键进程
kubelet:负责Pod对应容器的创建、启停等任务,同时与Master合作,实现集群管理的基本功能。
kube-proxy:实现K8S Service的通信与负载均衡机制的重要组件。
Docker Engine:Docker引擎,负责本机的容器创建和管理工作。
(3)Node可以在运行期间动态增加到K8S集群中,但前提是节点上已经正确安装、配置和启动了上面的进程。默认Kubelet会向Master注册自己,这也是K8S推荐的Node管理方式。一旦Node被纳入集群管理范围,Kubelet进程就会定时向Master汇报自身情况,例如操作系统、Docker版本、CPU和内存,当前有哪些Pod在运行,这样Master就能获取每个Pod的资源使用情况,实现高效均衡的资源调度策略。同时若Node在指定信息内不向Master上报信息,就会被Master判定为“失联”,此时Node的状态就会被标记为“Not Ready”(不可用)。随后Master会触发“工作负载转移”。
$kubectl get nodes 查看集群中有多少node
$kubectl describe nodes 查看Node的详细信息
3.Pod
(1)Pod是K8S为了解决两个难题设计出来的。1.将一组容器作为一个单元时,不能对“整体”进行判断,此时引入业务无关且不易死亡的Pause容器作为Pod的根容器,以它的状态代表整个容器组的状态。2.Pod之间的多个业务容器共享Pause容器的IP,共享Pause容器挂载的Volume。这样能简化业务之间的通信问题,也解决了他们之间的文件共享。
(2)K8S为每个Pod都分配了唯一的IP地址,称为Pod IP,容器中的多个容器共享Pod IP.(K8S要求底层网络支持集群内任意两个Pod之间的TCP/IP直接通信,这是采用虚拟二层技术实现,如:Flannel、OpenvSwitch)。总之,在K8S集群中,一个Pod里容器能直接和另外主机的Pod进行通信。
(3)Pod分为两种类型:普通Pod和静态Pod(Static Pod),静态Pod很特殊,不被存放在Kubernetes的Etcd存储里,而是被存放在某个Node的文件上,并且后续只在此Node上启动、运行。而且普通的Pod一旦被创建,就会被放到etcd存储,随后会被Master调度到某个Node上进行绑定(Binding),随后该Pod被对应的Node上的kubelet进程实例化成一组相关的Docker容器并启动。
调度是指:如果Pod里的某个容器停止时,K8S会自动检测到这个问题并重新启动这个Pod(即重启Pod里所有容器),如果Pod所在的Node宕机,就会将这个Node上所有的Pod调度到其他节点。
(4)K8S所有资源都能用YAML或JSON格式的文件来定义或描述

posted @   不太甜的橘子  阅读(729)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示