Kubernetes 系列:了解 k8s 架构(一)-每日报道
时间:2023-06-25 23:42:50来源:博客园

Kubernetes 概述

当下,我们很多项目于都在Cloud Native(云原生)的上面,这种方法旨在使组织能够确保可用性并快速响应和适应变化,云原生其实就是一组本质上支持在不同云环境(公共云、私有云或混合云)上大规模构建、运行和管理应用程序的实践和技术。


(相关资料图)

云原生离不开两个概念:容器微服务,这两个概念是任何云原生应用程序的构建块:

  • 微服务是小型、独立的服务(软件)的集合,可以在容器中轻松打包和执行。
  • 容器基于容器镜像, 容器是一个标准的软件单元,它打包代码及其所有依赖项,无论基础设施如何, 都允许应用程序快速可靠地运行
  • 容器镜像是一个轻量级的、独立的、可执行的软件包,其中包含运行应用程序所需的一切,容器镜像在运行时成为容器

使用微服务架构是确保应用程序速度、敏捷性、增长和可用性的基础,因此,它改善了用户体验。

例如,随着网络流量的增加或减少,放置在单体专用服务器上的整体应用程序比一组微服务更难扩展和缩减。

然而,微服务架构的快速采用导致生产环境中容器数量的增加,这使得容器的管理和维护变得非常困难。并且,如果服务的请求量上来,已部署的服务响应不过来的时候怎么办呢?传统的做法是,如果请求量、内存、CPU超过阈值做了告警,运维马上再加几台服务器,部署好服务之后,接入负载均衡来分担已有服务的压力。这样从监控告警到部署服务,中间需要人力介入。 因此,Kubernetes的诞生就是为了解决这个问题。k8s实现自动完成服务的部署、更新、卸载和扩容、缩容等功能

Kubernetes(也称为 K8s)是一个开源平台,旨在自动化容器化应用程序的配置、管理、可扩展性和可用性。(或者简单地说,它是一个编排工具)

Kubernetes最初是一个名为 Borg的 Google 内部项目。 然后它被交给开源社区,现在由云原生计算基金会(CNCF)维护。

架构

从上图可以看到:

Kubernetes集群由Control Plane和工作节点(Worker Node)组成。

Control Plane

Control Plane是集群中的决策者,它负责编排运行、调度和维护应用程序所需的所有进程。Control Plane可以安装到任何节点,但是作为最佳实践,不建议在WorkerNode上安装Control Plane。我们在后续文章中讨论如何构建 Kubernetes集群。

  • kube-apiserver: 公开 API 服务器的组件
  • etcd: 分布式键值存储。Kubernetes使用它作为所有集群数据的后备存储
  • kube-scheduler: 监视新创建的 Pod并为其分配节点的组件
  • kube-controller-manager: 负责控制器进程的组件。 Kubernetes 中的控制流程各不相同,例如控制节点是否关闭的节点控制器或创建endpoints的端点控制器。
  • cloud-controller-manager: 这是一个可选组件,仅在云上创建 Kubernetes 集群时才需要。该组件将 Kubernetes 集群链接到云提供商

Worker Nodes

Worker Node负责托管称为 Pod的 k8s 对象。而Pod是k8s对象的最小单位。它在其中运行一个容器化应用程序。所有 k8s节点都运行三个主要代理:

  • Container Runtime: 在节点上运行容器, 负责从注册表加载容器镜像、监视容器资源、将容器彼此隔离以及管理容器生命周期(即 docker)
  • kube-proxy: 它通过监视两个主要的 k8s 对象:ServicesEndpoints来维护 k8s 节点上的网络规则。这些网络规则允许 Pods在 k8s 集群内部或外部可访问
  • kubelet:一个 systemd进程。它接收 PodSpecAPI调用并与Container Runtime通信,以确保遵守 PodSpec

PodSpec: 是描述 Pod的文件,它的文件格式可以是 YAMLJSON格式。每次更改后,会由 kube-controller-manager通过 kube-apiserver发送到 Kubelet代理,以便 Kubelet可以执行必要的更新以实现当前状态和所需状态之间的匹配。它还会发送到 kube-scheduler以决定在哪个节点上运行 pod。

Control Plane Node

Control Plane由与Worker Node相同的代理加上几个其他代理组成。大多数进程在容器内执行,其中一些是 systemd进程。他们负责确保集群的当前状态与所需状态匹配

  • kube-apiserver: apiserver k8s 集群的单一入口,它主要负责根据用户的具体请求,去通知其他组件从架构图可以看出k8s各个代理之间不直接通信。 数据通过kube-apiserver在代理之间传递。因此,kube-apiserver是 k8s 集群的单个入口,处理所有内部和外部的 k8s 流量(API 调用)。

apiserver调用时会为每个 API 调用执行身份验证(authentication)、授权(authorization)和admission control

authentication:当客户端提供有效的 TLS 证书时建立(有效的 TLS 证书是由集群的 CA 签名并受apiserver信任的证书)authorization:通过RBAC,指定客户端是否可以对某些 k8s 对象执行CRUD 操作admission controlCRUD operation: 如果客户端对 k8s对象执行的操作合法,则成立。例如,当集群有一个 ResourceQuota 对象将命名空间 dev 中可以创建的 pod 数量限制为 2 时。如果用户尝试创建 第3个 pod,则其请求将被拒绝

  • kube-controller-manager:由一组称为控制器的 k8s 对象组成在 k8s 中,Controller负责监控和调整在Worker Node上部署的服务的状态,比如用户要求A服务部署2个副本,当其中一个服务挂了,Controller会马上调整,让Scheduler再选择一个Worker Node重新部署服务。
  • kube-scheduler: K8S 所有Worker Node的调度器。当用户要部署服务时,Scheduler会选择最合适的Worker Node(服务器)来部署
  • etcd: K8S的存储服务。etcd存储了K8S的关键配置和用户配置,K8S中仅API Server才具备读写权限,其他组件必须通过API Server的接口才能读写数据

最好是始终确保有 etcd 数据的备份

总结

好了,到这里就简单的说明了k8s内部的一些组件作用和他的一个主要架构,总的来说k8sMaster Node具备:请求入口管理(API Server),Worker Node调度(Scheduler),监控和自动调节(Controller Manager),以及存储功能(etcd);而Worker Node具备:状态和监控收集(Kubelet),网络和负载均衡(Kube-Proxy)、保障容器化运行环境(Container Runtime)

下一篇我们介绍k8s里面一些重要的概念:PodVolume,ContainerDeployment 和 ReplicaSet以及Service和Ingress等。

转载:风向阅读 - Kubernetes 系列:了解 k8s 架构(一)

标签:

最新
  • Kubernetes 系列:了解 k8s 架构(一)-每日报道

    Kubernetes概述当下,我们很多项目于都在`CloudNative`(云原生)的上

  • 甘肃亚盛实业(集团)股份有限公司宝瓶河分公司林地补偿费资金项目(移民安置森林植被恢复建设工程项目)监理中标公示|每日动态

    甘肃国金工程项目管理咨询有限公司受甘肃亚盛实业(集团)股份有限公司

  • 家用经济轿车有哪些?家用经济轿车一般多少钱? 焦点热讯

    家用经济轿车有哪些?1、思域官方指导价 : 12 99-18 79万(获取底

  • 千红制药股票代码是多少?千红制药最新股价是多少?-速读

    千红制药股票代码是多少?002550 千红制药公司是国内生化制药行业多

  • 右转弯转小弯是什么意思_右转小弯方向盘打多少度?_全球今头条

    右转小弯方向盘打150到160度左右,方向盘是汽车、轮船、飞机等的操纵行

  • 毕业典礼上,因爱读书,这些毕业生收到“特别礼物”

    6月20日,无锡职业技术学院的毕业典礼上,陈涵等30位毕业生收到了一份

  • 热议:今日丹麦克朗汇率最新中间价(2023年6月21日)

    今日丹麦克朗汇率最新中间价(2023年6月21日)

  • 天天新消息丨中国平安快速应对宁夏银川烧烤店爆炸事故 已排查到11名出险客户

    6月21日20时40分许,宁夏回族自治区银川市兴庆区民族南街富洋烧烤店操

  • 菜鸟裹裹如何查看身份码(菜鸟裹裹的身份码在哪看)

    菜鸟裹裹如何查看身份码呢,下面是具体操作方法。在手机中打开“菜鸟”

  • 上海警方侦破特大影视投资合同诈骗案 涉案金额达4.9亿余元-今日要闻

    记者20日从上海市公安局获悉,近期,在公安部的统一部署下,上海警方成

  • 投280万收益率达10倍能信吗?安步汽车涉嫌非法集资-今头条

    安步汽车的名字或是取自“安步当车”,然而正处于赴美IPO的这家公司却

  • 全球头条:乌木是什么木材?怎么判断是不是乌木?乌木为什么那么值钱?

    乌木是什么木材?乌木有两种,分别是阴沉木和红木。由地震、洪水、泥

  • 大学生学习动机的激发(如何激发学生的学习动机)-今日要闻

    导读1、一直以来,我们都认为,在教学过程中,学生是学习的主体,教师

  • 演唱会那些没放出来的票,都去哪儿了?-天天观察

    新湖南,主流新媒体,移动新门户。-分享自@新湖南

  • 人均100+畅吃,日本和牛在中国这么便宜?

    一只牛2600万日元,日本和牛凭啥这么贵?

  • 天天最新:一校三园两社区携手做好幼小衔接,马鞍小学教育有方向未来

    2023年6月16日上午,成都市马鞍小学校、金牛区机关第二幼儿园曹家巷分

  • 旅游
    • 【天天报资讯】处女女不会为任何一个人改变自己的生活方式?

    • 焦点讯息:少儿编程培训学校加盟品牌有哪些?开个少儿编程培训一年能赚多少钱?

    • “缩水版”土拍成交1幅宅地 溧水安置房地块底价拍出

    • 3个ChatGPT插件自动写书爆火,更多躺着赚钱玩法可以问AI自己!_全球速读