k8s 架构

打印 上一主题 下一主题

主题 558|帖子 558|积分 1674


1、概述

想要学习k8s的利用还是有须要学习一下k8s的架构。文章这个图是官网上k8s的架构图,这个架构展示了全部k8s的组件。Kubernetes架构可以分为两个主要部门:控制平面(Control Plane)和数据平面(Data Plane)。
控制平面和数据平面简单明白就是老板和员工的关系。老板负责指挥怎么干,员工就根据聪明干。
也可以拆开来明白。

  • 控制: 管理和设置
  • 数据:接流量过来处理
  • 平面: 平面这个确实很抽象,从定义上来讲,只要是你的程序的逻辑术语控制管理类的功能都是平面。比如:你的领导就是你的控制平面,你就是数据平面。加入你也是领导,那么你是你下属的控制平面,你的下属是你的控制平面。你既是控制平面又是数据平面。
控制平面(Control Plane)是Kubernetes的大脑,负责集群的团体管理和协调。它由一系列守护进程(Daemon Processes)组成,运行在集群的每个节点上,并与其他组件举行通信,以实现集群的主动化管理。
数据平面(Data Plane)包含了运行在Kubernetes集群中的全部容器和应用程序。这些应用程序通过与控制平面的交互,实现自身的部署、扩展和管理。
说到k8s大概服务网格技能都必须聊一下控制平面和数据平面并不是新创造的术语,这两个术语在很早之前就在网络中利用了。


下面引用一下某百科Control Plane和Data Plane的科普:
Control Plane:


Data Plane



k8s的术语利用还是相当精准的,如果你网络路由这块的基础学的好,你还可以那网络的控制平面和数据平面做一个类比,比如:

  • 创建网络拓扑: k8s控制平台纪录了Pod、Service等组件的关系,他们在网络中的位置(也就是IP),然后纪录了哪些Pod部署在了哪个节点
  • 接入和抛弃数据包: 当有流量进入k8s集群,k8s会根据Service举行流量转发,转发给某一个Pod, 然而如果这个Service没有关联Pod,那就抛弃流量并报错。
  • 优先处理某些数据包:在K8s中,控制平面有控制器管理器,此中各个控制器就类似于对特定操作举行优先处理的逻辑。例如,ReplicaSet控制器会确保目标数目的Pod副本始终在运行。
  • 路由表与前向信息库: k8s中也会存储Service,EndPints,Pod等关联关系,并将这些信息存储在etcd中。
  • 设置和关闭数据平面: 你利用k8s CLI大概其他客户端执行一个CUD下令时可能会设置数据平面。比如,当你通过kubectl应用一个Deployment时,API Server会吸收到这个请求并举行处理。
2、控制平面(Control Plane)组件

控制平面是Kubernetes的核心,它由以下组件构成:

  • API Server:作为Kubernetes的大脑,API Server提供了RESTful API接口,用于与控制平面和数据平面的组件举行通信。它处理和验证全部传入请求,确保集群状态的一致性。
  • Scheduler:Scheduler负责在集群中调度和分配资源。它评估每个Pod的需求,并根据节点的可用资源、约束和战略,决定在哪个节点上运行Pod。
  • Controller Manager:Controller Manager是控制平面的协调者,负责维护集群的状态。它运行一系列控制器(Controllers),如ReplicaSet、Deployment等,以确保数据平面的状态与控制平面的盼望状态一致。
  • etcd: 是控制平台的数据存储服务,全部需要存储的数据都会存储到etcd。
控制平面的组件利用这个下令查看。
  1. kubectl get pods -n kube-system
复制代码
COPY
大家注意哈,k8s架构图,除了Api Server其他组件都和etcd没有连接,这就表现要存取数据就得通过Api Server。大家可能担心这样Api Server会不会有瓶颈,这个问题k8s筹划团队肯定思量到了,所以他们把Api Server筹划成无状态的了,横向扩展就好了。
3、数据平面(Data Plane)组件

数据平面包含了运行在Kubernetes集群中的应用程序和容器。这些组件通过与控制平面的交互,实现了自身的部署、扩展和管理。以下是一些常见的数据平面组件:
3.1.架构层


  • Node: Node是k8s中的工作节点,通常是由物理机大概捏造机组成,据说Node还有另外一个名字:奴隶。
  • kubelet: kubelet是一个非常重要的角色,它用来管理和协调Pod以及Node。它的功能特性包括:Pod发布,资源管理,康健监控和Volume管理。总之:kubelet对Pod负责,可以明白为与计算和存储有关的内容都由kubelet来处理。
  • kube-proxy:既然kubelet是与计算和存储有关,那么kube-proxy就是与网络有关系,这样就组成了计算机的三个大方面:计算,存储和传输。kube-proxy这个组件的名字起的有点歧义,由于一样平常的proxy都是要接入流量正向大概反向代理的,但是kube-proxy不接流量,只负责管理网络相关的规则和变动。
3.2.应用层

应用层k8s提供了丰富(太多)的资源可以操作,先看看Dashboard的左侧导航栏就清楚了。
 



  • Pod:Pod是Kubernetes中的最小部署单元,包含一个或多个容器。它是应用程序在集群中的运行环境,提供了共享的存储、网络和运行环境。
  • Service:Service定义了Pod的访问方式,提供了负载平衡、服务发现和流量管理等功能。通过Service,我们可以将多个Pod组合成一个服务,并确保对服务的请求被精确地路由到相应的Pod上。
  • ReplicaSet和Deployment:ReplicaSet和Deployment是Kubernetes中的资源控制器,用于管理Pod的复制和部署。它们确保数据平面的状态与控制平面的盼望状态一致,从而实现主动扩缩容和滚动更新等功能。
  • Ingress:Ingress提供了外部访问控制和路由功能,用于处理进入集群的流量。它可以将多个Service袒露到外部网络,并提供反向代理、SSL终止等扩展功能。
  • Storage:Kubernetes提供了强大的存储管理功能,支持恒久化存储办理方案如Ceph、GlusterFS、NFS等。通过利用Persistent Volume和Persistent Volume Claim等资源,用户可以灵活地管理存储资源,确保应用程序的数据恒久性。
  • ….

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表