栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

kubernetes核心组件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kubernetes核心组件

核心概念

在kubernetes集群中,有2种角色Master和Worker。
通常情况,由3台虚拟机组成Master,包含cm , scheduler, apiserver, etcd
其中,etcd 可以是外部的集群,或者安装在master节点上。
cm , scheduler 有 keepalived 的VIP 提供controlplane的服务,也就是说每次只有一组controlplane提供服务。 apiserver 由haproxy提供负载均衡服务。
worker上则运行实际的pod,按需决定要使用多少台。

Master

作用: 管理,计划,调度,监控节点

Kubernetes 里的 Master指的是集群控制节点,在每个Kubernetes集群里都需要有一个Master来负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给它,它负责具体的执行过程,我们后面执行的所有命令基本都是在Master上运行的。Master通常会占据一个独立的服务器(高可用部署建议用3台服务器),主要原因是它太重要了,是整个集群的“首脑”,如果它宕机或者不可用,那么对集群内容器应用的管理都将失效。

  • Kubernetes API Server(kube-apiserver): kubernets的主要管理组件,负责协调集群的所有操作。暴露kubernetes API供外部用户管理操作集群。同时,各种控制器会监控集群状态和必要的改变,以及与工作节点通讯。提供了HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程。

  • Kubernetes Controller Manager(kube-controller-manager):Kubernetes里所有资源对象的自动化控制中心,可以将其理解为资源对象的“大总管”。 持续监控各种组件的状态,努力使整个系统达到预期的状态。负责监控节点状态,并采取行动保持应用运行,通过kube-apiserver。每5秒检查一次节点状态,在节点被标注为不可达之前,会等待40s。节点被标注为不可达,会等待5分钟让节点恢复,如果没有,它会分配Pods到健康的节点。如果Pod是replicaset的,会监控replica sets状态,并确保达到预期的数量,Pods一直可用。如果Pods挂了,就创建一个新的。

  • Kubernetes Scheduler(kube-scheduler):负责资源调度(Pod调度)的进程,相当于公交公司的“调度室”。持续监控API server,意识到创建的Pod,没有指定节点,识别到正确的节点,启动新Pod,然后通讯返回给kube-apiserver,之后kube-apiserver更新信息在ETCD和传递信息到对应工作节点的kubelet,kubelet创建Pod,通知容器引擎部署应用镜像。一旦完成,kubelet更新状态到kube-apiserver,并更新ETCD。kube-apiserver是各种不同任务的中心。调度节点上的Pod,只决定Pod运行在哪个节点上。怎么决定? 1,过滤掉不符合要求的节点, 2,随机选择合适的节点

  • ETCD : 分布式可靠的键值存储数据库,它简单,安全,快速。在kubernetes中,存储Nodes,Pods,Configs,Secrets,Accounts,Roles,Bindings and Others。从kubectl get命令看到的信息都来自ETCD 服务器。一旦,ETCD中的数据被更新,就可以认为变更完成了。

Worker

除了Master,Kubernetes集群中的其他机器被称为Node,在较早的版本中也被称为Minion。与Master一样,Node可以是一台物理主机,也可以是一台虚拟机。Node是Kubernetes集群中的工作负载节点,每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上。

  • kubelet: 存在于每个工作节点,监听来自于kube-apiserver的指令,部署或者销毁节点上的容器。kube-apiserver定期抓取来自于kubelet监控节点和容器的状态报告,管理工作节点上的容器。但是运行在节点上的容器需要相互通讯?注册节点,创建pod,监控节点和pod

    负责管控容器,Kubelet会从Kubernetes API Server接收Pod的创建请求,启动和停止容器,监控容器运行状态并汇报给Kubernetes API Server。同时与Master密切协作,实现集群管理的基本功能。

  • kube-proxy: 负责工作节点之间的通讯。确保必要的规则允许容器相互之间运行实现Kubernetes Service的通信与负载均衡机制的重要组件。负责为Pod创建代理服务,Kubernetes Proxy会从Kubernetes API Server获取所有 的Service信息,并根据Service的信息创建代理服务,实现Service到Pod的请求路由和转发,从而实现Kubernetes层级的虚拟转发网络。寻找新的service,每次新的service一创建,就创建合适的规则在每个节点,转发服务流量到后端pod。一种方法是使用iptables规则。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677464.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号