Kubernetes(k8s)容器编排组件介绍


1 整体架构

在这里插入图片描述

下图清晰表明了 Kubernetes 的架构设计以及组件之间的通信协议。

在这里插入图片描述

下面是更抽象的一个视图

在这里插入图片描述

1.1 Master 架构

在这里插入图片描述

1.2 Node 架构

在这里插入图片描述

2 k8s部署组件介绍

我们把一个有效的 Kubernetes 部署称为集群,您可以将 Kubernetes 集群可视化为两个部分:

	控制平面与计算设备(或称为节点),每个节点都是其自己的 Linux环境,并且可以是物理机或虚拟机,每个节点都运行由若干容器组成的容器集。

2.1 K8s 集群架构图

以下 K8s 架构图显示了 Kubernetes 集群的各部分之间的联系:

在这里插入图片描述

2.2 k8s控制组件

2.2.1 控制平面

K8s 集群的神经中枢

	让我们从 Kubernetes 集群的神经中枢(即控制平面)开始说起。在这里,我们可以找到用于控制集群的 Kubernetes 组件以及一些有关集群状态和配置的数据,这些核心 Kubernetes 组件负责处理重要的工作,以确保容器以足够的数量和所需的资源运行。 

	控制平面会一直与您的计算机保持联系。集群已被配置为以特定的方式运行,而控制平面要做的就是确保万无一失。

2.2.2 kube-apiserver

K8s 集群API,如果需要与您的 Kubernetes 集群进行交互,就要通过 API

	Kubernetes API 是 Kubernetes 控制平面的前端,用于处理内部和外部请求。API 服务器会确定请求是否有效,如果有效,则对其进行处理,您可以通过 REST 调用、kubectl 命令行界面或其他命令行工具(例如 kubeadm)来访问 API。

2.2.3 kube-scheduler

K8s 调度程序,您的集群是否状况良好?如果需要新的容器,要将它们放在哪里?这些是 Kubernetes 调度程序所要关注的问题。

	调度程序会考虑容器集的资源需求(例如 CPU 或内存)以及集群的运行状况。随后,它会将容器集安排到适当的计算节点。

2.2.4 kube-controller-manager

K8s 控制器,控制器负责实际运行集群,而 Kubernetes 控制器管理器则是将多个控制器功能合而为一

	控制器用于查询调度程序,并确保有正确数量的容器集在运行。如果有容器集停止运行,另一个控制器会发现并做出响应。控制器会将服务连接至容器集,以便让请求前往正确的端点。还有一些控制器用于创建帐户和 API 访问令牌。

2.2.5 etcd

键值存储数据库

	配置数据以及有关集群状态的信息位于 etcd(一个键值存储数据库)中。etcd 采用分布式、容错设计,被视为集群的最终事实来源。

2.3 k8s运行组件

2.3.1 k8s节点

Kubernetes 集群中至少需要一个计算节点,但通常会有多个计算节点。

	容器集经过调度和编排后,就会在节点上运行。如果需要扩展集群的容量,那就要添加更多的节点。

2.3.2 容器集

容器集是 Kubernetes 对象模型中最小、最简单的单元。

	它代表了应用的单个实例。每个容器集都由一个容器(或一系列紧密耦合的容器)以及若干控制容器运行方式的选件组成。容器集可以连接至持久存储,以运行有状态应用。

2.3.3 容器运行时引擎

为了运行容器,每个计算节点都有一个容器运行时引擎。

	比如 Docker,但 Kubernetes 也支持其他符合开源容器运动(OCI)标准的运行时,例如 rkt 和 CRI-O。

2.3.4 kubelet

每个计算节点中都包含一个 kubelet,这是一个与控制平面通信的微型应用。

	kublet 可确保容器在容器集内运行,当控制平面需要在节点中执行某个操作时,kubelet 就会执行该操作。

2.3.5 kube-proxy

每个计算节点中还包含 kube-proxy,这是一个用于优化 Kubernetes 网络服务的网络代理。

	kube-proxy 负责处理集群内部或外部的网络通信——靠操作系统的数据包过滤层,或者自行转发流量。

2.4 k8s 存储组件

2.4.1 持久存储

除了管理运行应用的容器外,Kubernetes 还可以管理附加在集群上的应用数据。

	Kubernetes 允许用户请求存储资源,而无需了解底层存储基础架构的详细信息。持久卷是集群(而非容器集)所特有的,因此其寿命可以超过容器集。

2.4.2 容器镜像仓库

Kubernetes 所依赖的容器镜像存储于容器镜像仓库中。

	这个镜像仓库可以由您自己配置的,也可以由第三方提供。

2.4.3 底层基础架构

您可以自己决定具体在哪里运行 Kubernetes。

	答案可以是裸机服务器、虚拟机、公共云提供商、私有云和混合云环境。Kubernetes 的一大优势就是它可以在许多不同类型的基础架构上运行。

3 k8s安装部署

Kubernetes(k8s)环境部署:https://blog.csdn.net/ZGL_cyy/article/details/124682630

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kubernetes是一个高度可扩展的容器编排平台,它由多个组件组成,每个组件都有不同的职责和功能。下面是Kubernetes中各个组件的详细介绍: 1. kube-apiserver:Kubernetes API Server是所有操作的入口,负责接收和处理API请求,然后将其存储在etcd中。它还控制Kubernetes中所有的资源对象,如pods、services、replication controllers等。 2. etcd:Kubernetes使用etcd作为其分布式键值存储,用于存储集群状态和配置信息。etcd是Kubernetes的基础,它提供了高可用性、强一致性和高性能的数据存储。 3. kube-scheduler:Kubernetes调度器负责将新创建的Pod分配到可用的节点上。它基于一系列规则和策略来选择最佳的节点。 4. kube-controller-manager:Kubernetes控制器管理器是一组控制器的集合,它们用于监控和控制Kubernetes集群中的各种资源对象。其中包括Node Controller、Replication Controller、Endpoints Controller等。 5. kubelet:Kubelet是Kubernetes节点上的代理程序,负责管理节点上的容器容器组。它会定期从API Server获取Pod的配置信息,并根据配置信息创建、启动、停止和销毁容器。 6. kube-proxy:Kubernetes代理程序是负责在节点之间进行网络代理和负载均衡的组件。它通过iptables或IPVS规则实现服务发现和路由。 7. Container Runtime:Kubernetes支持多种容器运行时,包括Docker、CRI-O和containerd等。容器运行时负责启动、停止和管理容器。 总之,Kubernetes中的各个组件都是相互关联的,它们协同工作以提供高度可用、可扩展、自动化的容器编排平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

赵广陆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值