pod控制器

1、定义

又称工作负载,用于管理pod的中间层,确保pod资源符合预期的状态(副本数、容器的重启策略、镜像拉取策略、pod出现故障时的重启等)

2、控制器类型

replicaSet

指定pod副本的数量。三个组件:①pod的副本数②标签选择器(判断哪个pod归自己管理)③扩缩容

Deployment

工作在replicaSet之上的。目前最好的控制器,支持滚动更新和回滚,并提供声明式配置。管理无状态的应用

statefulSet

可以设置副本数、扩缩容,pod的序号是固定的,重启后pod的名称不会发生变化。管理有状态的应用

DaemonSet

可以在所有节点部署一个相同的pod,没有副本数,可以限制部署的节点,服务必须是守护进程。管理无状态的应用

job

工作pod控制器。执行完成即刻退出,不需要重启,也不需要重建

cronjob

周期性的定时任务控制器。无需在后台持续运行

无状态应用:pod名称是无序的,所有pod都是一体的,所有deployment下的pod共享一个存储

有状态应用:pod名称是有序的(0到N),所有pod都是独立的,存储卷也是独立的,删除也不会改变pod的序号,扩缩容也是有序扩缩容

3、pod与控制器的关系

pod通过标签label与selector进行关联

(1)DaemonSet控制器

无状态应用:pod名称是无序的,所有pod都是一体的,所有deployment下的pod共享一个存储建议web终端不要加此字段,否则会导致服务中断,也会中断业务

Deployment的默认策略(一般不动)

maxSurge: 25%

升级过程中,新启动的pod数量不能超过期望pod数的25%

maxUnavailable: 25%

升级过程中,新pod启动成功后,销毁的旧的pod数量不能超过期望pod的25%

(2)statefulSet控制器(结合动态pv)

有状态应用:pod名称是有序的(0到N),所有pod都是独立的,存储卷也是独立的,删除也不会改变pod的序号,扩缩容也是有序扩缩容

扩容:

缩容:

statefulSet控制器的特点

 headless service无头服务

没有clusterIP,是k8s集群中一种特殊的服务类型,不分配ClusterIP给service,也不会负载均衡到后端pod,由DNS来提供服务的发现和访问,由于ClusterIP是空的,所以k8s集群会给每个headless service中的pod创建一个DNS记录

格式:pod-name.headless-service-name.namespace.svc.cluster.local

web-0

nginx-web

defaults

本地地址(pod的IP地址)

通过DNS直接解析访问pod的IP地址

web-0 10.244.1.10

 必须有动态pvc

有状态的副本集群都会涉及持久化存储,每个pod是独立个体,每个pod都有一个自己的专用的存储点,statefulSet在定义时已规定每个pod不能使用同一个存储卷,所以需要动态pv

为什么用headless service无头服务?

有序、独立个体。deployment的pod是无序的,没有名称的随机字符串,需要一个集中的clusterIP来集中统一为这些pod提供一个网络服务。statefulSet是有序的,且pod名称是固定的,重建之后pod的标识符也不变(pod名称是唯一的标识符),系统直接通过pod名称解析pod的IP地址(pod名称不变,类似于访问百度一样,即便有多个IP地址,访问域名即可访问IP地址)

②应用场景

 不是固定节点的应用,不是固定IP的应用

 更新、发布较频繁

 支持自动伸缩。节点的资源不够时可以自动扩

(3)daemonSet控制器(用于后台运行的网络)

作用:确保每个节点上都会创建一个pod,无法指定副本数。若有node加入集群,也会为它新增一个pod;当node节点从集群中移除时,pod也会被回收

①节点随机部署pod

注:daemonset无法指定副本数

注:即便没有指定副本数,也会在每个节点上创建一个pod

②指定节点标签部署pod

注:不需要指定调度策略,默认会在每个节点创建一个pod,除非节点上设置了污点,不会在此节点上创建pod。可以通过指定的方式把daemonset部署在指定的节点基于控制器创建的pod,delete相当于重启,要彻底删除pod必须删除控制器

在delete pod容器之前要查看是基于控制器创建的,还是自主式创建pod。基于控制器创建的pod可以delete相当于重启,dalete删除自主式创建的pod是真的删除(慎重)

(4)job控制器(普通任务)

作用

适用于只需要执行一次的任务。比如脚本、数据库迁移、视频解码等业务

②特点

• 必须指定容器的重启策略OnFailure或Never;

• 失败次数默认是6次;

• 更新yaml文件,必须先删除任务再更新,无法动态更新

对于k8s系统来说,既然已定义job,即只需要执行一次或指定次数,不能一直运行

(5)cronjob控制器(定时任务)

周期性任务定时执行。与linux的crontab语法一样

①格式:分 时 日 月 周

②应用场景:定时备份、通知、定时检测(结合探针一起)

③特点

• 失败次数默认是3次

• 必须设置pod的重启策略

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

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

相关文章

ChatGPT4.0 >ChatGPT 3.5 > 文心一言

ChatGPT和文心一言 前言 ChatGPT是一种基于自然语言处理的对话型人工智能模型,由OpenAI开发。它是使用了大规模的语料库进行无监督学习的结果,并且在生成自然流畅的文本方面表现出色。 ChatGPT可以用于各种对话任务,例如回答问题、提供建议…

工智能基础知识总结--特征工程之特征选择

特征选择的目标 构造机器学习的模型的目的是希望能够从原始的特征数据集中学习出问题的结构与问题的本质,此时的挑选出的特征就应该能够对问题有更好的解释;特征决定了机器学习的上限,而模型和算法只是去逼近这个上限,所以特征选择的目标大概如下: 提高预测的准确性;减少…

计算机网络——HTTP协议

1. HTTP的概述 HTTP(超文本传输协议),定义在RFC2616中,是用于分布式和协作式多媒体系统之间交互的应用层通信协议。 1.1 无状态 HTTP是一个无状态协议,意味着它不保存先前交互的记录。每个请求都独立于其他请求处理。…

mysql原理--redo日志2

1.redo日志文件 1.1.redo日志刷盘时机 我们前边说 mtr 运行过程中产生的一组 redo 日志在 mtr 结束时会被复制到 log buffer 中,可是这些日志总在内存里呆着也不是个办法,在一些情况下它们会被刷新到磁盘里,比如: (1). log buffer…

硬盘恢复软件如何恢复硬盘数据?分享使用方法

在数字时代,数据的重要性不言而喻。一旦硬盘发生数据丢失,在未备份数据的情况下,对于个人和企业来说可能造成巨大的损失。然而,随着技术的进步,硬盘恢复软件已经成为解决这一问题的有效工具。它能够有效处理一些不是物…

uniapp 图片保持宽高比,撑满屏幕宽度

image 标签添加 mode"widthFix" <image mode"widthFix" :src"detailData.coverImageURL" />image 标签添加样式 image {width: 100%;height: auto; }

浅谈vue响应式

响应式简单理解&#xff1a;当一个对象的属性发生变化的时候调用一个回调函数 要想做到上述功能需要具备两个条件 属性的写入和读取必须可以被拦截&#xff08;被vue管理&#xff09;属性必须在回调函数或watch函数中被读取&#xff0c;这样才能记录属性之后被写入的时候应该调…

在Excel中将一列分为多列的三种方法,总有一种适合你

在处理数据和电子表格时,可读性和结构非常重要。它使数据更容易浏览和使用。提高数据可读性的最佳方法之一是将数据分割成块,这样更容易访问正确的信息。 当从头开始输入数据时,可以确保我们对数据的结构更具可读性。但是,有时你需要使用其他人创建的数据。如果数据量很大…

Fooocus 使用笔记

目录 换装&#xff0c;换脸&#xff0c;修复畸形 比较和使用教程&#xff1a; 安装教程&#xff1a; github地址&#xff1a; 换装&#xff0c;换脸&#xff0c;修复畸形 &#x1f525;迄今最全&#xff01;Fooocus AI绘图 详细教程 AI换装 AI换脸 AI修复畸形 - 西瓜视频 …

【机器学习】scikit-learn机器学习中随机数种子的应用与重现

随机数种子是为了能重现某一次实验生成的随机数而设立的&#xff0c;相同的随机数种子下&#xff0c;生成的随机数序列一样 一、随机数种子基础应用 在python中简单运用随机数种子 import random random.seed(1) a random.sample(range(0,100),10) random.seed(2) b random.…

如何通过内网穿透实现公网访问Portainer管理监控Docker容器

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风…

软件测试Leader避坑指南,让你少走弯路!

作为一名软件测试人&#xff0c;特别是测试Leader工作中难免会遇到一些坑。你是否经常会为此感到焦虑和苦恼&#xff1f; 测试Leader在团队中往往处于夹心饼干的角色。 对上要面对上级的施压、打压、批评、责骂和CPU、甩锅&#xff1b;对下要面对员工的摆烂&#xff0c;敷衍和…

如何用GPT/GPT4完成AI绘图和论文写作?

详情点击链接&#xff1a;如何用GPT/GPT4完成AI绘图和论文写作&#xff1f; 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#xff0c;AI画图&#xff0c;图像识别&#xff0c;文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Clau…

一些面试会问到的奇怪问题

1.v-for、v-if先后顺序。 官方不建议一起使用&#xff0c;但是有时候面试的时候会问到。 在vue2中是v-for先与v-if的。 源码js编译结果&#xff1a; _c()就是vm.$createElement()&#xff0c;意思是创建一个虚拟的element&#xff0c;就是返回值是VNode。 _l就是renderlis…

虹科技术|如何用TSN流识别技术破解航空电子网络的传输难题?

导读&#xff1a;随着航空航天技术的迅猛发展&#xff0c;航空电子网络面临着诸多挑战&#xff0c;如多网络并行传输、高带宽需求以及确保数据传输的确定性等。为应对这些挑战&#xff0c;航空电子网络急需一个通用的网络架构&#xff0c;满足布线简单、供应商多、组网成本相对…

leetcode-平衡二叉树

110. 平衡二叉树 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def isBalanced(self, root: Optional[Tr…

网络文件共享服务

一.存储类型 直连式存储&#xff1a;Direct-Attached Storage&#xff0c;简称DAS 存储区域网络&#xff1a;Storage Area Network&#xff0c;简称SAN&#xff08;可以使用空间&#xff0c;管理也是你来管理&#xff09; 网络附加存储&#xff1a;Network-Attached Storage&…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (2) | 图像分类与损失函数

前言 &#x1f4da; 笔记专栏&#xff1a;斯坦福CS231N&#xff1a;面向视觉识别的卷积神经网络&#xff08;23&#xff09;&#x1f517; 课程链接&#xff1a;https://www.bilibili.com/video/BV1xV411R7i5&#x1f4bb; CS231n: 深度学习计算机视觉&#xff08;2017&#xf…

FairyGUI Day 1 导入FairyGUI

FairyGUI Unity3d引擎版本&#xff1a;Uinty3d 20233.2.3f1 1、从资产商店中将FairyGUI购入我的资产中&#xff0c;目前是免费的。 2、从我的资产中将FairyGUI导入到当前项目中。 3、我遇到的问题&#xff0c;我的Assets下有两个文件夹分别是Resources和Scenes&#xff0c;导…

开源对象存储服务器MinIO本地部署并结合内网穿透实现远程访问管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…