kubernetes架构设计是怎么样的

49次阅读
没有评论

共计 1941 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 kubernetes 架构设计是怎么样的,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一.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 之上的一种机制。它最终将变成一种通用的插件机制。

关于“kubernetes 架构设计是怎么样的”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1941字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)