(二十二)、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.mzph.cn/news/883714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT 中彻底解决中文乱码问题的指南

在使用 QT 进行开发时,中文乱码问题是许多开发者常遇到的困扰。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍在 QT 中彻底解决中文乱码问题的方法,帮助开发者创建更友好的应用程序。 一、中文乱码问题的原因 在 QT 中出现中文…

appium文本输入的多种形式

目录 一、send_keys方法 二、press_keycode方法 三、subprocess方法直接通过adb命令输入 一、send_keys方法 这个是最常用的方法,不过通常使用时要使用聚焦,也就是先点击后等待: element wait.until(EC.presence_of_element_located((By…

AI模型库 : 下一个大型供应链攻击目标

像 Hugging Face 这样的AI模型平台,很容易受到攻击者多年来通过 npm、PyPI 和其他开源存储库成功执行的同类攻击的影响 Hugging Face 等AI模型存储库为攻击者提供了与 npm 和 PyPI 等开源公共存储库相同的将恶意代码植入开发环境的机会。 在今年 4 月即将举行的 Bl…

元学习-学习笔记

学习视频:火炉课堂 | 元学习(meta-learning)到底是什么鬼?_哔哩哔哩_bilibili 一、从传统机器学习到元学习 我们传统的机器学习,是手工设计一个模型,然后将训练数据投进模型中进行训练,得到一个最优的模型参数&#x…

bytetrack训练日志解读和相应源码分析

文章目录 日志结构训练过程概述评估结果对应代码80个周期665次迭代概念说明损失值日志结构 2024-10-12 09:04:25 | INFO | yolox.core.trainer:179 - Training start.

文件inode

磁盘结构: 众所周知扇面是磁盘存储数据的地方,而一个磁盘有个6个磁盘面,而磁头指向都是相同半径的扇面,所以我们可以抽象出来一个三维指针; 这样我们就抽象出来了一个磁盘,而我们的每个磁盘面都有相同名字…

微信小游戏function signature mismatch,RuntimeError: function signature mismatch

我看网上很多人再搜,没有解决方案。开一下尘封多年的博客,希望能帮到有缘人。 除了其他人发的插件版本问题,缓存问题,华佗问题。 我遇到还有个情况是 Task语法和 Enable Exceptions to Full Without Stacktrace 组合的问题。 如…

MES系列- 统计过程分析(SPC)实现

MES系列文章目录 ISA-95制造业中企业和控制系统的集成的国际标准-(1) ISA-95制造业中企业和控制系统的集成的国际标准-(2) ISA-95制造业中企业和控制系统的集成的国际标准-(3) ISA-95制造业中企业和控制系统的集成的国际标准-(4) ISA-95制造业中企业和控制系统的集成的国际标准…

MMA: Multi-Modal Adapter for Vision-Language Models

两个观察 图1所示。各种基于transformer的CLIP模型中不同层的数据集级识别精度。这个实验是为了确定样本属于哪个数据集。我们用不同的种子运行了三次,并报告了每层识别精度的平均值和标准差。 X E m b e d XEmbed XEmbed是指变压器块之前的文本或图像嵌入层&#x…

外包干了7天,技术明显退步。。。。。

先说一下自己的情况,本科生,22年通过校招进入南京某软件公司,干了接近2年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

【银河麒麟高级服务器操作系统·实例分享】裸金属服务器开机失败分析及处理建议

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 现象描述 裸金属物理服务器开机卡在EFI stub页面…

怎么在抖音视频里标注店铺定位信息?

随着短视频平台的兴起,抖音作为短视频领域的佼佼者,凭借其庞大的用户基础和强大的营销工具,已然成为了众多商家推广业务、吸引顾客的重要平台。通过在抖音视频中准确标注店铺定位信息,不仅能增加店铺的曝光率,还能方便…

Spring 设计模式之策略模式

Spring 设计模式之策略模式 策略模式构成部分java举例 策略模式 策略模式:允许定义一系列算法,并将每一个算法封装起来,使它们可以互相替换,且算法的变化可以独立于使用它们的客户端。 构成部分 Context(上下文&…

.NET 8 Web API 中的身份验证和授权

本次介绍分为3篇文章: 1:.Net 8 Web API CRUD 操作.Net 8 Web API CRUD 操作-CSDN博客 2:在 .Net 8 API 中实现 Entity Framework 的 Code First 方法https://blog.csdn.net/hefeng_aspnet/article/details/143229912 3:.NET …

详解Java之Spring MVC篇一

目录 Spring MVC 官方介绍 MVC RequestMapping 传递参数 无参数 单个参数 针对String类型 针对Integer类型 针对int类型 针对自定义类型 多个参数 参数重命名 参数强制一致 参数不强制一致 传递数组 ​编辑传递List ​编辑 传递JSON ​编辑 从路径中获取参…

Android demo文件内容记录

<style name"Theme.Demo1" parent"Theme.MaterialComponents.DayNight.DarkActionBar"><!-- Primary brand color. --><item name"colorPrimary">color/purple_500</item>//状态栏的背景色&#xff0c;优先级小于androi…

什么是微服务中的反应性扩展?

大家好&#xff0c;我是锋哥。今天分享关于【什么是微服务中的反应性扩展&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 什么是微服务中的反应性扩展&#xff1f; Reactive Extensions 也称为 Rx。这是一种设计方法&#xff0c;我们通过调用多个服务来收集结果…

Atlas800昇腾服务器(型号:3000)—Docker容器部署【图像分类】(十)

服务器配置如下&#xff1a; CPU/NPU&#xff1a;鲲鹏 CPU&#xff08;ARM64&#xff09;A300I pro推理卡 系统&#xff1a;Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本&#xff1a; Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-…

IDE(集成开发环境)

IDE&#xff08;集成开发环境&#xff09;是软件开发过程中不可或缺的工具&#xff0c;它集成了代码编写功能、分析功能、编译器、调试器等开发工具&#xff0c;旨在提高开发效率。不同的IDE支持不同的语言和框架&#xff0c;下面是一些通用的IDE使用技巧和插件推荐&#xff0c…

是PM啦45天考证攻略

作为一个曾经是新手小白的人来说&#xff0c;距离我成功上岸PMP已经过去有些年了。对于如何考PMP&#xff0c;我不敢说我很了解&#xff0c;但我起码能把我备考的经历和过程在这里告诉大家。 考PMP的成本很大&#xff0c;时间和精力都很大&#xff0c;所以我们要考虑清楚自身的…