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

news2024/11/26 11:13:47

文章目录

  • 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.coloradmin.cn/o/2223117.html

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

相关文章

立仪科技:光谱共焦传感器在玻璃领域的革命性突破

光谱共焦传感器,一种基于光谱共焦原理的高精度位移测量装置,近年来在玻璃等透明材料的厚度测量和表面形貌检测中展现出了巨大的应用潜力。立仪科技小编将深入探讨光谱共焦传感器在玻璃测量中的技术优势,并分析其解决方案。 一、光谱共焦传感器…

庆祝程序员节:聊一聊编程语言的演变

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

毕业设计 基于STM32单片机健康检测/老人防跌倒系统 心率角度检测GSM远程报警 (程序+原理图+元件清单全套资料)

文章目录 前言一、主要功能介绍二、硬件设计硬件实物展示 三、软件设计四、总结资料与实物获取方式 前言 近年来,毕业设计和答辩的要求与难度逐渐加大,传统的毕业设计题目往往缺乏创新性和亮点,难以满足毕业答辩的标准。 为了帮助大家顺利完…

STM32L476芯片在KEIL环境下BOOT跳转APP注意事项

BOOT工程 分配BOOT程序地址、设置参数地址、APP程序地址、下载缓冲区地址 #define BOOT_SECTOR_ADDR 0x08000000 #define BOOT_SECTOR_SIZE 0x0000A000 #define SETTING_SECTOR_ADDR 0x0800A000 #define SETTING_SECTOR_SIZE 0x00002000 #define APP_S…

Spring Boot:植物健康监测的智能管家

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

python——数据类型(数字,字符串)

(一)基本知识 首先我们需要知道,在python中数据类型大体可以分为两类 1.基本数据类型:数字和字符串 2.复合数据类型:列表,元组,字典,集合 (二)基本数据类型 …

LabVIEW水质监测系统

在面对全球性的海洋污染问题时,利用先进技术进行水质监测成为了保护海洋环境的关键手段之一。开发了一种基于LabVIEW的海洋浮标水质监测系统,该系统能够实时监测并评估近海水域的水质状况,旨在为海洋保护和污染防治提供科技支持。 项目背景 …

【数据结构】专栏开篇 | 1024程序员节

专栏说明:本专栏用于数据结构复习,文章中出现的代码由C语言实现,在专栏中会涉及到部分OJ题目,如对你学习有所帮助,可以点赞鼓励一下博主喔~~~💓 博客主页:Duck Bro 博客主页系列专栏&#xff1a…

关于bp抓不到本地包

关于bp抓不到本地包 关于bp抓不到本地包 关于bp抓不到本地包 pikachu练习时,发现用bp抓本地(127.0.0.1)数据包时,竟然直接放行访问。 是因为系统默认127.0.0.1无法使用代理,因此bp才抓不到本地数据包,需要…

vue中为什么data属性在实例中可以定义成对象,而在组件中定义成对象会抛出错误

在vue组件中将data属性定义成对象会报错 为什么data属性在实例中可以定义成对象,而在组件中定义成对象则会抛出错误? Vue 实例中的 data 属性: 当 data 被定义在一个单一的 Vue 实例中时,这个实例通常是全局唯一的&#xff0c…

数据结构笔记(其七)--树(二叉树)

目录 1.知识总览 2.二叉树的基本概念 (1).满二叉树 (2).完全二叉树 (3).二叉排序树 (4).平衡二叉树 3.二叉树常考点 i.叶子结点与二分支结点的数量关系 ii.第i 层的最多结点数&…

如何禁止上班期间浏览无关网站?

禁止员工在上班期间浏览无关网页主要是为了提升工作效率和生产力,确保员工能够专注于工作任务。同时,这种做法有助于降低网络安全风险,防止恶意软件和钓鱼攻击,减少数据泄露和法律风险,维护公司的专业形象,…

【前端开发入门】JavaScript快速入门--js变量

目录 引言一、为什么要定义变量二、定义变量的一些技巧1. 解构赋值1.1 Object解构赋值1.2 Array解构赋值1.3 总结规律 2. 字符串拼接 三、变量作用域四、总结 引言 本系列教程旨在帮助一些零基础的玩家快速上手前端开发。基于我自学的经验会删减部分使用频率不高的内容&#xf…

Unity引擎:游戏开发的核心力量

目录 引言 Unity引擎的发展历程 早期发展 跨平台支持 Unity引擎的核心特性 易用性 社区支持 跨平台能力 Unity在游戏开发中的应用 移动游戏 独立游戏 3A游戏 Unity的未来展望 高级图形和渲染技术 扩展现实(XR)支持 云服务和多人游戏 结论…

C#判断点是否在多边形内

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!人工智能学习网站 前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任…

在不支持AVX的linux上使用PaddleOCR

背景 公司的虚拟机CPU居然不支持avx, 默认的paddlepaddle的cpu版本又需要有支持avx才行,还想用PaddleOCR有啥办法呢? 是否支持avx lscpu | grep avx 支持avx的话,会显示相关信息 如果不支持的话,python运行时导入paddle会报错 怎么办呢 方案一 找公司it,看看虚拟机为什么…

logdata-anomaly-miner:一款安全日志解析与异常检测工具

关于logdata-anomaly-miner logdata-anomaly-miner是一款安全日志解析与异常检测工具,该工具旨在以有限的资源和尽可能低的权限运行分析,以使其适合生产服务器使用。 为了确保 logdata-anomaly-miner的正常运行,推荐安装了python > 3.6的…

通过异地组网工具+RustDesk实现虚拟局域网使用远程桌面RDP

通过异地组网工具RustDesk实现虚拟局域网使用远程桌面RDP 预期效果 常见的远程桌面工具就不多说,麻烦而且不好用 QQ 使用普及率高 卡顿、延迟高 TeamViewer 功能强大、兼容性好 官方查询商业用途频繁 向日葵 安全性高、支持多种设备 强制登录、免费用户限速、限…

10. mapreduce实现wordcount

一. mapreduce 概述 mapreduce是一个并行计算框架,它起源于Google的MapReduce论文,它主要用于离线海量数据计算。 优点:海量数据离线处理,开发简单,部署方便缺点:仅适用于批处理,不支持实时数…

二极管那些事儿

一.发光二极管(LED) 1.压降很大(2~3v) 二.普通二极管(eg:1N4007) 1.一般用于整流和续流 2.比较廉价 3.一般压降0.7v 4.可用于防反接电路如下: 三:肖特基 1.开关速度第一&#…