kubernetes组件

kubernetes组件,第1张

kubernetes组件

提示:以下内容均为学习过程中的个人笔记,有用自取,无用勿喷,如有错误欢迎指正

1. k8s前身

Borg 是谷歌内部的大规模集群管理系统,负责对谷歌内部很多核心服务的调度和管理。Borg 的目的是让用户能够不必 *** 心资源管理的问题,让他们专注于自己的核心业务,并且做到跨多个数据中心的资源利用率最大化

Borgmaster:是整个集群的大脑,负责维护整个集群的状态,并将数据持久化到Paxos存储中;由于共识算法主节点数为大于1的奇数个,若是3个则只能坏一个,5个只能坏2个

#Paxos为 键值对数据库,保存了整个集群的配置Scheduer负责任务的调度,根据应用的特点将其调度到具体的机器上去Borglet负责真正运行任务(在容器中)borgcfg是Borg的命令行工具,用于跟Borg系统交互,一般通过一个配置文件来提交任务

2. kubernetes组件

Etcd:高可行强一致性的可信赖的分布式键值存储服务,存储集群中所有数据,V2版接口存储在内存中,目前使用V3接口,将数据存储在硬盘中

扩展:Raft 共识算法,每一个 Raft 集群中都包含多个服务器,在任意时刻,每一台服务器只可能处于 Leader、Follower 以及 Candidate 三种状态;在处于正常的状态时,集群中只会存在一个 Leader,其余的服务器都是 Follower;leader 和 follower 之间保持心跳。如果follower在一段时间内没有收到来自leader的心跳,就会转为candidate,发出新的选主请求

Leader:负责接收客户端的请求,将日志复制到其他节点并告知其他节点何时应用这些日志是安全的Candidate:候选人,用于选举Leader的一种角色Follower:跟随者,类似于人民群众,负责响应来自Leader或者Candidate的请求apiserver:web服务器,提供集群的访问入口,封装了核心对象的增删改查,以RESTful API接口方式提供给外部客户和内部组件调用scheduler:负责集群的资源调度,将任务公平迅捷的分配至各node节点ControllerManage:pod副本控制器,维护集群稳定运行;如果太多了,Replication Controller就杀死几个,如果太少了,Replication Controller会新建几个,和直接创建的pod不同的是,Replication Controller会替换掉那些删除的或者被终止的podkubelet:处理Master下发到本节点的任务,管理Pod及Pod中的容器,并定期向上层apiserver汇报节点资源的使用情况,同时也负责 Volume(CSI)和网络(CNI)的管理kube proxy:对上对接apiserver,对下调用netlink接口创建防火墙规则以及IPVS规则kubectl:用户端管理工具

扩展:Container runtime,简称CRI容器管理工具,例如podman/container/docker

3. kubernetes插件

CoreDNS:负责为整个内部集群提供 DNS 服务Ingress Controller:为 K8S 中的服务提供外网入口(七层代理)Prometheus:为整个集群提供资源监控能力(以web接口的形式收集接口)Dashboard:提供 B/S 的访问体系,允许用户通过 web 进行集群管理及设置Federation:提供跨可用区的集群,提供不同数据中心的 K8S 集群的管理能力EFK:Elasticsearch,Fluentd,Kibana。其中 ELasticsearch 负责日志分析和存储,Fluentd 负责日志收集,Kibana 负责界面展示flannel:网络插件,让集群中的不同节点主机创建的 Docker 容器都具有全集群唯一的虚拟IP地址

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5702012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存