当前位置:首页 > 科技  > 软件

Kubernetes 内部原理:架构

来源: 责编: 时间:2023-09-20 21:56:12 426观看
导读在本文中,我们将深入探讨 Kubernetes 架构,并探讨其关键组件。一个 Kubernetes 集群由两个主要组件组成:控制平面节点工作节点控制平面控制平面是 Kubernetes 集群的“大脑”,它协调和编排各种组件,以确保系统的期望状态得

在本文中,我们将深入探讨 Kubernetes 架构,并探讨其关键组件。omS28资讯网——每日最新资讯28at.com

一个 Kubernetes 集群由两个主要组件组成:omS28资讯网——每日最新资讯28at.com

  • 控制平面节点
  • 工作节点

omS28资讯网——每日最新资讯28at.com

以下是重要的内置 Kubernetes 控制器列表:omS28资讯网——每日最新资讯28at.com

  • Node Controller:负责监控集群中的节点状态。它会检测节点故障并启动操作以替换失败的节点或将 pod 重新调度到健康的节点。
  • Replication Controller:确保 pod 的指定副本数始终运行。根据需要创建或终止 pod 以维护所需的副本计数。
  • Deployment Controller:扩展了 Replication Controller 的功能,允许您以声明性方式定义和管理应用程序部署。它支持滚动更新、回滚和扩展。
  • StatefulSet Controller:通过确保稳定和有序的扩展和升级,管理有状态应用程序。它为每个 pod 分配唯一的网络标识,并在重新调度时保持其标识。
  • **Daemon

Set Controller**:确保在所有或一部分节点上运行特定 pod 的副本。通常用于任务,如节点监视代理或网络组件。omS28资讯网——每日最新资讯28at.com

  • Job Controller:管理批处理作业,确保特定任务或作业的完成次数达到了指定的要求。
  • CronJob Controller:允许您使用类似于 cron 的语法在指定间隔内调度任务。它根据定义的计划创建作业。
  • Namespace Controller:确保集群中的每个命名空间都具有一组相应的资源,并强制资源隔离。
  • Service Account 和 Token Controller:自动为命名空间中的 pod 创建默认帐户和访问令牌。
  • Service Controller:监视服务和端点,并根据创建、删除或重新调度 pod 的情况更新它们。
  • Endpoint Controller:维护 endpoint 对象,根据标签选择器将服务与 pod 匹配。

5. 云控制器管理器 (CCM)

当 Kubernetes 部署在云环境中时,云控制器管理器充当 Kubernetes 集群和云平台 API 之间的桥梁。它管理 Kubernetes 使用的云特定资源的生命周期。omS28资讯网——每日最新资讯28at.com

omS28资讯网——每日最新资讯28at.com

(1)它从主 Kubernetes 控制平面中卸载了云特定的控制循环和功能,减少了其复杂性,使其更易于维护和扩展。omS28资讯网——每日最新资讯28at.com

(2)它托管各种云特定控制器,负责管理特定于云提供商的资源。这些控制器包括:omS28资讯网——每日最新资讯28at.com

  • Node Controller:管理 Kubernetes 节点与云实例之间的交互,处理节点的生命周期操作,如创建、删除和调整大小。
  • Route Controller:处理服务的云特定网络配置,例如创建负载均衡器或管理 IP 地址。
  • Volume Controller:与云存储服务集成,以云特定方式提供和管理持久卷。
  • Service Controller:与云提供商的负载均衡器服务互动,以创建、管理和更新 Kubernetes 服务的负载均衡器。

(3)CCM 管理云资源,确保它们与 Kubernetes 资源定义的期望状态相匹配。例如,它可能根据缩放要求创建或释放云实例。omS28资讯网——每日最新资讯28at.com

(4)它与云提供商的 API 进行通信,执行操作,例如创建实例、配置网络、管理存储资源等。omS28资讯网——每日最新资讯28at.com

(5)它确保适当管理安全设置和凭据,与云服务交互时进行管理。omS28资讯网——每日最新资讯28at.com

工作节点

工作节点负责运行容器化应用程序。它包括以下组件。omS28资讯网——每日最新资讯28at.com

omS28资讯网——每日最新资讯28at.com

  • kubelet
  • kube-proxy
  • 容器运行时

1. Kubelet

Kubelet 是 Kubernetes 控制平面和节点上运行的容器之间的关键桥梁,确保集群的期望状态得以实现和维护。omS28资讯网——每日最新资讯28at.com

它在集群中的每个节点上运行一个代理组件,以将节点的状态和资源利用率报告给 Kubernetes 控制平面。它不以容器形式运行,而是由 systemd 管理的守护程序。omS28资讯网——每日最新资讯28at.com

omS28资讯网——每日最新资讯28at.com

以下是 kubelet 的主要功能和职责:omS28资讯网——每日最新资讯28at.com

  • 节点代理:kubelet 充当每个节点上的代理,将节点的状态和容器的健康状况报告给 Kubernetes 控制平面。
  • 健康监控:kubelet 连续监控 pod 中的容器的健康状况。如果容器崩溃或变得不健康,kubelet 会采取适当的措施,如重新启动容器或整个 pod。
  • Pod 管理:kubelet 管理节点上 pod 的状态。它确保根据从 Kubernetes API 服务器接收的 pod 定义,指定的 pod 正在运行且健康。
  • Pod 网络:kubelet 与网络插件协作,为节点上的 pod 设置网络。它为 pod 分配 IP 地址,并确保容器可以相互通信以及与外部世界通信。
  • 卷管理:kubelet 管理 pod 定义中指定的卷,根据需要附加和分离卷。它确保数据持久性并允许容器访问共享存储。
  • 资源管理:kubelet 强制执行 pod 定义中指定的资源约束,确保容器不会超出分配的 CPU 和内存限制。它还处理对 CPU 和内存等资源的请求。
  • 驱逐和清理:当节点上的资源变得稀缺时,kubelet 可以根据预定义的策略从 pod 中驱逐 pod,以释放资源。它还在 pod 终止时清理任何剩余的资源。
  • 节点注册:kubelet 向 Kubernetes 控制平面注册节点,使控制平面能够知道可用于调度 pod 的节点。

2. Kube 代理

Kube 代理,即 Kubernetes 代理,是运行在 Kubernetes 集群中每个节点上的网络代理。其主要功能是管理 pod 和服务之间的网络通信,为容器化应用程序提供可靠和一致的网络环境。它负责以下任务:omS28资讯网——每日最新资讯28at.com

  • 服务发现:Kube 代理负责在集群内启用服务发现。它根据服务规范中定义的标签和选择器,维护网络规则,将请求从服务转发到适当的 pod。
  • 负载均衡:Kube 代理为具有多个副本或实例的服务实施负载均衡。它将传入请求分发给与服务的选择条件相匹配的可用 pod。
  • 网络地址转换(NAT):Kube 代理对出站流量执行网络地址转换(NAT)。这确保来自 pod 的流量看起来是从主机的 IP 地址发出的,从而允许外部系统正确响应。
  • ClusterIP 服务:对于 ClusterIP 服务(仅在集群内部可访问),Kube 代理设置 IPTables 规则,将流量转发到根据其标签选择器匹配的正确 pod。
  • NodePort 服务:Kube 代理配置主机的防火墙,以将传入流量转发到 NodePort 服务的适当 pod。这允许使用每个节点上的静态端口外部访问服务。
  • 高可用性:Kube 代理致力于确保服务的高可用性。如果 pod 不可用或添加/删除了,Kube 代理会自动更新网络配置以正确路由流量。
  • 健康检查:Kube 代理监视与服务相关的端点和 pod 的健康状况。如果 pod 变得不健康,Kube 代理停止转发流量。

3. 容器运行时

容器运行时环境负责根据 pod 规范创建、启动、停止和管理容器。omS28资讯网——每日最新资讯28at.com

一些常用的 Kubernetes 容器运行时包括 Docker、containerd、CRI-O、rkt(发音为 "rocket")等。omS28资讯网——每日最新资讯28at.com

  • 容器管理:容器运行时环境负责根据 pod 定义创建、启动、停止和管理容器。
  • 镜像管理:它根据 pod 定义中指定的镜像引用从容器仓库(如 Docker Hub、Google Container Registry 等)拉取容器镜像。
  • 资源隔离和管理:运行时环境确保容器根据其 pod 配置中指定的 CPU、内存和其他资源拥有适当的资源级别。
  • 网络和通信:它设置容器的网络,确保它们可以相互通信以及与集群内外的服务通信。这可能涉及配置网络命名空间、IP 地址和端口映射。
  • 容器安全性:运行时环境通过强制容器之间的隔离,防止它们访问彼此的文件系统或资源。它还可能实施其他安全措施,如 AppArmor 或 SELinux。
  • 卷和存储管理:运行时环境管理附加到容器的卷,确保数据持久性并允许容器访问共享存储。
  • 生命周期管理:它处理容器的完整生命周期,包括启动、停止、重启和清理容器。
  • 健康监控和重启:运行时环境监视容器的健康状况,并可以自动重启崩溃或变得不健康的容器。
  • 与硬件和内核的交互:运行时环境与主机操作系统的内核进行交互,管理容器资源使用、网络命名空间、进程隔离和其他低级操作。

Kubernetes 的架构促进了分布式微服务导向的方法,使开发人员可以专注于应用程序逻辑,而平台负责部署、扩展和负载均衡。omS28资讯网——每日最新资讯28at.com

无论是在本地、云中还是混合环境中,Kubernetes 的架构使组织能够高效地管理复杂的容器化工作负载,同时秉承模块化、抽象和自动化的原则。omS28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-10526-0.htmlKubernetes 内部原理:架构

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 保障SaaS应用安全的关键要求和检查清单

下一篇: 为什么在 C++14 中删除了 get 函数?

标签:
  • 热门焦点
  • 石头智能洗地机A10 Plus体验:双向自清洁治好了我的懒癌

    一、前言和介绍专为家庭请假懒人而生的石头科技在近日又带来了自己的全新旗舰新品,石头智能洗地机A10 Plus。从这个产品名上就不难看出,这次石头推出的并不是常见的扫地机器
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析

    在 Elasticsearch 中,function_score 可以让我们在查询的同时对搜索结果进行自定义评分。function_score 提供了一系列的参数和函数让我们可以根据需求灵活地进行设置。近期
  • 自动化在DevOps中的力量:简化软件开发和交付

    自动化在DevOps中扮演着重要角色,它提升了DevOps的效能。通过自动化工具和方法,DevOps团队可以实现以下目标:消除手动和重复性任务。简化流程。在整个软件开发生命周期中实现更
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 三星折叠屏手机去年销售近1000万台 今年目标定为1500万

    7月29日消息,三星率先发力可折叠手机市场,在全球市场已经取得了非常亮眼的成绩,接下来会进一步巩固和扩大这一优势。三星在推出Galaxy Z Flip5和Galax
Top