第5篇:K8S功能架构图 以及全景工作流程图 (初识K8S)

本篇博客涉及到的问题:
1、容器需要分为两个部分,这两个部分指的是什么? 本博客已解答
2、K8S的诞生源于”Brog系统”的设计和经验,Brog系统的什么特点是K8S需要继承的?本博客已解答
3、K8S在容器云兴起后需要解决什么问题?本博客已解答
4、“我有一个容器镜像。服务商帮我在这个集群中运行起来吧!” 想要运行这个容器到集群中,服务商需要分析到哪些方面?本博客已解答
5、K8S的架构组成图 CRI、OCI、CSI、CNI、GRPC 都是指的什么?本博客已解答
6、基于k8s的架构组成图,Brog系统对k8s的诞生的指导意义体现在哪里?本博客已解答
7、linux和容器在面对集群中”关系”时,都是怎样处理的?本博客已解答
8、K8S和linux 对于“关系”的处理原理做出表格比对 本博客已解答
9、Compose的本质原理是什么?本博客已解答
10、K8S的核心功能 “全景图” 以及解释 本博客已解答
11、声明式 API指的是什么?本博客已解答

容器:有隔离环境的特殊的进程

知识点1:容器可以分为两部分:

(1)容器运行时:动态视图-隔离环境 :NameSpace+Cgroups
(2)静态视图:容器镜像rootfs /var/lib/docker/aufs/mnt/rootfs文件

知识点2:容器编排技术:

(1)容器组织
(2)容器管理

知识点3:Brog系统 :是Google公司的 “ 整个基础设施的核心依赖 ”,是最不可能来源的项目

K8S :核心特性来源于”Brog系统的设计 和 经验 ”
K8S特点:先进性 + 完备性
先进性 + 完备性,其实Paas可以实现 ,Compose+Swarm项目也能实现,K8S的独特优势又是什么?往下看!

问题:K8S要解决什么问题? 编排?调度?集群管理?容器云?

在不同的发展阶段需要解决的问题是不同的,并不能特定在一个特点
K8S需要解决的问题 : 官方回答
运行在大规模集群中的各种任务之间,实际上存在各种各样的 关系
这些关系的处理,才是作业编排 和 管理系统 最困难的地方

站在用户的立场:我有一个容器镜像rootfs,帮我在集群中把这个应用运行起来!
分析下这个容器需要实现哪些?

(1)K8S应该配置好路由网关
(2)容器有水平扩展的能力
(3)K8S能监控到这个容器的各个方面
(4)能备份这个容器
(5)能灾难恢复这个容器

知识点4:K8S的组成结构图


C R I \color{#FF0000} CRI CRI :定义了容器运行时的各项核心操作
  栗子:定义了启动容器需要的所有的参数
C N I \color{#FF0000} CNI CNI : 调用网络插件为 容器配置网络

C S I \color{#FF0000} CSI CSI : 调用存储插件为容器配置持久化存储
O C I \color{#FF0000} OCI OCI : OCI 包含了 容器运行时的规范
  OCI负责和linux操作系统进行交互,把CRI请求翻译成 对 操作系统的调用(操作linux NameSpace 和 Cgroups)

g R P C \color{#FF0000} gRPC gRPC :是协议 ,负责和Device插件进行交互
   Device插件:管理cpu等宿主机物理设备的主要的组件

知识点5:现在来看知识点3的问题:

Brog系统没有CNI CRI CSI OCI gRPC ,Brog系统不需要管理Docker ,也不需要和Docker进行交互,Brog系统对K8S项目的诞生,起到了什么指导性的意义呢
:其实 master节点起到了指导性的意义
Brog系统 以及 K8S项目 在编写的时候 注重点是一样的,都是注重 编排、管理、调度用户提交的作业
K8S项目是把Docker镜像作为最底层的一个容器运行
换句话说,在K8S的角度,它看待Docker镜像看做是一种新的应用的打包方式。

知识点6:现在来看知识点3问题中提及的 “容器之间的关系”

(1)web应用和数据库的访问关系
(2)负载均衡器和后端服务的代理关系
(3)门户应用和授权组件间的调用关系
(4)web应用和日志收集组件间的文件交换关系
对于Linux来说,它是如果来处理“容器之间的关系的”
   1、因为这些应用需要互相发HTTP请求,所以 应用都需要部署在一个虚拟机上面
   2、手动维护其他服务和守护进程 (处理日志收集 、灾难恢复、数据备份)
K8S是如何处理 “容器之间的关系的”
   上述在一个虚拟机的多个应用 /组件/守护进程等,都可以做成镜像。运行在专属的容器中
   这些专属的容器,都可以拥有特定的各自的资源配额
   这些专属容器,可以被调度在整个集群里面的任何一台机器上面,就像是 “微服务”的效果

知识点7:K8S并不仅仅 “封装微服务,调度单容器”

封装微服务 :Docker Swarm 可以做到,并非K8S不可
调度单容器 :Docker Compose 可以做到,并非K8S不可

Compose是怎样实现调用容器的呢?或者说是怎样调度“关系”的呢?
图片名称 **问题**:但是如果 关系很多,并且需要整个集群架构需要 具有 应对未来的能力,这种Compose 项目的Link的能力不是很好 K8S从更加宏观的角度,用统一的方式定义“任务之间的各种的关系”,为将来支持更多种类的关系 留有余地 (1)对于频繁交互访问的,以及需要通过本地文件进行信息交换的 图片名称 (2)对于WEB应用需要访问数据库的关系 图片名称

知识点8:俯视K8S的工作原理图:

K8S工作原理图

知识点9:K8S的声明式API

编排对象 :通过一个编排对象 (Pod、Job、Crontab)来描述试图去管理的应用
服务对象 : 为上面的 编排对象定义 Service、Secret、Horizontal Pod、AutoScaler ,主要负责具体的平台化的功能

注释:此博客为学习博客,如有侵权,请联系博主

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kubernetes(简称k8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。基于k8s的系统架构图可以描述出Kubernetes的整体组成和工作原理。 首先,k8s的系统架构图通常包含以下几个主要组件: 1. 主节点(Master Node):主节点是k8s集群的控制中心,负责管理和监控整个集群的状态。其中核心组件包括: - API Server:负责接收和处理来自用户、外部系统和节点的请求,并将它们转化为内部操作。 - Scheduler:负责将容器化应用程序的Pod调度到可用的工作节点上,根据资源需求和节点的状态进行智能调度。 - Controller Manager:负责监控集群状态的各种控制器,并按需调整集群的配置。 2. 工作节点(Worker Node):工作节点是运行容器的实际主机,用于执行应用程序的实际工作。其中关键组件包括: - Kubelet:负责与主节点的API Server进行通信,接收和执行任务,保持节点与主节点同步。 - Container Runtime:负责管理和运行容器,如Docker或rkt。 - Kube Proxy:负责为Pod提供网络代理和负载均衡功能。 3. 存储:Kubernetes提供多种持久化存储的解决方案,例如: - Persistent Volume(PV):抽象出存储资源并提供给Pod使用。 - Persistent Volume Claim(PVC):声明式地请求可用的存储资源。 - Storage Class:动态地提供持久化存储的模板。 4. 服务发现和负载均衡:k8s通过Service和Ingress组件提供集群内外的服务发现和负载均衡功能。 在k8s系统架构图中,各个组件之间通过API、RPC等方式进行通信,实现了集群的高可用、高可伸缩和自动化部署管理。通过k8s系统架构图,可以清晰地了解到k8s集群的组成以及各组件之间的关系与作用,帮助开发人员和运维人员更好地理解和使用k8s提供的强大功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发已掉光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值