文档章节

kubernetes的架构设计

xiejunbo
 xiejunbo
发布于 2017/12/11 00:15
字数 1158
阅读 1.2K
收藏 0

一.kubernetes集群包含有节点代理kubelet和master组件(APIs, Scheduler, ect.)。一切都基于分布式的存储系统。

二.kubernetes集群架构图:

解析:

1.在这张系统架构图中,把服务分为运行在工作节点上的服务和组成集群级别控制板的服务。

2.kubernetes节点有运行应用容器必备的服务,而这些都是受master控制的。

3.docker是每个节点运行的基础,docker负责所有具体的镜像的下载和容器的运行。

4.kubernetes主要由以下几个核心组件组成:

a.etcd保存了整个集群的状态;

b.apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

c.controller manager负责维护集群的状态,如:故障检测、自动扩展、滚动更新等;

d.scheduler负责资源调度,按照预定的调度策略将Pod调度到相应的机器上;

e.kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;

f.Container runtime负责镜像管理及Pod和容器的真正运行;

g.kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;

5.kubernetes的相关推荐的附加组件:

a.kube-dns负责为整个集群提供DNS服务;

b.Ingress-controller为服务提供外网入口;

c.Heapter提供资源监控;

d.Dashboard提供GUI;

e.Federation提供跨可用区的集群;

f.Fluentd-elasticsearch提供集群日志采集、存储与查询

三、分层架构

kubernetes的设计理念和功能其实就是一个类似linux的分层架构,如下图:

1.核心层:kubernetes最核心的功能,对外提供API构建高层应用,对内提供插件式应用执行环境.

2.应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等).

3.管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态provision等),以及策略管理(RBAC、Quota、PSP、Network policy etc.).

4.接口层:kubelet命令行工具、客户端SDK、集群.

5.生态系统:在接口层之上的庞大容器集群管理调度生态系统,可以划分为两个范畴:

        a.kubenetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等

        b.kubenetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等

 

四、kubelet

kubelet负责管理Pods和它们上面的容器、images镜像、volumes、etc.

五、kube-proxy

每个节点也运行一个简单的网络代理和负载均衡。服务端点目前 是通过DNS或者环境变量,这些变量是用由服务代理所管理的端口来解析的。

六、kubenetes控制面板

kubenetes控制面板可以分为多个部分。目前它们都运行在一个master节点,为了达到高可用性,这需要改变,由不同部分一起协作提供一个统一的关于集群的视图。

七、etcd

所有master的持续状态都存在etcd的一个实例中。这可以很好地存储配置数据。因为有watch的支持,各部件协调中的改变都可以很快被察觉。

八、kubernetes API Server

API服务提供Kubernetes API的服务。这个服务试图通过把所有或者大部分的业务逻辑放到不止两只的部件中从而使其具有CRUD特性。它主要处理REST操作,在etcd中验证更新这些对象并最终存储。

九、scheduler

调度器把未调度的pod通过binding api绑定到节点上。调度器是可插拔可,并且支持多集群的调度,未来可能支持用户自定义的调度器。

十、kubenetes控制管理服务器

所有其它的集群级别的功能目前都是由控制管理器负责。如,端点对象是被端点控制器来更新。这些最终可分隔成不同的部件来让它们独自的可插拔。

replication controller是一种建立于简单的podAPI之上的一种机制。它最终将变成一种通用的插件机制。

 

参考:

https://github.com/kubernetes/kubernetes/blob/release-1.2/docs/design/architecture.md

https://feisky.gitbooks.io/kubernetes/architecture/architecture.html

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

上一篇: kubernetes设计理念
下一篇: kubernetes概述
xiejunbo
粉丝 46
博文 149
码字总数 133634
作品 0
广州
后端工程师
私信 提问
加载中

评论(0)

Kubernetes杭州集市干货大起底,你get了吗?

2018年3月31日,在美丽的西子湖畔,CNCF Meetup——Kubernetes GeekGathering 2018杭州站与众多新朋老友如约相会,此次技术集会由K8S技术社区、EasyStack、网易云联合主办,谐云科技、网银互...

k8scaptain
2018/04/20
0
0
荐书丨Kubernetes权威指南——企业级容器云实战

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 《Kubernetes权威指南》作者全新力作 直击容器云技术热点和难点 Kubernetes企业级容器云落地实战及指南 在开...

CSDN程序人生
2018/08/26
0
0
安全事故:Kubernetes遭遇大范围劫持

作为全球范围内广受众多企业好评的容器编排系统,Kubernetes自然也成为攻击者眼中的重要目标。通过近期监控,我们发现已经涌现以CVE-2018-1002105[1]为代表的一系列安全问题。 之所以对这项服...

Docker
2018/12/08
0
0
Kubernetes vs. Serverless并非零和游戏?

作为令人兴奋和强大的平台,Kubernetes和Serverless完全配得上现在的地位。它们可以通过多种方式为组织提供敏捷性、可扩展性和计算性能方面的巨大提升。但是,我们很容易忘记Kubernetes提供了...

K8S技术社区
2018/09/18
0
0
Kubernetes Meetup 中国 2017【青岛站 11.18】报名开启

导语: 2016 年 4 月「K8sMeetup 中国社区」一经成立,即受到 CNCF 官方授权和认可。仅一年时间,来自 eBay、腾讯、VMware、Google、中国移动、浙大 SEL 实验室的架构师就在北、上、杭、深四...

Caicloud
2017/11/14
47
0

没有更多内容

加载失败,请刷新页面

加载更多

Argo 项目加入 CNCF 孵化器 | 云原生生态周报 Vol. 45

作者 | 陈洁、高相林、陈有坤、敖小剑 业界要闻 Argo 项目加入 CNCF 孵化器 Argo 项目是一组 Kubernetes 原生工具,用于运行和管理 Kubernetes 上的作业和应用程序。目前由 Argo Workflows,...

阿里巴巴云原生
24分钟前
15
0
css-方形边框四角

项目中遇到下图这种样式,刚开始想切图解决 后来想到更好的解决办法,代码如下: HTML: <div class="BoxWrap"> <div class="horn"> <div class="lt"></div> <div c......

osc_vo0yi5f8
24分钟前
11
0
离职10天,面挂4家公司!

作者:莫那鲁道 来源:http://1t.click/U4g 楼主离职已有 10 天,这段时间里除了看源码,就是投简历面试了。一共面试了 4 家,说说感受。 # XX 汇 XX 汇是一家小型的电商网站,由于楼主的技术...

Java技术栈
25分钟前
18
0
Navicat12 for Mysql激活

1 下载 注册机和Navicat网盘下载地址 链接:https://pan.baidu.com/s/1AFpQIlHCXVHc8OuBZ9PAlA 提取码:xvi2 2 安装 2.1 安装Navicat 安装完成后,将Navicat_Keygen_Patch_v4.8_By_DFoX复制到...

osc_mra0q9h6
26分钟前
23
0
学习第一周

监督学习(他们中有标签加以区分) 回归算法 我们给出一个数据集,里面包含了正确的答案,假如我们给他一个房价的数据集,在这个数据集中的每个样本,我们都给出正确的答案(房子的实际价格)...

osc_ocl8o73l
27分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部