ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

K8S基础学习-了解kubernetes机理

2019-05-14 16:50:05  阅读:262  来源: 互联网

标签:控制器 kubernetes 机理 API 组件 服务器 pod K8S 客户端


kubernetes集群分为俩部分:

kubernetes控制平面

工作节点

 

控制平面的组件:

etcd分布式持久化存储

API服务器

调度器

控制器管理器

这些组件用来存储,管理集群状态。但他们不是运行应用的容器。

 

工作节点上的组件:

kubelet

kube-proxy

docker

 

附加组件:提供额外的功能

DNS服务器

仪表板DASHBOARD

INGRESS控制器

性能监控工具 HEAPSTER METRICS

容器网络接口插件 FLANNEL CALICO  

 

 

组件间如何通信

组件间只能通过API服务器通信,它们之间不会直接通信。API服务器是和ETCD通信的唯一组件,其他组件不会直接和ETCD通信,而是通过API服务器来修改集群状态。

API服务器和其他组件的连接基本都是由组件发起的。

如果使用kubectl来连接容器时,API服务器会向kubelet发起连接。

高可用性: etcd和api服务器的多个实例可以同时并行工作,但是,调度器和控制器管理器只能有一个实例起作用,其他实例处于待命模式。

etcd是k8s存储集群状态和元数据的唯一的地方。

ETCD集群需要对系统的实际状态保持一致,使用的是一致性算法(脑裂算法)如果分裂成不互联的节点组,包含节点多的可以更改状态,小的不可以。恢复连接后,第二个组会更新成第一个的状态。

因此,etcd实例数量应该是奇数,偶数分裂更加容易因为数量相同而宕机。

k8s API服务器作为中心组件,其他组件或客户端都会去调用它,以RESTful的形式提供了可以查询,修改集群状态的CRUD(Create,Read,Update,Delete),并将状态存储到etcd中。

API服务器除了提供一种一致的方式将对象存储到etcd,也对这些对象做校验,这样客户端就无法存入非法对象。

 

 

 通过认证插件认证客户端,用户信息可以从客户端证书或者HTTP标头获取。插件抽取客户端的用户名,用户ID和归属组。

通过授权插件授权客户端,确认用户是否有权限执行操作。

通过准入控制插件验证资源请求

 

 验证资源以及持久化存储

请求通过了所有的准入控制插件后,API服务器会验证存储到ETCD的对象,然后返回一个响应给客户端。

 

API服务器如何通知客户端资源变更。

API服务器没有做其他额外的工作。当你创建一个RS资源时,他不会去创建pod,同时它不会去管理服务的端点。那是控制器管理器的工作。

API服务器甚至没有告诉这些服务器去做什么。

 

调度器:

调度器做的就是通过API服务器更新pod的定义,然后API服务器再去通知kubelet。当目标节点上的kubelet发现该pod被调度到本节点,他就会创建并且运行pod的容器。

 

 控制器:

API服务器只做了存储资源到ETCD和通知客户端有变更的工作。调度器只是给POD分配节点。控制器包括

 

 

 控制器做了许多不同的事情,都通过API服务器监听资源(部署,服务),不论是创建新对象还是更新,删除已有对象,都对变更执行相应操作。

控制器执行一个"调和"循环,将实际状态调整为期望状态,然后将新的实际状态写入资源的status部分。

控制器之间不会直接通信,他们甚至不知道其他控制器的存在。

RC控制器自己不会去运行pod,会创建新的pod清单,发布到API服务器。让调度器和kubelet来做调度工作并运行pod。

在POD中,有应用容器和基础容器,

 

标签:控制器,kubernetes,机理,API,组件,服务器,pod,K8S,客户端
来源: https://www.cnblogs.com/normanlin/p/10863085.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有