云原生系列(十)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 云原生系列(十)

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搭建和管理企业级网站应用
相关文章
|
11月前
|
运维 Cloud Native 持续交付
云原生应用
云原生应用
|
敏捷开发 运维 Kubernetes
云原生到底是什么?
前言 最近老是看到云原生这个概念,闲暇之余也去了解了一下!看了很多文章,对云原生的解释总是迷迷糊糊,看完云里雾里,经过博主的大量查阅,用我的理解总结一下。
1074 0
云原生到底是什么?
|
2天前
|
Kubernetes Cloud Native API
云原生系列(五)
云原生系列(五)
|
2天前
|
Kubernetes Cloud Native 调度
云原生系列(八)
云原生系列(八)
|
2天前
|
Kubernetes Cloud Native 安全
云原生系列(四)
云原生系列(四)
|
2天前
|
Kubernetes Cloud Native API
云原生系列(七)
云原生系列(七)
|
2天前
|
Cloud Native Linux 网络安全
云原生系列(二)
云原生系列(二)
|
2天前
|
Cloud Native 持续交付 Docker
云原生系列(一)
云原生系列(一)
|
4月前
|
Kubernetes 监控 Cloud Native
云原生与ChaosMeta
ChaosMeta是一款专为云原生环境和自动化演练设计的先进混沌工程平台。它源自蚂蚁集团内部广受认可的混沌工程平台XMonkey,并代表了蚂蚁集团在跨BU级别大规模红蓝攻防演练中多年来积累的丰富经验、技术能力和产品实践。作为XMonkey的开源版本,ChaosMeta凝结了蚂蚁集团稳定性团队在混沌工程领域的方法论以及经过复杂故障场景驱动下的独到见解。ChaosMeta不仅继承了XMonkey在多年混沌工程实践中的成熟技术和方法论,也体现了开放源代码的承诺,通过与全球开发者和专业人士的互动交流,ChaosMeta努力成为连接实际工程问题和前沿技术研究的桥梁。
84 0
|
11月前
|
运维 Cloud Native Devops
云原生应用的特点
云原生应用的特点