当前位置: 首页 > article >正文

(二十二)、k8s 中的关键概念

文章目录

  • 1、总体概览
  • 2、第一层:物理机、集群、Node、Pod 之间的关系
  • 2、第二层:命名空间 Namespace
  • 3、定义
  • 4、控制平面(Control Plane)
  • 5、特别的概念 Service
  • 6、Deployment

经过 之前几篇文章对 k8s 的实践,结合实践,对 k8s 中的主要概念进行一下梳理。

1、总体概览

(图片来自互联网)
在这里插入图片描述

2、第一层:物理机、集群、Node、Pod 之间的关系

物理机是构建集群的基础。
集群由多个Node组成,Node 是集群的工作单元。
每个Node可以运行多个Pod,这些 Pod 执行具体的应用程序。

简单说,如下

真实物理机
   └── 集群
       ├── Node 1
       │    ├── Pod A
       │    └── Pod B
       ├── Node 2
       │    └── Pod C
       └── Node 3
            ├── Pod D
            └── Pod E

2、第二层:命名空间 Namespace

在 k8s 中,命名空间(Namespace)是集群内的一种逻辑归类。
由于k8s 的特性,命名空间 只是一种 集群内资源的逻辑归类,该Namespance 所管理的资源具体部署在哪一个 Node 的哪一个Pod 是k8s 自己决定的。

3、定义

  1. 真实物理机(Physical Machine)
    定义:这是运行 Kubernetes 集群的实际硬件。
    角色:提供计算、存储和网络资源。
  2. 集群(Cluster)
    定义:由多个节点(Node)组成的集合,形成一个统一的计算环境。
    角色:管理和调度容器化应用,提供高可用性和负载均衡。
  3. Node
    定义:Kubernetes 集群中的一个工作机器,可以是物理机或虚拟机。
    角色:
    运行容器化应用的实际环境。
    Node 上运行一个或多个 Pod。
    每个 Node 运行一个 Kubelet 进程,用于管理 Pod。
  4. Pod
    定义:Kubernetes 中的最小可部署单位,表示一个或多个容器的集合,通常共享网络和存储。
    角色:
    执行应用程序的实际实例。
    可以包含一个或多个容器,通常是紧密相关的服务。
  5. 命名空间(Namespace)
    定义:Kubernetes 中的一种逻辑隔离机制,用于将资源分组。
    角色:
    提供资源的隔离和组织,允许在同一集群中创建多个环境(如开发、测试、生产)。
    同一命名空间内的资源可以互相访问,而不同命名空间间的资源需要明确的网络策略。

4、控制平面(Control Plane)

在 Kubernetes 中,控制平面(Control Plane)是负责管理和协调集群的组件集合。它确保集群的状态与用户的期望相符,处理所有的管理任务。以下是控制平面的主要组成部分及其功能:

  1. 主要组件
    kube-apiserver:
    提供集群的 API 接口,所有的操作(如创建、更新、删除资源)都是通过 API Server 进行的。
    负责验证和处理 API 请求,并将其存储在 etcd 中。
    etcd:
    一个高可用的键值存储系统,用于保存 Kubernetes 集群的所有数据和状态信息。
    作为集群的后端存储,提供数据的持久性和一致性。
    kube-scheduler:
    负责将新创建的 Pod 调度到适合的 Node 上。
    根据 Node 的资源、标签、污点等信息做出调度决策。
    kube-controller-manager:
    运行各种控制器,负责监控集群状态并执行相应的操作。
    常见的控制器包括节点控制器、复制控制器、端点控制器等。它们确保集群中资源的实际状态与期望状态一致。
  2. 控制平面的功能
    集群管理:控制平面负责整个集群的管理和协调,确保资源的创建、更新和删除操作能够顺利执行。
    状态监控:通过控制器,控制平面持续监控集群状态,并根据需要进行调整,确保系统的健康状态。
    负载均衡:调度器确保 Pod 在集群中均匀分布,优化资源利用率。
  3. 与数据平面的关系
    数据平面(Data Plane)指的是实际运行应用的 Node 和 Pod。控制平面与数据平面分离,确保集群的管理与应用的运行相互独立。
    控制平面通过 API 与数据平面进行通信,发出指令,而数据平面负责执行这些指令。
    总结
    控制平面是 Kubernetes 的核心,负责集群的管理、调度和状态监控。它与数据平面紧密配合,确保集群能够高效、稳定地运行。通过这种分离的架构,Kubernetes 能够实现高可用性和灵活的扩展性。

5、特别的概念 Service

Service 是 Kubernetes 中一个非常重要的概念。下面是对 Kubernetes 中 Service 的详细介绍,包括其功能和工作原理。

Service 的定义
Service 是 Kubernetes 中用于定义一组 Pod 的访问策略的抽象。它为这些 Pod 提供了一个稳定的网络标识和访问方式,即使 Pod 的 IP 地址发生变化,Service 仍然可以保持稳定的访问。

主要功能
负载均衡:
Service 可以将流量分发到一组后端 Pod 上,确保请求能够均匀地分配,提升服务的可用性和性能。
稳定的访问点:
Pod 的 IP 地址可能会变化(例如,Pod 重启或调度到其他 Node),但 Service 提供了一个固定的 DNS 名称和 IP 地址,客户端可以通过这个稳定的接口访问 Pod。
服务发现:
Kubernetes 自动为每个 Service 创建 DNS 记录,允许其他 Pod 通过 Service 名称进行访问,简化了服务间的连接。
Service 的类型
Kubernetes 中有几种不同类型的 Service,每种类型适用于不同的场景:

ClusterIP(默认类型):
只在集群内部可访问,提供一个内部 IP 地址,用于在集群内进行服务发现。
NodePort:
在每个 Node 上开放一个端口,允许外部访问。通过 Node 的 IP 地址和指定的 NodePort,可以访问 Service。
LoadBalancer:
在云环境中使用时,自动创建一个外部负载均衡器,并将其分配给 Service。适合需要外部访问的服务。
ExternalName:
将 Service 映射到外部的 DNS 名称,允许 Kubernetes 集群中的 Pod 通过 Service 名称访问外部服务。
工作原理
选择器(Selector):
Service 使用标签选择器(Label Selector)来确定其后端 Pod。只有与选择器匹配的 Pod 会接收流量。
端点(Endpoints):
Kubernetes 会自动创建和维护 Endpoints 对象,它代表与 Service 相关联的 Pod 的 IP 地址和端口。当 Pod 的状态变化时,Endpoints 会自动更新。
网络代理:
Kube-proxy 运行在每个 Node 上,负责实现 Service 的负载均衡和网络代理。它根据 Service 的类型配置网络规则,将流量转发到后端 Pod。
总结
Service 是 Kubernetes 中连接和管理 Pod 的关键组件,提供了稳定的访问点、负载均衡和服务发现能力。通过不同的 Service 类型,用户可以灵活地配置服务的访问方式,满足不同的需求。

6、Deployment

定义:Deployment 是一种较高层次的 Kubernetes 资源,用于管理 Pod 的副本和生命周期。它定义了所需的 Pod 数量以及如何更新这些 Pod。
自动化管理:Deployment 可以自动处理 Pod 的创建、更新、回滚和故障恢复。它监控当前的 Pod 状态,并确保期望的状态(如 Pod 的副本数)与实际状态一致。
滚动更新:Deployment 支持滚动更新,可以在不影响服务可用性的情况下逐步更新 Pod。
用途:适用于需要高可用性和可扩展性的应用,通常在生产环境中使用。


http://www.kler.cn/news/368158.html

相关文章:

  • shodan2---清风
  • 【随手笔记】远程升级之如何平衡下载包大小与速率?
  • MySQL-事务隔离级别
  • 【WiFi7】 支持wifi7的手机
  • 【ChatGPT】让ChatGPT帮助进行头脑风暴与创意生成
  • S-Function
  • 动态规划 —— 斐波那契数列模型-解码方法
  • StringBuilder
  • 信息学奥赛复赛复习18-CSP-J2023-01小苹果-向上取整、向下取整、模拟算法
  • WHAT - Excel 文件上传解析与编码
  • 大语言模型使用和测评
  • 【C++修炼进程之练气】初识《类与对象 超详细》❤️
  • 【算法】Bellman-Ford单源最短路径算法(附动图)
  • 【LeetCode:263. 丑数 + 数学】
  • 【已解决,含泪总结】非root权限在服务器上配置python和torch环境,代码最终成功训练(一)
  • 设计模式——过滤器模式
  • 脚本-把B站缓存m4s文件转换成mp4格式
  • vue通过JSON文件生成KML文件源码
  • There is no screen to be resumed matching xxx【解决方案、screen、原因分析】
  • 《2024中国泛娱乐出海洞察报告》解析,垂直且多元化方向发展!
  • linux驱动—注册驱动分析
  • 使用Python计算相对强弱指数(RSI)进阶
  • HarmonyOS NEXT 应用开发实战(八、知乎日报List列表下拉刷新及上滑加载更多分页的实现)
  • Vue引入高德地图自定义信息窗体绑定点击事件无效解决方案
  • anaconda 创建环境失败 解决指南
  • 【刷题10】2024.10.26