pod 控制器

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.mfbz.cn/a/324388.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【WSL】Win10 使用 WSL2 进行 Linux GPU 开发

1. GPU 驱动 先安装 驱动 参考 https://docs.nvidia.com/cuda/wsl-user-guide/index.html 使用 https://www.nvidia.com/Download/index.aspx 提供的兼容 GeForce 或 NVIDIA RTX/Quadro 显卡在系统上安装 NVIDIA GeForce Game Ready 或 NVIDIA RTX Quadro Windows 11 显示驱动…

【征服redis2】redis的事务与lua

1.redis事务介绍 在前面我们介绍了redis的几种典型数据结构和应用,本文我们来看一下redis的事务问题。事务也是数据库的重要主题,熟悉关系型数据库的读者应该对事务比较了解,简单地说,事务表示一组动作,要么全部执行&…

Web接口自动化测试之Get与Post请求

关于HTTP协议,我考虑了一下觉得没必要再花一节内容来介绍,因为网上关于HTTP协议的介绍非常详细。本着以尽量避免介绍一空洞了概念与理论来介绍接口测试,我这里仍然会给出具体实例。 在此之前先简单的介绍一下基本概念:我们想要打开…

new mars3d.control.LocationBar({实时获取到地球渲染后的帧率fps等信息

问题:new mars3d.control.LocationBar({实时获取到地球渲染后的帧率fps等信息 实现代码参考:可以获取到之后展示在其他位置。 let _lastFpsSampleTime Cesium.getTimestamp()let _lastMsSampleTime Cesium.getTimestamp()let _fpsFrameCount 0let _ms…

课设:NFA确定化和最小化程序的设计与实现(html+css+js实现)

文章目录 问题描述待解决问题1、如何存储NFA或者是DFA2、NFA多初态问题3、子集化过程思路4、分割法过程思路 使用方法:下载链接 问题描述 NFA确定化和最小化程序的设计与实现(参考教材3.4节) 目的:设计一个应用程序,将…

Android 12+ MQTT适配

最终的解决方案是下载源码去改。我用的是已经修改好了的库,如果包名要自己的, 要注意: 1. compileSdk 34 和 targetSdk 34 改成33(Android12)或者34(Android13)。 2. 下载的 module 导入。 …

运筹说 第56期 | 整数规划的数学模型割平面法

前几章讨论过的线性规划问题的一个共同特点是:最优解的取值可以是分数或者小数。然而,在许多实际问题中,决策者要求最优解必须是整数,例如公交车的车辆数、员工的人数、机器的台数、产品的件数等。那么,我们能否将得到…

第06章_面向对象编程(基础)拓展练习(求三角形面积,猴子吃桃,圆类,学生类,矩形类)

文章目录 第06章_面向对象编程(基础)拓展练习1、圆类2、学生类3、MyInt类4、MyDate日期类-15、MyDate日期类-26、数学计算工具类7、常识工具类8、学生对象数组9、员工管理类-110、员工管理类-211、比较大小12、数组排序和遍历13、求三角形面积14、图形工…

【分布式微服务专题】SpringSecurity OAuth2快速入门

目录 前言阅读对象阅读导航前置知识笔记正文一、OAuth2 介绍1.1 使用场景*1.2 基本概念(角色)1.3 优缺点 二、OAuth2的设计思路2.1 客户端授权模式2.1.0 基本参数说明2.1.1 授权码模式2.1.2 简化(隐式)模式2.1.3 密码模式2.1.4 客…

Maven 基础安装配置及使用

大家好我是苏麟 , 今天聊聊Maven . Maven Maven , 是Apache公司下基于Java开发的开源项目 . 我们构建一个项目需要用到很多第三方的类库,需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一…

Openlayer【四】—— 控件

控件 控件是一个可见的小部件,其 DOM 元素位于 屏幕。它们可以涉及用户输入(按钮),也可以仅供参考; 位置是使用 CSS 确定的。默认情况下,它们位于 容器,但可以使用 任何外部 DOM 元素。 其中ol/control是…

【LV12 DAY20 RTC实验】

编程实现通过LED状态显示当前电压范围,并打印产生低压警报时的时间 注: 电压在1501mv~1800mv时,LED2、LED3、LED4、LED5点亮 电压在1001mv~1500mv时,LED2、LED3、LED4点亮 电压在501mv~1000mv时,LED2、LED3点亮 电压在…

车厢重组#洛谷

题目描述 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转 180 180 180 度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序…

自定义vector的实现

实现前需要思考的一个问题 为什么需要将空间的申请与对象的构建分开 查看vector的模板参数时可以看到其有第三个参数是空间适配器allocator,查找其对外提供的成员函数不难发现它的实现逻辑是将空间的申请与对象的构建分开的,为什么呢?不弄清…

ETCD 未授权访问实战案例

1、发现 etcd 未授权。 https://xxx200:2379/v2/keys 2、尝试在etcd里查询管理员的token,然后使用该token配合kubectl指令接管集群。 proxychains ./etcdctl --insecure-transportfalse --insecure-skip-tls-verify --endpointshttps://xxx0:2379/ get / --prefix…

算法通关村第十六关—滑动窗口经典问题(白银)

滑动窗口经典问题 一、最长子串专题 1.1 无重复字符的最长子串 LeetCode3给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。例如: 输入:s"abcabcbb" 输出:3 解释:因为无重复字符的最长子串是…

在Windows中安装MinGW

1、下载 github下载https://github.com/niXman/mingw-builds-binaries/releases 或官网下载https://www.mingw-w64.org/downloads/ 2、选择x86_64-12.1.0-release-posix-seh-rt_v10-rev3 3、解压到当前文件夹 解压之后,可以移动到自己喜欢的文件夹 ,复…

1月12日1月15日代码随想录路经总和从中序和后序遍历构造二叉树

112.路经总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 …

msvcr120.dll丢失是什么意思,msvcr120.dll丢失怎样修复

msvcr120.dll是一个重要的动态链接库(Dynamic Link Library,DLL)文件,其中包含了Microsoft Visual C Redistributable for Visual Studio 2013的组件之一。当系统或应用程序提示该DLL文件缺失时,可能会导致应用程序无法…

电商物流查询:未来的发展方向

在电商日益繁荣的时代,物流信息查询不仅关乎消费者体验,更影响着电商运营的效率。快速、准确地追踪物流信息至关重要。本文将简述物流信息快速追踪的价值,并重点介绍固乔快递查询助手这一高效查询工具及其批量查询功能。 一、物流信息快速追踪…
最新文章