pod 控制器

news2024/11/12 13:19:34

pod 控制器:

pv pvc 动态pv

pod控制器:工作负载,workload,用于管理pod的中间层,确保pod资源符号预期的状态。

预期状态:

1,副本数

2,容器的重启策略

3,镜像拉取策略

pod出现故障时的重启等等。

pod控制器的类型:

1,replicaSet:指定pod副本的数量。

三个组件:

一,pod的副本数

二,标签选择器,颇多哪个pod归自己管理

三,扩缩容

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

3,statefulSet:控制器的一种,管理有状态的应用,可以可以设置副本数,可以扩缩容。pod的序号的固定的,重启之后,pod的名称也不会发生变化。有状态

4,DaemonSet:可以在使用节点的部署一个pod,他没有副本数。可以限制部署的节点。也是无状态的应用。一般来说,服务必须的后台守护进程。 ingress logstash flannel

5,job:工作pod控制器,执行完成即可退出,不用重启,不需要重建

6,cronjob:周期的定时容器控制器。不需要在后台持续运行

pod和控制器之间的关系

1,controllers:管理控制器。

pod提供label------>selector进行关联

补充:

startegy:

type: Recreate

#每次有更新,都会把旧的pod全部停止,然后再启动新的实例。服务可能会短暂的终端。

无特殊需要,这个字段不要加

默认策略:

strategy:

rollingUpdate:

maxSurge: 25%

maxUnavailable: 25%

这是Deployment的默认更新策略

rollingUpdate:滚动更新。

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

maxUnavailable: 25%在升级的过程中,新的pod启动好后,销毁的就的pod的数量不能超过pod的25%

2,无状态应用,pod名称的无序的,认为所有pod都是一体的。共享存储NFS

sydeployment下的pod共享一个存储。

statefulSet:有状态的应用,pod的名称的有序的,所有的pod都是独立的。存储卷也是独立的。顺序0-n,delete删除也不会改变pod的序号。扩缩容也是有序扩缩容

创建一个有序的pod

特点:headless service:无头服务,没有clusterIP

必须要有动态的pvc

删除重启的名称不变

每一个pod都是独立的个体,扩缩容都是有序的

pv的删除和本身的策略有关,和pod删除无关

headless service: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

为什么要用headless:

有序。独立个体。

deployment的pod是没有名称的,随机字符串,无序。他需要一个集中的clusterip来集中统一为pod提供网络。

statefulset是有序的,pod的名称是固定的。重建之后pod的标识符也不变。pod的名称是唯一的标识符。系统直接提供pod名称解析IP地址。ip地址可能会变。

为什么要有volumeClaimTemplates:

有状态的副本把 集群会设计持久化存储,每个pod是独立个体,每个pod都有一个自己专用的存储点。

satefulset在定义的时候就规定看每个pod是不能同一个存储。所以才需要动态pv。

statefulset的应用场景:

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

共享发布比较频繁

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

删除:基于控制器删除

kubectl delete statefulsets.apps web

3,daemonSet:确保每个节点上都运行一个pod副本。当node加入集群也会为他新增一个pod。当中node节点从集群当中移除时,pod也会被回收。

不能指定副本数。在每一个节点部署一个

每个节点上创建一个

在指定节点上创建

kubectl label nodes master01 ingeress=true

匹配标签来部署

daemonSet不需要指定调度策略,默认会在每个节点创建一个pod。除非污点。

我们也可以提供指定的方式,只把deamonset部署在指定的节点。

面试:daemonSe没有副本选择,不需要设置。

控制器类型的资源创建方式:基于控制器创建的pod,delete只是相当于重启,要测定删除pod,必须上传控制器。

4,job:job分为两类,job普通任务 定时任务cronjob。

job的作用,执行只需要一次性的任务。

脚本需要执行,数据库迁移,视频解码等等业务。

对于k8s系统来说,既然定义了是job,你只需要执行一次, 或者指定次数即可。不能一直允许。

第一个:必须指定容器的重启策略:OnFailure或者Never

第二个:执行失败的次数也是受限的。默认是6次,可以设置

达到限制之后才是根据restartPolicy的策略,来对容器进行重启或者不重启

第三个:重新yamI文件,先删除任务,再更新。不能动态更新。

面试:容器化部署,部署过数据库吗?核心组件不会容器化部署的。

前端你们会容器化部署吗?我们公司前端nginx就是容器化部署

5,cronjob:

周期性任务,定时执行,和linux的crontab一模一样,语法一样

分 时 日 月 周

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

也需要给容器定义重启策略

查看定时任务

执行完的任务会被保留,但最多就保留3个

concurrencyPolicy: Allow

#如果执行失败的任务的保留的个数默认是1个

startjingDeadlineSeconds: 15

#pod启动之后必须在一 定的时间内开始执行,如果超过15秒没有运行,任务将不会运行,任务也会标记失败

successfuljobsHistoryLimit: 3

#保留成功的任务数,默认值就是3

可选字段

删除:基于控制器删除

总结:

五个都是控制器创建的pod

都是依赖于控制器

deployment:无状态应用,最好用,也是最多的

statefulSet:有状态应用,有序的,独立的pod

daemonSet:: 无状态应用,不能定义副本数。每个节点都运行一个pod。 可以指定节点。

job:执行一次性的任务,必须要有重启策略,同时默认失败次数6次,之一失败次数达到,重启才会生效

cronjob:定时任务,通知,备份或者探测。

cronjob定期检测nginx的80端口是否存活tcpsocker */1 * * * *

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

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

相关文章

【软件测试】前端性能测试工具原理

不同于后端性能测试知识的琐碎、独立,这篇文章为你介绍前端性能测试工具WebPagetest,以一个具体网站为例,和你分析WebPagetest的用法,以及前端性能相关的主要概念与指标。 WebPagetest功能简介 WebPagetest,是前端性…

STM32--7针0.96寸OLED屏幕显示(4线SPI)

本文介绍基于STM32F103C8T60.96寸OLED(7针)的显示(完整程序代码见文末链接) 一、简介 OLED,即有机发光二极管( Organic Light Emitting Diode)。 OLED 由于同时具备自发光,不需背光…

【RL】(task1)绪论、马尔科夫过程、动态规划、DQN(更新中)

note 文章目录 note一、马尔科夫过程二、动态规划DQN算法时间安排Reference 一、马尔科夫过程 递归结构形式的贝尔曼方程计算给定状态下的预期回报,这样的方式使得用逐步迭代的方法就能逼近真实的状态/行动值。 有了Bellman equation就可以计算价值函数了马尔科夫过…

day2·算法-快乐数-有效三角形个数

今天又来更新啦,准备蓝桥杯的小伙伴可以和我一起来刷题,建议大家先看题,整理出思路,再看如何用简单的写法将思路构建出来,然后优化细节,找到解决某些例外出现的方法,从而成功解答这道题。 快乐…

ucloud轻量云(wordpress)配置ssl

ucloud 轻量云(wordpress)配置ssl 1、上传ssl证书到/usr/local/software/apache/conf,这里的文件名和内容与ucloud控制台下载下来的文件名和内容保持一致 2、修改httpd.conf文件 vim /usr/local/software/apache/conf/httpd.conf 找到下面两行,去掉注…

SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用

四、Database MetaData 与 SQL Express Language 的使用 MetaData对象用于描述表结构,SQL Express Language是DBAPI SQL的统一封装器。MetaData 与SQL Express 语句可以在Core层使用,ORM层基于MetaData, SQL Express基础上做了进一步抽象。本章将介绍在…

前端框架前置学习Node.js(2)npm使用,Node.js总结

npm - 软件包管理器 定义 npm是Node.js标准的软件包管理器 npm仓库中包含大量软件包,使其成为世界上最大的单一语言代码仓,并且可以确定几乎可用于一切的软件包 最初是为了下载和管理Node.js包依赖的方式,但其现在已成为前端JavaScript中使用的工具 使用: 1.初始化清单文…

VC++读取ini文件示例2

之前学习过ini文件读写;继续熟悉; CString str1;UINT m1 0;UINT m2 0;TCHAR p1[32];m1 GetPrivateProfileString(_T("mymoney1"), _T("moneyname1"), _T("空"), p1, sizeof(p1), _T("E:\\VCPrj\\VC2015\\cattest\…

免费的域名要不要?

前言 eu.org的免费域名相比于其他免费域名注册服务,eu.org的域名后缀更加独特。同时,eu.org的域名注册也比较简单,只需要填写一些基本信息,就可以获得自己的免费域名。 博客地址 免费的域名要不要?-雪饼前言 eu.org…

FPGA之LUT

由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构。LUT本质上就是一个RAM.它把数据事先写入RAM后,每当输入一个信号就…

【QML COOK】- 009-组件(Components)

组件对于QML来说就如同C的类一样。可以用同一个组件创建多个对象。 组件有两种定义方式: 用独立的.qml文件定义组件在.qml文件中用Component对象定义组件 1. 创建项目,新建文件IndependentComponent.qml import QtQuickRectangle {id : rootText {id…

2.3 数据链路层03

2.3 数据链路层03 2.3.7 以太网交换机 1、以太网交换机的基本功能 以太网交换机是基于以太网传输数据的交换机,以太网交换机通常都有多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连,一般都工作在全双工方式。 以太网交换…

go中如何进行单元测试案例

一. 基础介绍 1. 创建测试文件 测试文件通常与要测试的代码文件位于同一个包中。测试文件的名称应该以 _test.go 结尾。例如,如果你要测试的文件是 math.go,那么测试文件可以命名为 math_test.go。 2. 编写测试函数 测试函数必须导入 testing 包。每…

一文读懂「Large Language Model,LLM」大语言模型

中国大语言模型产业价值链 资料 艾瑞咨询:https://www.iresearch.com.cn/Detail/report?id4166&isfree0&type

《C++大学教程》4.34阶乘

题目: 对一个非负整数n来说,它的阶乘可以写成 n! (读作“n的阶乘”),其计算公式定义如下: n! n x (n-1) x (n-2)x......x1(对于大于1的 n ) 和 n! 1 ( 对于等于0或者等于1的n ) 例如,5&…

深信服技术认证“SCSA-S”划重点:逻辑漏洞

为帮助大家更加系统化地学习网络安全知识,以及更高效地通过深信服安全服务认证工程师考核,深信服特别推出“SCSA-S认证备考秘笈”共十期内容,“考试重点”内容框架,帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信服…

助力工业焊缝质量检测,YOLOv7【tiny/l/x】不同系列参数模型开发构建工业焊接场景下钢材管道焊缝质量检测识别分析系统

焊接是一个不陌生但是对于开发来说相对小众的场景,在我们前面的博文开发实践中也有一些相关的实践,感兴趣的话可以自行移步阅读即可:《轻量级模型YOLOv5-Lite基于自己的数据集【焊接质量检测】从零构建模型超详细教程》 《基于DeepLabV3Plus…

视频剪辑批量工作流程:视频色调调整让影片更出色,视频制作的方法

随着视频制作需求的不断增加,高效的批量工作流程在视频剪辑中变得越来越常见。色调调整是提升影片质量的部分环节。现在一起来看云炫AI智剪如何批量调整视频色调的操作。 原视频与色调调整后的视频效果对比。 视频色调调整的详细步骤: 操作1、在云炫AI…

【Python】tensor格式数据转为图像,并保存图像详解和示例

在项目中遇到一个tensor格式的数据,要保存为图像,此文对转换过程通过示例分享,以记录学习过程和帮助大家遇到同类问题时使用。 import torch import cv2 import numpy as np# 创建一个示例张量(tensor) input_tensor …

使用 TiUP 部署 TiDB 集群

TIDB优点 支持分布式且支持事务的关系型数据库,不用考虑分库分表 同时满足了可伸缩,高可用,关系型,支持事务。 基本上按官网的文档来就行了。 在线部署 以普通用户身份登录中控机。以 tidb 用户为例,后续安装 TiUP …