云原生系列(十)

简介: 云原生系列(十)

K8S的架构图

首先,云原生的重要组件是K8S,K8S是一个围绕容器打造的分布式高并发系统:①、容器元数据的管理;②、容器的生命周期管理

早期的容器管理:称之为容器管理的原始时代:使用命令的形式进行容器的管理;包括容器的启动和停止,包括服务地址和端口的配置,在原始时代的后期使用yml文件进行容器编排,所有容器的元数据通过yml文件进行管理,很多个容器的话手都会敲断,所以k8s从原始时代带入工业时代。

二、Kubernetes的对象之间的组合关系

3d0ca71b150156d6ddb18b588b54784b.png

k8s的资源对象之间的组合关系:非常类似于springmvc的持久层的实体Bean

Deployment:滚动升级策略:副本数:PodTemplate

Replicaset:版本信息(templateHash) ,描述副本数:类似于微服务的实例对象

Node:整个k8s节点的计算节点的计算资源健康状况

Pod:核心的资源对象,镜像地址资源需求:内存,硬盘,cpu

Service:容器在外面访问的服务协议服务端口

Ingress:容器在外面访问的域名  访问http协议的 URL 目标服务

三、K8S的分布式子系统架构图,和业务架构图相呼应

b9262866b17899bdc6bec8e39e4eceef.png

K8S  Master:负责的是容器的元数据管理

Kubelet:工作节点:也可以说是Node  Worker:负责的是容器的生命周期管理

在整个K8S容器当中,我们的业务服务都是通过容器的方式部署的

所以k8s集群有很多个工作节点或者说是node节点/计算节点。

他们都是通过master组件的API Server组件进行 容器的元数据的查询和订阅

四、分布式容器管理流程架构图

f409c470e3aeb48bf8ffc1ad7dccc632.png

(1)、首先是用户拿了一份容器部署的描述文件:Deployment文件,提交给到控制平面的master节点的API Server核心组件。

(2)、API Server可以理解为k8s的数据总线:只负责容器元数据资源对象的crud,并不负责元数据的处理,元数据的处理是由一些控制器来完成的。

(3)、然后API Server把处理好的元数据对象给到注册中心etcd分布式协调组件进行元数据的持久化,第二种是通过发布订阅机制通知到工作节点里面的容器管理的角色kubelet,

(4)、然后kubelet监听到元数据的变化之后:一旦监听到是属于当前工作节点的容器,就是通过下面的接口来进行容器的创建,和网络资源的分配,存储资源的分配。

(5)、在整个容器管理的流程当中:核心的数据总线提供了HTTP Rest接口完成了K8S各类资源对象pod,RC,Service(元数据对象)的等的增删改查以及watch(元数据变化的监听操作)等,是整个系统的数据总线

五、K8S的内部数据传输架构图

a18de398ba94fa0964b83776121b96c1.png

(1)、K8S内部数据传输架构:通过长短连接实现性能最优化

(2)、工作节点的Kubelet组件和控制节点的api server组件之间有两种方式的数据传输一种是http接口的短连接传输:获取全量的元数据,一种是长连接的数据传输:获取增量元数据的变化;传输性能最优化;kubelet使用了缓存架构。

六、容器对外暴漏的架构图

7574ebea194c8cfe0799028fab93d2a3.png

当我们容器创建好之后:怎么对外进行暴漏,方便外面的访问

①、容器元数据对象创建的阶段:k8s会创建一个资源Service对象,根据选择器selector,和元数据的标签labels进行容器的挑选;另外Service会配置对外暴漏统一的端口port;分发阶段,会通过暴漏的,端口来访问;k8s有一个专门的组件kube-proxy:Service的负载均衡器来完成流量的分发和pod之间的负载均衡


七、k8s的总的架构:有两个核心的架构:

master:负责容器元数据的管理和监控,在Master上面有个数据总线API Server

node:负责容器生命周期管理和外部流量的代理和路由:有个Kubelet组件

e20a4c3ee0004b8e2cff5ef8203c6ef8.png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
敏捷开发 运维 Kubernetes
云原生到底是什么?
前言 最近老是看到云原生这个概念,闲暇之余也去了解了一下!看了很多文章,对云原生的解释总是迷迷糊糊,看完云里雾里,经过博主的大量查阅,用我的理解总结一下。
1099 0
云原生到底是什么?
|
3月前
|
存储 Cloud Native Linux
云原生系列(三)
云原生系列(三)
|
2月前
|
运维 Kubernetes Cloud Native
探索云原生应用的未来之路
【10月更文挑战第2天】在数字化浪潮中,云原生技术如同一艘扬帆起航的巨轮,正引领着企业和应用开发者驶向更广阔的大海。本文将深入浅出地探讨云原生的核心概念、优势及其在实际中的应用案例,同时提供代码示例,帮助读者更好地理解和运用云原生技术,共同迎接数字化转型的新浪潮。
|
3月前
|
存储 负载均衡 Cloud Native
云原生系列(六)
云原生系列(六)
|
3月前
|
Kubernetes Cloud Native API
云原生系列(五)
云原生系列(五)
|
3月前
|
Kubernetes Cloud Native 安全
云原生系列(四)
云原生系列(四)
|
3月前
|
Kubernetes Cloud Native 调度
云原生系列(八)
云原生系列(八)
|
3月前
|
Cloud Native Linux 网络安全
云原生系列(二)
云原生系列(二)
|
3月前
|
Cloud Native 持续交付 Docker
云原生系列(一)
云原生系列(一)
|
存储 弹性计算 运维
云原生应用有哪些
云原生应用有哪些
217 0
下一篇
DataWorks