k8s各组件功能

k8s 各组件功能

1.1、kube-apiserver:

* 运行在master节点上

* Kubernetes API server提供了k8s各类资源对象的增删改查及watch等HTTP Rest接口,这些对象 包括pods、services、replicationcontrollers等,API Server对REST操作提供服务,并为集群的共享状态提供前端,所有其他组件都通过该前端进行交互。

 * 端口默认值为6443,可通过启动参数 "--secure-port"的值来修改默认值

* 默认IP地址为非本地(Non-Localhost)网络端口,通过启动参数“--bind-address”设置该值。

* 该端口用于接收客户端、dashboard等外部HTTPS请求

* 用于基于Tocken文件或客户端证书及HTTP Base的认证

* 用于基于策略的授权

1.2、kube-scheduler:

* 运行在master节点上

* Kubernetes调度器是一个控制面进程,负责将Pods指派到节点上

* 通过调度算法为待调度Pod列表的每个Pod从可用Node列表中选择一个最适合的Node,并将信息写入etcd中

*  node节点上的kubelet通过API Server监听到kubernetes Scheduler产生的Pod绑定信息,然后获取对应的Pod清单,下载Image,并启动容器。

*  策略:

    * LeastRequestedPriority 优先从备选节点列表中选择资源消耗最小的节点(CPU+内存)

  *  CalculateNodeLabelPriority 优先选择含有指定Label的节点

   *  BalancedResourceAllocation 优先从备选节点列表中选择各项资源使用率最均衡的节点

1.3、kube-controller-manager:

* 运行在master节点上

* Controller Manager还包括一些子控制器(副本控制器、节点控制器、命名空间控制器和服务账号控制器等),控制器作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群中的pod副本始终处于预期的工作状态

* controller-manager控制器每间隔5秒检查一次节点的状态

* 如果controller-manager控制器没有收到自节点的心跳,则将该node节点标记为不可达

* controller-manager将在标记为无法访问之前等待40秒

* 如果该node节点被标记为无法访问后5分钟还没有恢复,controller-manager会删除当前node节点的所有pod并在其它可用节点重建这些pod

* pod高可用机制:

* node monitor period:节点监事周期 5s

* node monitor grace period:节点监视器宽限期 40s

* pod eviction timeout: pod驱逐超时时间 5m

1.4、kube-proxy:

* Kubernetes 网络代理运行在node上,它反映了node上Kubernetes API中定义的服务,并可以通过一组后端进行简单的TCP、UDP和SCTP流转发或者在一组后端进行循环TCP、UDP、SCTP转发,用户必须使用apiserver API创建一个服务来配资代理,其实就是kube-proxy通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务访问

* kube-proxy 运行在每个节点上,监听API server中服务对象的变化,再通过管理IPtables或者IPVS规则 来实现网络的转发

* Kube-Proxy不同的版本可支持三种工作模式:

 * UserSpace:k8s v1.1之前使用 , k8s 1.2及以后就已经淘汰

 * IPtables:k8s 1.1版本开始支持,1.2开始为默认

 * IPVS:k8s 1.9引入到1.11为正式版本,需要安装ipvsadm、ipset工具包和加载ip_vs内核模块

* IPVS相对IPtables效率会更高一些,使用IPVS模式需要在运行Kube-Proxy的节点上安装ipvsadm、ipset工具包和加载ip_vs内核模块,当Kube-Proxy以IPVS代理模式启动时,Kube-Proxy将验证节点上是否安装了IPVS模块,如果未安装,则Kube-Proxy将回退到IPtables代理模式。

* 使用IPVS模式,Kube-proxy会监视Kubernetes Services对象和Endpoints,调用宿主机内核Netlink接口以相应地创建IPVS规则并定期与Kubernetes Services对象Endpoints对象同步IPVS规则,以确保IPVS状态与期望一致,访问服务时,流量将被重定向到其中一个后端Pod,IPVS使用哈希表作为底层数据结构并在内核空间中工作,这意味着IPVS可以更快地重定向流量,并且在同步代理规则时具有更好的性能,此外,IPVS为负载均衡算法提供了更多选项,例如:rr(轮训调度) lc(最小连接数)dh(目标哈希) sh(源哈希) sed(最短期望延迟) nq(不排队调度)等。

1.5、kubelet:

* kubelet是运行在每个worker节点的代理组件,它会监视已分配给节点的pod,具体功能如下:

* 向master汇报node节点的状态信息

* 接受指令并在Pod中创建docker容器

* 准备Pod所需的数据卷

* 返回pod的运行状态

* 在node节点执行容器健康检查

1.6、kubectl:

* 是一个通过命令行对kubernetes集群进行管理的客户端工具

1.7、etcd

etcd是CoreOS公司开发,目前是Kubernetes默认使用的key-value数据存储系统,用于保存kubernetes的所有集群数据,etcd支持分布式集群功能,生产数据使用时需要为etcd数据提供定期备份机制

etcd内部采用raft协议作为一致性算法,etcd基于go语言实现

etcd具有下面这些属性

完全复制 集群中的每个节点都可以使用完整的存档

高可用性 etcd可用于避免硬件的单点故障或网络问题

一致性:每次读取都会返回跨多主机的最新写入

简单 包括一个定义良好 面向用户的API(gRPC)

安全:实现了带有可选的客户端证书身份验证的自动化TLS

快速:每秒10000次写入的基准速度

可靠:使用Raft算法实现了存储的合理分布Etcd的工作原理

1.8、DNS

DNS负责为整个集群提供DNS服务,从而实现服务之间的访问

DNS组件历史版本有skydns、kube-dns和coredns三个,k8s 1.3版本之前使用skydns,之后的版本到1.17之间的版本使用kube-dns,目前主要使用coredns,DNS组件用于解析k8s集群中service name所对应得到IP地址


1.9、Dashboard:

* Dashboard是基于网页的Kubernetes用户界面,可以使用Dashboard获取运行在集群中的应用的概览信息,也可以创建或者修改Kubernetes资源(如Deployment,Job,DaemonSet等等),也可以对Deployment实现弹性伸缩、发起滚动升级、重启Pod或者使用向导创建新的应用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容