Kubernetes(K8s)简介

devtools/2024/9/24 3:10:48/

Kubernetes(K8s)是一个开源的容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。它提供了一个强大的基础架构,使得用户能够轻松地部署、管理和扩展容器化的应用程序,并能够有效地利用计算资源。

在 Kubernetes 中,Master 组件是集群的控制平面,负责管理整个集群的操作和状态。以下是 Kubernetes 中 Master 组件的主要组成部分:

  1. kube-apiserver(API 服务器):作为整个 Kubernetes 系统的入口,提供了 RESTful API,用于集群管理和控制。所有的集群操作,包括创建、更新和删除资源对象(如 Pod、Service、Deployment 等),都通过 kube-apiserver 进行。

  2. etcd(分布式键值存储):保存了整个集群的状态信息,包括配置数据、元数据、状态信息等。etcd 是一个分布式、高可用的键值存储系统,对于集群的正确运行至关重要。

  3. kube-scheduler(调度器):负责将新创建的 Pod 分配到集群中的节点上。kube-scheduler 根据一系列的策略和约束条件(如资源需求、硬件约束、亲和性和反亲和性等)选择最合适的节点,并将 Pod 调度过去。

  4. kube-controller-manager(控制器管理器):包含了多个控制器,用于监控集群中各种资源对象的状态,并根据期望状态和实际状态之间的差异进行调节。常见的控制器包括 ReplicaSet、Deployment、Service、Node 等。

  1. Node Controller:Node Controller 负责监视节点的状态,并在节点变为不可用或丢失时采取行动。它确保集群中的节点数量满足最小可用性要求,如果有节点故障,则会将该节点上的 Pod 调度到其他可用节点上。

  2. Replication Controller:Replication Controller 确保集群中指定数量的 Pod 副本保持运行。如果由于节点故障或其他原因导致 Pod 副本不足,Replication Controller 将启动新的 Pod 副本以恢复到期望的状态。

  3. Endpoints Controller:Endpoints Controller 负责将 Service 与其对应的 Pod IP 地址和端口进行关联。当创建或删除 Service 时,Endpoints Controller 更新相关的 Endpoints 对象,以便服务发现和负载均衡正常工作。

  4. Service Account & Token Controllers:Service Account Controller 管理 Service Account 对象,用于身份验证和授权。Token Controller 负责为新的 Service Account 创建访问令牌,以便 Pod 可以通过 API 访问其他资源。

  5. ResourceQuota Controller:ResourceQuota Controller 管理资源配额,限制每个命名空间中的资源使用量。它监控集群中的资源使用情况,并在达到配额限制时阻止进一步的资源分配。

  6. Namespace Controller:Namespace Controller 管理命名空间对象,负责创建、删除和更新命名空间,并确保命名空间的资源隔离和访问控制。

  7. Service Controller:Service Controller 监视 Service 对象的状态,并根据需要创建、更新或删除相关的负载均衡器。它确保 Service 对外提供的网络服务是可用的,并在需要时更新负载均衡规则。

在 Kubernetes 中,Node 组件是集群中工作节点的组成部分,负责运行应用容器、监控节点状态以及与 Master 组件进行通信。以下是 Kubernetes 中 Node 组件的主要组成部分:

  1. kubelet(Kubernetes 客户端):kubelet 是每个节点上的主要代理程序,负责管理节点上的容器和 Pod。它与 Master 节点的 kube-apiserver 通信,接收关于 Pod 的创建、更新和删除等指令,并确保节点上的容器状态与期望状态一致。

  2. kube-proxy(Kubernetes 代理):kube-proxy 负责维护节点上的网络规则,实现 Kubernetes 服务的负载均衡和服务发现功能。它监听 kube-apiserver 上的服务和端点的变化,并相应地更新节点上的网络规则。

  3. Container Runtime(容器运行时):Kubernetes 支持多种容器运行时,如 Docker、containerd、cri-o 等。这些容器运行时负责管理节点上的容器生命周期,包括镜像管理、容器创建、启动、停止和删除等操作。

  4. kubelet CRI 插件(可选):如果使用的容器运行时支持 Container Runtime Interface (CRI),则 kubelet 通过 CRI 插件与容器运行时进行通信,以管理容器的生命周期。

  5. CNI 插件(Container Network Interface,可选):用于配置和管理节点上的容器网络。CNI 插件负责为容器分配 IP 地址、创建网络命名空间、设置网络规则等,以确保容器之间可以相互通信。

  6. 容器存储接口(CSI,可选):如果需要在容器中使用持久化存储,可以通过容器存储接口(CSI)与存储后端进行交互。CSI 允许 Kubernetes 中的卷插件将持久化存储资源(如云盘、网络存储等)挂载到 Pod 中。


http://www.ppmy.cn/devtools/40733.html

相关文章

前端内嵌iframe网页单点登录的三种方式

背景:我们开发中会遇到让内嵌的iframe进行登录,但是有希望是单点登录,不想多次登录 目录 方法一:共享sessionStorage或localStorage 方法二:设置内嵌iframe的url参数 方法三:通过父子页面通信postMessage…

Android广播机制简介

文章目录 Android广播机制简介广播的基本概念广播的类型广播的使用场景Android广播的优缺点优点缺点 使用Android广播的一些最佳实践: Android广播机制简介 Android广播是一种轻量级的消息传递机制,用于应用程序之间或系统与应用程序之间进行通信。它类似于订阅-发…

9. 学习distribute by rand()

文章目录 1、rand()和rand(int seed)2、distribute by3、distribute by rand和生成文件数的关系set hive.exec.reducers.max 对比 set mapred.reduce.tasks 4、distribute by rand的风险5、hive 中什么场景下会使用 distirbute by rand() 呢?学习链接 1、rand()和ra…

基础ArkTS组件:二维码,滚动条与滑动条,多选框与多选框群组(HarmonyOS学习第三课【3.4】)

二维码组件 QRCode 子组件 无 接口 QRCode(value: string) 参数: 参数名 参数类型 必填 参数描述 value string 是 二维码内容字符串。最大支持256个字符,若超出,则截取前256个字符。 说明: 该字符串内容确保有效,不支…

LeetCode 138. 随机链表的复制

目录 1.原题链接: 2.结点拆分: 代码实现: 3.提交结果: 4.读书分享: 1.原题链接: 138. 随机链表的复制 2.结点拆分: ①.拷贝各个结点,连接在原结点后面; ②.处…

防火墙技术基础篇:网络地址转换(NAT):防火墙技术的核心机制

防火墙技术基础篇:网络地址转换(NAT):防火墙技术的核心机制 网络地址转换(NAT)是现代网络架构中不可或缺的一个组成部分,尤其在防火墙技术的实现中扮演着重要角色。本文旨在全面解读NAT的工作机…

eNSP中小型园区网络拓扑搭建(下)

→b站直通车,感谢大佬← →eNSP中小型园区网络拓扑搭建(上)← 不带配置命令的拓扑图已上传~ 配置ospf SW5 # ospf 1 router-id 5.5.5.5area 0.0.0.0network 192.168.51.5 0.0.0.0network 192.168.52.5 0.0.0.0area 0.0.0.10network 192.1…

图片转表格的免费软件,这几款值得收藏!

在数字化时代,图片转表格的需求日益增多。无论是工作汇报、数据分析还是学术研究,将图片中的信息转化为表格都能极大地提高工作效率。然而,许多人在面对这一任务时,往往感到无从下手。今天,我将为大家推荐几款免费的图…