k8s---pod控制器

pod控制器发的概念:

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

预期状态:

1、副本数

2、容器重启策略

3、镜像拉取策略

pod出故障的出去等等

pod控制器的类型:

1、replicaset:指定pod副本的数量

三个组件:

                1、pod的副本

                2、标签选择器,判断哪个pod归自己管理

                3、扩缩容

2、Deployment控制器,他是挂载在replicaset之上。管理无状态应用。目前最好的控制器,支持滚动更新和回滚。提供声明式配置。

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

4、DaemonSet:可以在所有节点部署一个pod,他没有副本数。可以限制部署的节点。也是无状态的应用。服务必须是一个守护进程。ingress logstashflannel

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

6、cronjob:周期性的定时任务控制器,不需要再后台持续运行。

pod和控制器的关系:

1、controllers:管理控制器。

pod通过label-----------》selector进行关联。

1、Deployment控制器

strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25%

这是Deployment的默认更新策略

rollingUpdate:滚动更新

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx1name: nginx
spec:replicas: 1selector:matchLabels:app: nginx1strategy:type: Recreate
#每次有更新,都会把旧的pod全部停止,然后再启动新的实例。服务可能会短暂的终端。无特殊需要可不加template:metadata:labels:app: nginx1spec:containers:- image: nginx:1.22name: nginx

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

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

2、statefulSet 有状态应用

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

statefulSet:有状态的应用。pod名称是有序的,所有pod都是独立的。存储卷也是独立的

顺序:0-n,delete删除也不会改变pod的序号,扩缩容也是有序的。

apiVersion: v1
kind: Service
metadata:name: nginx-weblabels:app: nginx2
spec:ports:- port: 80targetPort: 80clusterIP: ""selector:app: nginx2
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: weblabels:app: nginx2
spec:replicas: 2selector:matchLabels:app: nginx2serviceName: "nginx-web"template:metadata:labels:app: nginx2spec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumeClaimTemplates:- metadata:name: htmlspec:accessModes: ["ReadWriteMany"]storageClassName: "nfs-client-storageclass"resources:requests:storage: 2Gi

headless service:无头服务,没有clusterIP,必须要有动态的pvc。

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地址

类似于在集群中给pod做了一个映射

为什么要用headless????

有序。独立个体。

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

statefulset是有序的,pod的名称是固定的。重建之后pod的标识符也不变。pod的名称是唯一的标识符。

系统直接通过pod名称解析ip地址。IP地址会不会变???

答案:ip地址会变,类似于访问www.baidu.com 但访问的IP不是同一个。

为什么要有动态的pv???

只要是有状态的副本集群都会涉及持久化存储,每个pod是独立个体,每个pod都有自己专用的存储点。

statefulset在定义的时候就规定了每个pod是不能同一个存储卷。

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

更新发布比较频繁,名称不变。

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

3、daemonSet

daemonSet:确保每个节点上都运行一个副本,当有node加入集群,也会为他新增一个pod

当node节点从集群当中移除时,pod也会被回收。

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

我们也可以通过指定的方式,只把deamonset部害在指定的节点。没有副本数选择,不需要设置

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

千万不要delete

部署在所有节点

apiVersion: apps/v1
kind: DaemonSet
metadata:name: nginx-deamonlabels:app: nginx1
#提高代码可读性,别人读
spec:selector:matchLabels:app: nginx1template:metadata:labels:app: nginx1spec:containers:- image: nginx:1.22name: nginx
#不定义副本数,DaemonSet在每一个node上部署一个。

指定节点部署

此处定义了node02节点标签 ingress=true

​
apiVersion: apps/v1
kind: DaemonSet
metadata:name: nginx2-deamonlabels:app: nginx2
#提高代码可读性,别人读
spec:selector:matchLabels:app: nginx2template:metadata:labels:app: nginx2spec:containers:- image: nginx:1.22name: nginx2nodeSelector:ingress: "true"
#不定义副本数,DaemonSet在指定node上部署一个。
#除非污点,不部署

4、job

job:job分为两类:job普通任务 和 cronjob定时任务

job:执行只需要一次性的任务。

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

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

第一个:必须指定容器的重启策略,onfailure never

第二个:执行失败的次数也是收限制的,,默认是6次

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

坑:容器化部署过数据库没有??

可以,数据库是核心资产,不会容器化部署。你们公司是容器化部署吗?

前端你们会容器化部署吗??

nginx可以容器化部署。

apiVersion: batch/v1
kind: Job
metadata:name: centos-job
spec:template:spec:containers:- image: centos:7name: centoscommand: ["/bin/bash","-c","test -e /etc/passwd1"]restartPolicy: NeverbackoffLimit: 4
#允许任务失败的次数,4次后,restartPolicy的策略,来进行容器的重启或者不重启。

5、cronjob

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

分时日月周   * * * * * 

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

定时任务yaml文件

apiVersion: batch/v1beta1
kind: CronJob
metadata:name: centos-cronjob
spec:schedule: "*/1 * * * *"concurrencyPolicy: Allow
#如果执行失败的任务的保留的个数 默认是1个startingDeadlineSeconds: 15
#pod启动之后必须在一定的时间内开始执行,如果超过15秒没有运行,任务将不会运行,任务也会标记失败successfulJobsHistoryLimit: 3
#保留成功的任务数,默认值就是3jobTemplate:spec:template:spec:containers:- image: centos:7name: centoscommand: ["/bin/bash","-c","date; echo lyw"]restartPolicy: Never

总结:

五个都是控制器创建的pod,都是依赖控制器

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

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

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

job:执行一次性的任t务,必须有重启策略,是默认失败次数6次,只有失败次数达到,重启会生效

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

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

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

相关文章

可达性分析

可达性分析 这个算法的基本思路就是通过 一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过 程所走过的路径称为“引用链”(Reference Chain),如果某个对象到GC …

力扣22. 括号生成

回溯 思路&#xff1a; 定义函数 dfs(item, open, close, n) 表示当前 item 有左括号个数 open 和右括号个数 close &#xff1b;使用递归&#xff0c;长度为 n 的序列就是在长度为 n - 1 的序列后加左括号或者右括号&#xff1a; 先放左括号&#xff0c;只要其个数 < n&am…

SSL证书自动化管理有什么好处?如何实现SSL证书自动化?

SSL证书是用于加密网站与用户之间传输数据的关键元素&#xff0c;在维护网络安全方面&#xff0c;管理SSL证书与部署SSL证书一样重要。定期更新、监测和更换SSL证书&#xff0c;可以确保网站的安全性和合规性。而自动化管理可以为此节省时间&#xff0c;并避免人为错误和不必要…

微信原生小程序上传与识别以及监听多个checkbox事件打开pdf

1.点击上传并识别 组件样式<van-field border"{{ false }}" placeholder"请输入银行卡卡号" model:value"{{bankNo}}" label"卡号"><van-icon bindtap"handleChooseImg" slot"right-icon" name"sca…

IDEA中启动项目报堆内存溢出或者没有足够内存的错误

1.报错现象 java.lang.OutOfMemoryError: Java heap space 或者 Could not reserve enough space for object heap 2.解决办法 在运行配置中VM选项后加下面的配置&#xff1a; -server -XX:MaxHeapSize256m -Xms512m -Xmx512m -XX:PermSize128M -XX:MaxPermSize256m 3.JVM虚…

单表查询练习

目录 题目&#xff1a; 制定约束&#xff1a; 添加表格信息&#xff1a; 所需查询的信息&#xff1a; 实验步骤&#xff1a; 第一步&#xff1a;制作表格 创建新的数据库 创建表格约束&#xff1a; 为表格加入数据&#xff1a; 第二步&#xff1a;查询信息 题目&…

Red Hat Enterprise Linux 7.9 安装图解

引导和开始安装 选择倒计时结束前&#xff0c;通过键盘上下键选择下图框选项&#xff0c;启动图形化安装过程。 安装语言选择 这里要区分一下&#xff0c;当前选中的语言作为安装过程中安装器所使用的语言&#xff0c;这里我们选择中文简体。不过细心的同学可能发现&#xff0c…

OpenGL ES之深入解析如何绘制“跳动的心“特效

最近在浏览技术网站时,偶然间发现如下这个"跳动的心"特效,觉得蛮好玩的,当得知这个特效是用纯代码实现(GLSL 实现)的,确实又被惊到:追溯该特效最初的来源,最终在 ShaderToy 网站看到它的原始实现,另外在 ShaderToy 上还发现了无数类似惊人的特效,并且这些特…

JVM:性能监控工具分析和线上问题排查实践

前言 在日常开发过程中&#xff0c;多少都会碰到一些jvm相关的问题&#xff0c;比如&#xff1a;内存溢出、内存泄漏、cpu利用率飙升到100%、线程死锁、应用异常宕机等。 在这个日益内卷的环境&#xff0c;如何运用好工具分析jvm问题&#xff0c;成为每个java攻城狮必备的技能…

小程序进阶学习(视频完结)(核心,重点)

首先上面是一个视频播放器 把视频的宽度设置为100%即可铺满全屏 然后视频的标题和作者 最后就是一个视频播放列表 &#xff0c;设置一个固定位置开始滚动即可 还有一个问题没有解决&#xff0c;大家出出主意。 在播放页面在点击一个新的视频去播放&#xff0c;点进去的新视频获…

C/C++ BM6判断链表中是否有环

文章目录 前言题目解决方案一1.1 思路阐述1.2 源码 解决方案二2.1 思路阐述2.2 源码 总结 前言 做了一堆单链表单指针的题目&#xff0c;这次是个双指针题&#xff0c;这里双指针的作用非常明显。 题目 判断给定的链表中是否有环。如果有环则返回true&#xff0c;否则返回fal…

计算机网络-ACL实验

一、NAT实验配置 NAT实验配置 通过基本ACL匹配VLAN 10网段&#xff0c;然后在出口设备NAT转换只要匹配到VLAN10地址则进行转换。 核心交换机 # 配置VLAN和默认路由&#xff0c;配置Trunk和Access接口 interface Vlanif10ip address 192.168.10.254 255.255.255.0 # interface V…

深入了解WPF控件:基础属性与用法(五)

掌握WPF控件&#xff1a;熟练常用属性&#xff08;五&#xff09; Image 是一种在WPF应用程序中显示图片的方式。它可以用于显示静态图片&#xff0c;也可以用于显示动态图片&#xff0c;如GIF。此外&#xff0c;Image控件还可以自适应大小&#xff0c;根据容器的大小自动调整…

关于gltf模型格式文件的学习

目录 glTF模型 小黄鸭的gltf模型 字段分析 scene nodes meshes primitives attributes indices mode material accessors bufferView byteOffset count componentType type materials textures images samplers magFilter与minFilter wrapS与wrapT 进行…

高效火情监测,科技助力森林防火【数字地球开放平台】

数字地球开放平台-以卫星遥感为核心的空天信息服务开放平台 (geovisearth.com) 2019年3月30日&#xff0c;四川省凉山州木里县爆发了一场森林火灾&#xff0c;火点位于海拔3800米左右&#xff0c;地形险峻、坡度陡峭、谷深难以抵挡火势。在扑救的过程中&#xff0c;27名森林消防…

最小公倍数之和(莫比乌斯反演P3911)

路径&#xff1a; P3911 最小公倍数之和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路&#xff1a; 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include<cstring> #include<cmath> #include<…

JavaSE 万字总结知识点(期末复习指南)

目录 一.Java的特性 二.注释 三.数据类型 基本数据类型 包装类 引用数据类型 四.运算符 五.逻辑控制 选择语句 循环语句 六.数组 七.方法 八.类与对象 构造方法 内部类 九.继承和多态 十.抽象类与接口 抽象类 接口 十一.异常 一.Java的特性 Java最初由Sun…

助力焊接场景下自动化缺陷检测识别,基于YOLOv5【n/s/m/l/x】全系列参数模型开发构建工业焊接场景下缺陷检测识别分析系统

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

【华为 ICT HCIA eNSP 习题汇总】——题目集3

1、&#xff08;多选&#xff09;IEEE 802.11n支持在哪些频率下工作&#xff1f; A、2.5GHz B、2.4GHz C、5GHz D、6GHz 考点&#xff1a;无线局域网 解析&#xff1a;&#xff08;BC&#xff09; IEEE 820.11n 支持双频段&#xff0c;它兼容IEEE 802.11a 与IEEE 820.11b 两种标…

springcloud Ribbon负载均衡服务调用

文章目录 代码下载地址简介测试 Ribbon负载均衡算法手写RoundRobinRule源码8001/8002微服务改造80订单微服务改造测试 代码下载地址 地址:https://github.com/13thm/study_springcloud/tree/main/days6_Ribbon 简介 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端…