kubernets学习笔记——kubernets的相关概念

news2024/12/25 9:07:57

目录

  • 理解 Kubernets 技术
    • 1、什么是 Kubernets
    • 2、为什么使用 Kubernets
  • Kubernets 重要概念
    • 1、先看 Kubernets 架构图
    • 2、集群(cluster)
    • 3、主节点(Master)
      •   3.1、API 服务器(Kubernets API Server)
      •   3.2、控制器管理器(Kubernets Controller Manager)
      •   3.3、调度器(Kubernets Scheduler)
      •   3.4、Etcd
    • 4、节点(node)
      •   4.1、代理(kube-proxy)
      •   4.2、kubelet
    • 5、Pod
    • 6、服务
    • 7、存储卷
    • 8、命名空间

  Kubernets 是容器技术快速发展的产物。Kubernets 的出现是的大规模的服务器服务运维变得便捷、简单起来。本节从最简单的概念开始,循序渐进的学习 Kubernets。

理解 Kubernets 技术

1、什么是 Kubernets

  简单地讲,Kubernets 是一套自动化容器运维的开源平台,这些运维操作包括部署、调度和节点集群间扩展。Kubernets 的主要功能是容器编排,是指确保所有容器都按照计划运行再物理机或虚拟机上。

2、为什么使用 Kubernets

  Kubernets 是一个自动化部署、伸缩和操作应用程序容器的开源平台。使用 Kubernets 可以快速、高效地满足用户的需求,例如:
      快速准确地部署应用程序。
      根据需要动态扩缩容。
      当出现故障时自愈。
      进行不停机的滚动升级和回滚。
  Kubernets 具有以下明显的优势:
      可移动:公有云、私有云、混合云。
      可扩展:模块化、插件化、可挂载、可组合。
      自修复:自动部署、自动重启、自动复制、自动伸缩。

Kubernets 重要概念

1、先看 Kubernets 架构图

在这里插入图片描述

2、集群(cluster)

  集群是计算、存储和网络资源的集合,Kubernets 使用集群来运行组成系统的各种工作负载。cluster 是整个 Kubernets 容器集群的基础环境。

3、主节点(Master)

  主节点(Master)是集权的控制节点,由几个组件组成,包含 API 服务器、调度器和控制器管理器。主节点负责节点在全局、集群水平的调度和事件处理。通常,所有的主控制器组件都设置在一个单一主机上,为了实现高可用性,用户可以部署多个 Master 节点。
  Master 上运行的关键进程:

  3.1、API 服务器(Kubernets API Server)

   Kubernets API Server 的进程名为 kube-apiserver。Kubernets API Server 提供了 Kubernets 各类资源对象的增删改查的 HTTP Rest API。是整个系统的数据总线和数据中心,它的所有数据都存储在 etcd 集群中。

  3.2、控制器管理器(Kubernets Controller Manager)

   Kubernets Controller Manager 作为集群内部的管理控制中心,是各种管理器的集合。负责集群内的 Node、Pod 副本、服务端点、命名空间、服务账号、资源配额的管理。所有控制前通过 API 监控集群状态,确保集群始终处于预期的工作状态。

  3.3、调度器(Kubernets Scheduler)

   Kubernets Scheduler 负责将 Pod 调度到指定的工作节点中,这一过程也叫绑定,他是一个非常复杂的任务,因为它需要考虑多个相互作用的因素,例如:资源需求、服务要求、硬/软件的策略约束、数据局部性、截止日期等。

  3.4、Etcd

   Etcd 是 Kubernets 集群中一个十分重要的组件,也是一个非常可靠的分布式数据存储。用于保存集群所有的网络配置和对象的状态信息。

4、节点(node)

  在 Kubernets 中,除了 Master 节点外,其他的节点都成为 Node。与 Master 节点不同,Node 才是 Kubernets 中的承担主要计算功能的工作节点。Node 可以是一台物理机,也可以是一台虚拟机。
  整个 Kubernets 集群中的 Node 协同工作,Master 会根据实际情况将某些负载分配给各个 Node。每个 Kubernets 节点运行多个 Kubernets 组件,如 Kubelet 和 Kube 代理:

  4.1、代理(kube-proxy)

   kube-proxy 在每个节点上进行最低水平的网络维护,它用于呈现本地 Kubernets 服务,可以执行 TCP 及 UDP 转发,通过环境变量或 DNS 寻找集群 IP。监听每个节点上 Kubernets API 中定义的服务变化情况,创建路由规则来进行服务负载均衡。

  4.2、kubelet

   在 Kubernets 集群中,每个 Node 节点都会启动 kubelet 进程,用来处理 Master 节点下发到本节点的任务,管理 Pod 和其中的容器。Kubelet 会在 API Server 上注册节点信息,定期向 Master 汇报节点资源使用情况,并通过 cAdvisor 监控容器和节点资源。可以把 Kubelet 理解成是一个代理进程,是 Node 上的 Pod 管家。

5、Pod

  Pod 是 Kubernets 最基本的工作单元,一个 Pod 中可以包含一个或多个容器,一个 Pod 可以被一个容器化的环境看作应用层的逻辑宿主机。一个 Pod 中的多个容器应用通常是紧密耦合的,Pod 在 Node 上被创建、启动或者销毁。每个 Pod 里运行着一个特殊的被称为 Pause 的容器,其他容器则为业务容器,这些业务容器共享 Pause 容器的网络栈和 Volume 挂载卷,因此他们之间通信和数据交换更为高效。
  Pod 是 Kubernets 调度的基本操作单元,Master 节点会以 Pod 为单位,将其调度到 Node 节点上面。

6、服务

  在 Kubernets 的集群中,虽然每个 Pod 都会被分配一个单独的 IP 地址,但这个 IP 地址会随着 Pod 的销毁而消失。这就引出一个问题,如果有一组 Pod 组成一个集群来提供服务,那么如何来访问它呢?那就是通过服务。
一个服务可以看作一组提供相同服务的 Pod 的对外访问接口,服务作用于哪些 Pod 是通过标签选择器来定义的。服务通常拥有以下特点:
      提供一个指定的名字,例如MySQL-server。
      拥有一个虚拟 IP 地址和端口号,销毁之前不会改变,只能内网访问。
      能提供某种远程服务能力。
      被映射到了提供这种服务能力的一组容器应用上。

7、存储卷

  Pod 上的存储是临时的,会随 Pod 一起消失。如果只在节点的容器间交换数据,这已经足够,但有时数据需要在 Pod 上存储更长的时间,或在 Pod 间传递数据,存储卷的概念便支持了这种需求。Kubernets 存储卷的生命周期与 Pod 绑定。容器宕掉后 kubelet 再次重启容器时,存储卷的数据依然还在,而 Pod 删除时,存储卷才会被清零。数据是否丢失取决于具体的存储卷类型,持久化存储卷为独立于计算资源的一种实体存储资源,不属于任何一个 Node。因此,在 Pod 被删除时,不会丢失数据,除非人工将其删除。

8、命名空间

  命名空间时一个虚拟集群。由命名空间分隔的多个虚拟集群可组成一个单独的物理集群。每个虚拟集群与其他的虚拟集群完全隔离,他们只通过公共接口交换信息。
  Kubernets 集群在启动后,会创建一个名为 default 的默认的命名空间,如果不特别指定命名空间,则用户创建的 Pod、RC、服务都被系统创建到默认的命名空间中。
  需要注意的是,节点对象和持久化存储卷不存在命名空间中。Kubernets 可以调度来自不同命名空间的 Pod 在同一节点运行。同样,来自不同命名空间的 Pod 可以使用相同的持久化存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990778.html

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

相关文章

VC 与 VS(visual studio) 的对应版本

VC 与 VS 对应版本的关系: VC9:对应的是 Visual Studio 2008 版本。在这个版本中,开发环境提供了一系列的新特性和改进,为开发者提供了更高效的编程体验。例如,增强了对 C 标准的支持,优化了调试工具等。 …

Postgresql数据库中通过函数实现将不确定列的数据插入到表中

在数据库操作中,经常会遇到需要将不确定列的数据插入到表中的情况。这个文章将详细介绍如何在 PostgreSQL 中通过函数来实现这一需求,记录一下。 一、需求概述 在实际应用中,可能会接收到一个包含数据的 JSON 字符串,需要将其插…

体外诊断 | 从说明书看研发:阳性判断值研究

来源于《甲型流感病毒、乙型流感病毒和新型冠状病毒(2019-nCoV) 核酸检测试剂盒(PCR-荧光探针法)审评报告》(CSZ2200276) 来源于《血清淀粉样蛋白A/C 反应蛋白二联检测试剂盒(荧光免…

vue3--实现vue2插件JSONPathPicker的路径获取功能

背景 最近在进行vue2项目升级为vue3。 在项目中需要获取json某些字段的路径,vue2中使用JSONPathPicker ,但是该插件不支持vue3,vue3中也没有相应的模块有该功能。 实现目标: 原vue2中JSONPathPicker实现的功能: 查…

多智能体协作之 AutoGen Studio

目录 一、AutoGen Studio 安装 二、AutoGen Studio 使用 2.1 Skills 2.1.1 generate_and_save_images 2.1.2 generate_and_save_pdf 2.2 Models 2.3 Agents 2.4 Workflows 2.5 Playground 本文主要对 AutoGen Studio 进行介绍。 一、AutoGen Studio 安装 通过 pip 进…

PCIe 物理尺寸和形状

PCIe 物理尺寸和形状 1. PCIe Riser (PCIe 插槽)2. Riser 卡与 PCIe 卡2.1. PCIe 卡尺寸 3. Form factors (规格,物理尺寸和形状)4. Peripheral Component Interconnect Express (PCI Express, PCIe or PCI-e)5. HHHL and FHHL5.1. HHHL DPU Layout and Interface I…

TM1652段码屏芯片全解析——概况,性能,MCU连接,样例代码

首先,作为四年前就有的LED段码控制芯片,相关的资料及样例程序少的可怜。硬件驱动 作为固定使用的 软件资源,其共享性远低于软件领域的驱动库。人的才智不应浪费在这种不具创造性的重复实验上。 要点总结: TM1652概述&#xff1a…

k-means算法原理

1 算法简介 k-means(k均值)算法由不同学者于20世纪50-60年代在不同领域提出的一种聚类算法。随后该算法不断得到了改进,成为了一种非常广泛应用的聚类算法。k-means算法是将样本按距离划分为k个簇的一种聚类算法。 2 算法的基本原理 2.1 相…

TypeError: Cannot read property ‘xxx‘ of undefined

1.首先贴出控制台的报错信息 2.从报错信息看的一脸疑惑,xxx属性或方法确实定义了,引入后怎么就报错了,一开始还怀疑是小程序缓存导致的,清理缓存重新编译还是报错,然后怀疑是分包导致的,后来看到我的代码是…

一、stm32在cubemx配置硬件crc与rng测试演示

一、crc配置 1、配置crc界面 2、crc主要调用的函数 这两个都可以生成crc,存在一些区别,但都可以生成crc其结果都是一样的。 二、rng配置 1、rng配置的界面 2、rng生成函数 这三个函数都可以生成随机数,其中开启中断后可调用回调函数&am…

在Linux中宏观的看待线程

线程一旦被创建,几乎所有的资源都是被所有的线程共享的。线程也一定要有自己私有的资源,什么样的资源应该是线程私有的? 1.PCB属性私有 2.要有一定的私有上下文结构 3.每个线程都要有独立的栈结构 ps -aL ##1. Linux线程概念 ###什么是线程…

深度学习每周学习总结N6:使用Word2vec实现文本分类

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 0. 总结:1.加载数据2. 构建词典3. 生成数据批次和迭代器4.模型搭建及初始化5. 定义训练与评估函数6. 拆分数据集并运行模…

界面控件(无ui文件)

目录 菜单栏 工具栏 状态栏 停靠部件和核心部件 菜单栏 MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {// 菜单栏,获取当前窗口的菜单栏,没有会自动创建一个QMenuBar *mb this->menuBar();// 添加菜单QMenu *menuFile mb-&g…

【ML】Pre-trained Language Models及其各种微调模型的实现细节和特点

Pre-trained Language Models及其各种微调模型的实现细节和特点 1. Pre-trained Language Models2. semi-supervised Learning3. zero-shot4. Parameter-Efficient Fine-Tuning4.1 含义:4.2 实现方式: 5. LoRA5.1 LoRA 的主要特点:5.2 LoRA 的…

【QT 5 QT 6 构建工具qmake-cmake-和-软件编译器MSVCxxxvs MinGWxxx说明】

【QT 5报错:/xxx/: error: ‘class Ui::frmMain’ has no member named ‘xxx’-和-软件编译器MSVCxxxvs MinGWxxx说明】 1、前言2 、qt 中 Qmake CMake 和 QBS1-qmake2-Cmake3-QBS4-官网一些说法5-各自特点 3、软件编译套件1-Desktop Qt 6.7.2 llvm-mingw 64-bit2-…

SpringBoot排除默认日志框架

默认用的logback application.properties中的配置无需改变,自动装配会根据条件(哪个日志的.class是否存在) 进行切换 只要切换日志配置文件就好 比如原来使用的logback-spring.xml换成log4j2-spring.xml 日志文件网上找找

Flink-DataWorks第三部分:数据集成(第59天)

系列文章目录 2.4 任务配置方式 2.4.1 DataStudio侧离线同步 2.4.1.1 开发流程概览 2.4.1.2 步骤一:新建离线同步节点 2.4.1.3 步骤二:配置同步网络链接 2.4.1.4 步骤三:配置数据来源与去向 2.4.1.5 步骤四:配置字段映射关系 2.4…

C:野指针介绍(定义、危害、规避)以及野指针与空指针的区分

目录 1、野指针 1.1 野指针的成因 1.指针未初始化 2.指针越界访问 3.指针指向的空间释放 1.2 野指针的危害 1.3 如何规避野指针 1. 指针初始化 2. 小心指针越界 3.指针变量不使用就及时赋上NULL 4. 指针使用前检查是否是空指针 5. 避免返回局部变量的地址 1.4 区…

微信小程序【五】摇骰子

摇骰子 一、dice.js二、dice.json三、dice.wxml四、dice.wxss 效果简述:点击设置“骰子个数”,喝一杯前,先摇一摇。 骰子图片命名示例: 1.png、2.png 一、dice.js Page({data: {numDice: 1, // 初始化骰子数diceImages: [],dic…

【iOS多线程(二)】GCD其他方法详解

GCD其他方法 dispatch_semaphore (信号量)什么是dispatch_semaphore(信号量)?dispatch_semaphore主要的三个方法dispatch_semaphore主要作用线程安全线程同步 dispatch_afterdispatch_time_t 两种形式 GCD 一次性代码(只执行一次&#xff09…