Kubernetes小记

Kubernetes 集群

架构

Kubernetes 集群架构

一个有效的 Kubernetes 部署称为集群,可以将 Kubernetes 集群分为两个部分:控制平面与计算设备(或称为节点)

控制组件

在这里插入图片描述

控制平面

K8s 集群的神经中枢,负责处理重要的工作,以确保容器以足够的数量和所需的资源运行。
  • kube-apiserver
是 Kubernetes 控制平面的前端,用于处理内部和外部请求。
  • kube-scheduler
K8s 调度程序,会考虑容器集的资源需求以及集群的运行状况。随后,它会将容器集安排到适当的计算节点。
  • kube-controller-manager
K8s 控制器,用于查询调度程序,并确保有正确数量的容器集在运行。
  • etcd
配置数据以及有关集群状态的信息位于 etcd。

节点(Node)

- Kubernetes 通过将容器放入在节点(Node)上运行的 Pod 中来执行你的工作负载。- 节点可以是一个虚拟机或者物理机器,取决于所在的集群配置- 每个节点都运行由若干容器组成的容器集
  • Pod
- 是K8s中创建和管理的、最小的可部署的计算单元。是一组(一个或多个)容器。- 网络- 每一个Pod都会被指派一个唯一的Ip地址,在Pod中的每一个容器共享网络命名空间,包括Ip地址和网络端口- 在同一个Pod中的容器可以同locahost进行互相通信,当Pod中的容器需要与Pod外的实体进行通信时,则需要通过端口等共享的网络资源。- 存储- Pod能够配置共享存储卷,在Pod中所有的容器能够访问共享存储卷,允许这些容器共享数据- 存储卷也允许在一个Pod持久化数据,以防止其中的容器需要被重启。- 自主式Pod- 本身是不能自我修复的,当Pod被创建后,会被K8s调度到集群的Node上,直到Pod的进程终止
- 控制器管理的Pod- Controller可以创建和管理多个Pod,提供副本管理、滚动升级和集群级别的自愈能力
  • 容器运行时引擎
为了运行容器,每个计算节点都有一个容器运行时引擎。
  • kube-proxy
用于优化 Kubernetes 网络服务的网络代理
负责处理集群内部或外部的网络通信——靠操作系统的数据包过滤层,或者自行转发流量。
  • kubelet
一个与控制平面通信的微型应用。
可确保容器在容器集内运行,当控制平面需要在节点中执行某个操作时,kubelet 就会执行该操作。

存储组件

  • 持久化存储
k8s允许用户请求存储资源,而无需了解底层存储基础架构的详细信息。持久卷是集群(而非容器集)所特有的,因此其寿命可以超过容器集。
  • 容器镜像仓库
K8s 所依赖的容器镜像存储于容器镜像仓库中。可以自己配置,也可以由第三方提供。

工作负载管理

ReplicaSet

- 是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合
- 每个 ReplicaSet 都通过根据需要创建和删除 Pod 以使得副本个数达到期望值, 进而实现其存在价值

Deployment

为 Pod 和 ReplicaSet 提供声明式的更新能力。以受控速率更改实际状态, 使其变为期望状态。
  • 事件和状态查看:可以查看Deployment对象升级的详细进度和状态

  • 回滚:升级操作完成后发现问题时,支持使用回滚机制将应用返回到前一个或由用户指定的历史记录中的版本上

  • 版本记录:对Deployment对象的每一个操作都予以保存,以供后续可能执行的回滚操作使用

  • 暂停和启动:对于每一次升级,都能够随时暂停和启动

  • 多种自动更新方案:

    • Recreate:即重建更新机制,全面停止、删除旧有的Pod后用新版本替代
    • RollingUpdate:即滚动升级机制,逐步替换旧有的Pod至新的版本

StatefulSet

用来管理有状态应用的工作负载 API 对象。
用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符。
为它们的每个 Pod 维护了一个有粘性的 ID
  • 稳定的、唯一的网络标识符
  • 稳定的、持久的存储
  • 有序的、优雅的部署和扩缩
  • 有序的、自动的滚动更新

DaemonSet

确保全部(或者某些)节点上运行一个 Pod 的副本。
- 当有节点加入集群时, 也会为他们新增一个 Pod
- 当有节点从集群移除时,这些 Pod 也会被回收
- 删除 DaemonSet 将会删除它创建的所有 Pod
  • 在每个节点上运行集群守护进程

  • 在每个节点上运行日志收集守护进程

  • 在每个节点上运行监控守护进程

Job

会创建一个或者多个 Pod,并将继续重试 Pod 的执行,直到指定数量的 Pod 成功终止。- 随着 Pod 成功结束,Job 跟踪记录成功完成的 Pod 个数
- 当数量达到指定的成功个数阈值时,任务(即 Job)结束
- 删除 Job 的操作会清除所创建的全部 Pod
- 挂起 Job 的操作会删除 Job 的所有活跃 Pod,直到 Job 被再次恢复执行

CronJob

创建基于时隔重复调度的 Job。
它用 Cron 格式进行编写, 并周期性地在给定的调度时间执行 Job。

ReplicationController

确保在任何时候都有特定数量的 Pod 副本处于运行状态。- 当 Pod 数量过多时,ReplicationController 会终止多余的 Pod
- 当 Pod 数量太少时,ReplicationController 将会启动新的 Pod

Service

是将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。

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

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

相关文章

GCN 代码解析(一) for pytorch

Graph Convolutional Networks 代码详解 前言一、数据集介绍二、文件整体架构三、GCN代码详解3.1 utils 模块3.2 layers 模块3.3 models 模块3.4 模型的训练代码 总结 前言 在前文中,已经对图卷积神经网络(Graph Convolutional Neural Networks, GCN&am…

小程序CI/CD之自动化打包预览并钉钉通知发布进程

小程序打包方式分为两种:手动打包、自动打包 那如何实现 自动打包 呐?我们今天就来聊一聊! 首先,很重要,看 官方文档 这里提到今天我们要聊的“主角” miniprogram-ci miniprogram-ci 是从微信开发者工具中抽离的关于…

nacos开启鉴权

nacos版本1.4.3 1.nacos配置开启鉴权 application.properties 或 application.yaml 文件中 nacos.core.auth.enabled 设置为 true 2.修改JWT令牌 如果是Linux系统可以使用命令随机生成 echo -n ThisIsARandomlyGeneratedSecureKey32CharactersLong | base64 nacos.core.au…

【HarmonyOS-Stage应用模型-UIAbility生命周期】

概述 在应用开发过程中,组件的生命周期尤为重要,当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。我们可以通过生命周期来对应用的状态进行监控并执行特定的操作。比如在创建时进行应用初始化、…

网络摄像头项目

1.OV2640 简介 OV2640 是 OV(OmniVision)公司生产的一颗 1/4 寸的 CMOS UXGA(1632*1232)图像 传感器。该传感器体积小、工作电压低,提供单片 UXGA 摄像头和影像处理器的所有功能。通 过 SCCB 总线控制,可以…

【机器学习】LoRA:大语言模型中低秩自适应分析

LoRA:大型语言模型中的低秩自适应调优策略 一、LoRA的原理与优势二、LoRA在编程和数学任务中的性能表现四、总结与展望 随着人工智能技术的飞速发展,大型语言模型已成为自然语言处理领域的明星技术。然而,这些模型通常拥有数以亿计的参数&…

做好产线工控安全的关键

在现代化工业生产中,产线工控安全是确保生产顺利进行、产品质量稳定、员工生命安全的重要一环。随着信息技术的飞速发展,工控系统面临着越来越多的安全威胁,因此,如何做好产线工控安全成为了摆在我们面前的重要课题。 首先&#x…

使用Python进行高并发压测:技术指南与实战案例

目录 一、引言 二、压测基础知识 压测的目的与类型 压测工具的选择 三、使用Python进行压测 Python压测框架的选择 压测脚本的编写 压测的执行与监控 四、实战案例分析 案例背景介绍 压测计划制定 压测实施过程 结果分析与优化建议 五、常见问题与解决方案 六、…

centos7下卸载MySQL,Oracle数据库

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 操作系统版本为CentOS 7 使⽤ MySQ…

JVM 运行流程

JVM 是 Java 运行的基础,也是实现一次编译到处执行的关键,那么 JVM 是如何执行的呢? JVM 执行流程 程序在执行之前先要把java代码转换成字节码(class 文件), JVM 首先需要把字节码通过一定的 方式 类加…

文件怎么加密?文件加密软件哪个好用?

在数字化生活和工作中,文件安全已成为不容忽视的话题。 为了保护个人隐私和企业敏感数据不被非法访问或泄露,文件加密成为了不可或缺的手段。 本文将介绍文件加密的基本概念、加密方法以及推荐几款好用的文件加密软件,帮助您为重要文件穿上“…

捋一捋C++中的逻辑运算(一)——表达式逻辑运算

注意,今天要谈的逻辑运算是C语言编程中的“与或非”逻辑运算,不是数学集合中的“交并补”逻辑运算。而编程中的逻辑运算又包括表达式逻辑运算和位逻辑运算,本章介绍表达式逻辑运算,下一章介绍位逻辑运算。 目录 一、几个基本的概…

视频号上怎么卖货?需要直播,还有粉丝吗?一篇文章带你了解!

大家好,我是电商糖果 关于在视频号上卖货,这是大家最常提起的话题。 大家之所以对视频号卖货感兴趣,主要原因还是抖音卖货火起来了。 而视频号是和抖音处于同一个赛道,这两年也在往电商方向发力。 所以大家对视频号推出电商平…

Window11端口开放防火墙

(1)打开控制面板,进入【控制面板\系统和安全\Windows Defender 防火墙】 (2)点击左侧菜单【高级设置】,进入防火墙设置页面 (3)根据需要选择【入站规则】或者【出站规则】&#xff…

ubtun三节点安装k8s

文章目录 修改Ubuntu配置关闭swap:关闭防火墙 安装docker 修改Ubuntu配置 关闭swap: vim /etc/fstab /dev/disk/by-uuid/a1ce2ecf-91f4-4f53-9984-b2af1e9713c5 /boot ext4 defaults 0 1 /swap.img none swap sw 0 0修改/dev/dis…

nestjs 全栈进阶--拦截器

视频教程 23_nestjs中的拦截器_哔哩哔哩_bilibili 1. rxjs 介绍 RxJS(Reactive Extensions for JavaScript)是一款专为JavaScript和TypeScript设计的响应式编程库,它遵循ReactiveX规范,提供了一套强大的工具和API,用…

Mac 使用Docker安装Elasticsearch、Kibana

安装ElasticSearch 通过docker安装es docker pull elasticsearch:8.6.2 在本地创建elasticsearch.yml文件 mkdir /Users/ky/Documents/learn/es/elasticsearch.yml 编辑yml文件内容 http: host: 0.0.0.0 xpack.security.enabled: false xpack.security.enrollment.enabled: t…

Scala 练习一 将Mysql表数据导入HBase

Scala 练习一 将Mysql表数据导入HBase 续第一篇:Java代码将Mysql表数据导入HBase表 源码仓库地址:https://gitee.com/leaf-domain/data-to-hbase 一、整体介绍 HBase特质 连接HBase, 创建HBase执行对象 初始化配置信息:多条(hbase.zookeeper.…

ARM学习(28)NXP 双coreMCU IMX1160学习

笔者最近接触到一块IMXRT1160的双core板子,特依次来记录学习一下 1、IMXRT1160 板子介绍 介绍一下NXP的Demo板子,是一个双core的板子,Cortex-M7和Cortex-M4,总计1MB的RAM空间,256KB的ROM空间,提供了丰富的…

Window10磁盘的分盘和合并

注意: 当我们c盘不够大需要扩大磁盘空间时,当c盘后面没有未划分的磁盘时候,我们是无法进行扩充c盘的,此时,我们可以先删除后面一个磁盘,再进行扩大。 如下:c盘后没有未分配的空间,…