k8s中deployment模板

一、清单文件


apiVersion: apps/v1
kind: Deployment
metadata:annotations:version: "1.1.6"labels:k8s-app: deployment-nginxname: deployment-nginxnamespace: test
spec:minReadySeconds: 30progressDeadlineSeconds: 600replicas: 2revisionHistoryLimit: 5selector:matchLabels:dyapp: nginxdyitem: zcy-teststrategy:rollingUpdate:maxSurge: 1maxUnavailable: 0type: RollingUpdatetemplate:metadata:labels:dyapp: nginxdyitem: zcy-testspec:affinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:- preference:matchExpressions:- key: dylabel_node_memorysizeoperator: Gtvalues:- "8"weight: 1containers:- name: nginxenv:- name: MY_ENVvalue: PROimage: nginx:1.21.6imagePullPolicy: IfNotPresentlifecycle:postStart:exec:command:- /bin/sh- -c- echo 'Container was started'preStop:exec:command:- /bin/sh- -c- sleep 10livenessProbe:failureThreshold: 3httpGet:path: /index.htmlport: 80scheme: HTTPinitialDelaySeconds: 60periodSeconds: 3successThreshold: 1timeoutSeconds: 2ports:- containerPort: 80protocol: TCPreadinessProbe:failureThreshold: 3httpGet:path: /index.htmlport: 80scheme: HTTPinitialDelaySeconds: 5periodSeconds: 3successThreshold: 3timeoutSeconds: 2resources:limits:cpu: 500mephemeral-storage: 2000Mimemory: 512Mirequests:cpu: 200mephemeral-storage: 1000Mimemory: 512MiterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /tmpname: ephemeraldnsConfig:searches:- zcy.svc.cluster.local- test.svc.cluster.local- svc.cluster.local- cluster.localdnsPolicy: ClusterFirsthostAliases:- hostnames:- gray.mylocal.cnip: 192.168.6.16hostNetwork: falseimagePullSecrets:- name: tcr-dyzcy-test-pullinitContainers:- name: setsysctlcommand:- sh- -c- |sysctl -w net.core.somaxconn=65535sysctl -w net.ipv4.ip_local_port_range="1024 65535"sysctl -w net.ipv4.tcp_tw_reuse=1sysctl -w fs.file-max=1048576image: busyboximagePullPolicy: IfNotPresentsecurityContext:privileged: true# nodeName: 192.168.3.12# nodeSelector:#   dyarea: wan#   dyenv: prodpriority: 100preemptionPolicy: IfRequiredrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}serviceAccount: sa-imzcyserviceAccountName: sa-imzcyshareProcessNamespace: falseterminationGracePeriodSeconds: 30tolerations:- effect: NoSchedulekey: dynoderoleoperator: Equalvalue: gatewayvolumes:- name: ephemeralemptyDir: {}

二、详解
(1)deployment:
在此级别下,包含如下字段:
apiVersion:指定使用的 Kubernetes API 的版本。
kind:指定该资源的类型。
metadata:指定该资源的元数据,例如 name、namespace 等。
spec:指定该资源的具体配置信息。

(2)deployment.metadata
在此级别下,包含如下字段:
annotations:指定 Deployment 的注释信息。这些注释信息可以提供一些额外的描述、标记或关联其他资源等。它们对于扩展 Kubernetes 功能、监控和自动化过程非常有用。
labels:指定 Deployment 拥有的标签。后续可以根据标签查找匹配的 deployment 资源。
name:指定 Deployment 的名称。
namespace:指定 Deployment 所属的命名空间。

(3)deployment.spec
在此级别下,包含如下字段:
minReadySeconds:新创建的pod在没有任何容器异常的情况下准备就绪的最小秒数,以便被视为可用。默认值为0,即 pod 只要 ready 后马上被视为 available 。pod available 后才会开始终止老 pod 然后创建下一个新的pod。
paused:指示控制器是否暂停对该 Deployment 的操作。默认值为 false ,当设置为 true 时,Deployment 的更新将会暂停,不会进行新的 Replication Controller 的创建或删除。
progressDeadlineSeconds:指定 Deployment 控制器等待控制器进度的时间。如果超过这个时间,deployment 控制器将认为升级已经失败,并暂停升级。
replicas:指定要创建的 Pod 副本数量。
revisionHistoryLimit:指定保留的旧 ReplicaSets 历史记录的数量。旧的 ReplicaSet 将保留以便支持回滚操作。
selector:用来选择属于 Deployment 的 Pods 的标签选择器。只有具有匹配标签的 Pod 才会被该 Deployment 控制器管理。
strategy:指定用新 Pod 替换旧 Pod 时的策略,默认值为 RollingUpdate(滚动更新),当设置为 Recreate 时将先停掉所有老的 pod 再创建新 pod 。
template:定义 Pod 模板。它和 Pod 的语法规则完全相同。只是这里它是嵌套的,因此不需要指定 apiVersion 或 kind。

(4)deployment.spec.template
在此级别下,包含如下字段:
metadata:指定 pod 的元数据信息。由于这里是作为模板定义受控制器管理的pod,所以无需设置 name 和 namespace,只需要设置 annotations 和 lables 即可。
spec:指定该资源的具体配置信息。

(5)deployment.spec.template.spec
在此级别下,包含如下字段:
activeDeadlineSeconds:设置 Pod 的活动截止时间。它指定了一个整数值(以秒为单位),表示自Pod启动之时起,Pod可以持续运行的最长时间。一旦超过这个时间,Kubernetes将尝试终止该 Pod。默认值为0,表示不限制运行时间。

affinity:亲和性字段用于定义 Pod 与其他 Pod 或节点之间的关系和偏好。它可以帮助将相关的 Pod 放置在一起或将 Pod 分散到不同的节点上,以满足特定的调度需求和策略。
containers:定义 Pod 中包含的一个或多个容器。每个容器都有自己的镜像、环境变量、命令、参数和其他配置。

dnsConfig:用于定义 Pod 的 DNS 配置。
dnsPolicy:用于指定 Pod 的 DNS 策略。Default:表示使用默认的 DNS 策略。Pod 将使用集群中的 DNS 配置,通常是由 kubelet 进程维护的 DNS 服务器。ClusterFirst:表示优先使用集群内部的 DNS 解析。Pod 首先会使用集群中的 DNS 服务器来解析域名。如果无法解析,则会尝试使用外部的 DNS 服务器来解析。ClusterFirstWithHostNet:与 ClusterFirst 类似,但对于使用 HostNetwork 的 Pod,会直接使用主机网络的 DNS 配置而非集群内部的 DNS 配置。

hostAliases:用于在 Pod 中设置主机别名(相当于直接修改 hosts 文件)。
hostNetwork:指定 Pod 是否应该使用主机网络。默认情况下,每个 Pod 都会拥有自己的网络命名空间,Pod 内的容器只能通过 Pod 网络访问其他容器和外部服务。但是,当 hostNetwork 被设置为 true 时,Pod 将使用主机网络,即容器将直接绑定到主机上的网络接口。

imagePullSecrets:指定 Pod 中需要拉取私有容器镜像时所需的凭据。

initContainers:用于定义需要在主容器启动之前执行的初始化容器。定义多个初始化容器时将在主容器启动之前按顺序依次执行,每个初始化容器都必须成功完成才能继续主容器的启动过程。

nodeName:用于指定 Pod 运行的节点(node)。当你需要将特定的 Pod 调度到集群中的某个特定节点上时,可以使用 nodeName 字段来指定该节点的名称。

nodeSelector:用于通过标签选择器(label selector)来指定 Pod 所需的节点(node)。使用 nodeSelector 字段可以将特定的 Pod 调度到具有特定标签的节点上。

priority:优先级值。调度器(scheduler)使用优先级来确定哪些 Pod 优先被调度。具有更高优先级的 Pod 在资源紧张或节点资源不足时,将更有可能被调度到可用的节点上,以确保其优先运行。各种系统组件使用此字段查找 Pod 的优先级。启用 Priority Admission Controller 后,禁止用户设置此字段。准入控制器从 PriorityClassName 中填充此字段。数值越高,优先级越高。

preemptionPolicy:用于指定 Pod 的抢占策略。抢占是指在资源不足时,调度器可以暂停(预先抢占)低优先级的 Pod,以便为具有更高优先级的 Pod 留出足够的资源。preemptionPolicy 字段有两个可能的取值:PreemptLowerPriority:表示当资源不足时,具有较低优先级的 Pod 可以被抢占,以便为具有更高优先级的 Pod 分配资源。Never:表示 Pod 不会被抢占,即使资源不足。

restartPolicy:用于指定 Pod 中容器的重启策略。在 Kubernetes 中,一个 Pod 可能包含多个容器,restartPolicy 指定了当其中一个容器意外终止时,该容器应如何被重启。Always:表示当容器终止时,无论是由于错误、失败还是其他原因,Kubernetes 都会自动重启该容器。OnFailure:表示当容器以非零状态(即失败状态)终止时,Kubernetes 会自动重启该容器。如果容器正常退出(状态码为0),则不会触发重启。Never:表示当容器终止时,Kubernetes 不会自动重启该容器。

schedulerName:用于指定 Kubernetes 中用于调度 Pod 的调度器的名称。通过设置这个字段,你可以将特定的 Pod 分配给自定义的调度器,而不是集群默认的调度器。

securityContext:用于设置容器的安全上下文,以控制容器的安全属性和行为。通过 securityContext 字段,你可以指定容器运行时的一些安全配置,如用户 ID、访问权限等。

serviceAccount:用于为 Pod 指定所使用的 Service Account。Service Account 是 Kubernetes 中的一种身份验证方式,它用于授予 Pod 访问 Kubernetes API 和其他资源的权限。

serviceAccountName:用于为 Pod 指定所使用的 Service Account。

shareProcessNamespace:指定是否与其他容器共享进程命名空间。当将 shareProcessNamespace 设置为 true 时,Pod 中的所有容器将共享相同的进程命名空间,这意味着它们可以看到彼此的进程并进行相互通信。

terminationGracePeriodSeconds:指定在终止容器之前等待的时间(以秒为单位)。它定义了容器在接收到终止信号后的优雅终止期限。

tolerations:定义哪些污点可以被容忍。Pod 只有在它的 tolerations 包含了在节点上设置的污点后,才能在该节点上调度和运行。

volumes:定义为容器提供存储卷的配置。

(6)deployment.spec.template.spec.containers
在此级别下,包含如下字段:

args:指定容器的命令行参数。容器启动时会执行指定的命令,并将 args 中的参数传递给该命令。

command:指定容器的入口点命令。将覆盖镜像中定义的默认命令,从而指定容器启动时要执行的特定命令。

env:指定容器的环境变量。

image:指定使用的镜像及版本。

imagePullPolicy:指定 Kubernetes 在创建或更新 Pod 时如何拉取镜像。Always:始终拉取最新版本的镜像。IfNotPresent:仅在本地不存在该镜像时才拉取。Never:仅使用本地已存在的镜像,不会尝试从远程仓库中拉取。

lifecycle:指定容器的生命周期钩子。postStart:在容器创建后立即执行的操作。preStop:在容器终止之前执行的操作,例如在容器终止前执行一些清理工作。

livenessProbe:指定容器的存活健康检查机制。

name:指定容器的名称。

ports:定义 Pod 中容器的端口映射的字段。

readinessProbe:指定容器的就绪健康检查机制。

resources:定义 Pod 或容器的资源需求和限制的字段。通过 resources 字段,我们可以指定 Pod 或容器在集群中运行时需要的计算资源,如 CPU 和内存,并可以对其进行限制,以确保资源的合理分配和管理。

startupProbe:用于检测容器启动过程中是否成功。它与 livenessProbe 和 readinessProbe 类似,但是它的目的是在容器启动期间进行健康检查,而不是在容器运行时。

terminationMessagePath:指定容器终止时终止消息的存储路径。当容器终止时,Kubernetes 将会将终止消息写入到指定路径的文件中。默认情况下,终止消息会被写入到容器的 /dev/termination-log 文件中。

terminationMessagePolicy:指定容器终止消息的策略。File:表示终止消息将被写入到文件中,并由 terminationMessagePath 字段指定的路径。FallbackToLogsOnError:表示终止消息将被写入到容器的日志中。如果写入终止消息到文件失败,Kubernetes 将会回退到将终止消息写入到日志中。

volumeMounts:用于将存储卷(Volumes)与容器内的特定路径进行挂载。它定义了容器中的路径和存储卷之间的映射关系。

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

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

相关文章

智能汽车竞赛摄像头处理——摄像头入门(2)

前言 在上一节中,我们学习了如何将总钻风摄像头的图像显示在1.8寸TFT显示屏上,其实我建议大家显示屏还是要选用ips200,像素点多一些,显示的图像更加清晰。 二值化处理 (1)对原始的灰度图像进行二值化&am…

【操作宝典】IntelliJ IDEA新建maven项目详细教程

目录 🌼1. 配置maven环境 🌼2. 创建maven项目 🌼3. 创建maven项目完整示例 a. 导入spring boot环境 b. 修改maven配置 c. 下载jar包 d. 创建Java类 🌼1. 配置maven环境 【安装指南】maven下载、安装与配置详细教程-CSDN博客…

反物质(anti matter)和湮灭反应(Annihilation)浅读

反物质 反物质是正常物质的反状态。当正反物质相遇时,双方就会相互湮灭抵消,发生爆炸并产生巨大能量。 概念 正电子、负质子都是反粒子,它们跟通常所说的电子、质子相比较,电量相等但电性相反。科学家设想在宇宙中可能存在完全由…

【GitHub项目推荐--一个 C++ 实现快速存储的库】【转载】

一个提供可嵌入、持久键值存储以实现快速存储的库。 github地址 https://github.com/facebook/rocksdb 国内镜像 http://www.gitpp.com/ag/rocksdb RocksDB 是一个开源的嵌入式键值存储库,由 Facebook 开发,用于处理大量的数据,特别适合于…

【Eclipse插件开发】2运行时环境Runtime总览-【中篇】

系列文章目录 文章目录 系列文章目录三、并发基础架构并发基础运行作业Job常用作业操作作业的状态作业改变监听器作业管理器工作族关闭前完成作业3.1 报告进度进度报告简述进度监视器和UI系统作业用户作业进度组3.2 作业调度

sql注入绕过原理

了解SQL注入攻击的绕过技术对于加强网络安全具有重要意义。以下是对常见的绕过技术的整理,以及如何防御这些攻击策略。 1. 大小写绕过 原理:如果过滤机制仅识别特定大小写的关键字,攻击者可以通过改变关键字的大小写来尝试绕过过滤。 实验示例: SELECT * FROM users oR…

2024牛客寒假算法基础集训营1

H:01背包,但是bit 这题一看数据范围很大,重量和价值都是1e8级别的,当时还在想是不是背包,原来就是位运算 具体来说,我们枚举m的每一位为1的1,强制这一位为0,这样m被分为前后两部分…

力扣202-快乐数

快乐数 题目链接 解题思路: 两个指针,一快一慢,如果相遇,就会生成环如果环内元素为1,那么就可以返回 class Solution { public:int get(int n){int res 0;while(n){res (n%10) * (n%10);n / 10;}return res;}bool isHappy(int …

docker面试问题二

如何防止Docker容器中的漏洞和攻击? 防止Docker容器中的漏洞和攻击是一个多层次、多方面的任务,涉及从镜像构建、容器运行到网络安全的整个生命周期。以下是一些关键措施: 使用官方和受信任的镜像: 总是从官方源或受信任的第三方…

基于SSM的个性化旅游攻略定制系统设计与实现(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的个性化旅游攻略定制系统设计与实现(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&#xf…

故障诊断 | 一文解决,RF随机森林的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,RF随机森林的故障诊断(Matlab) 模型描述 随机森林(Random Forest)是一种集成学习(Ensemble Learning)方法,常用于解决分类和回归问题。它由多个决策树组成,每个决策树都独立地对数据进行训练,并且最终的预测结果是由所有决策…

为什么SSL会握手失败?SSL握手失败原因及解决方案

随着网络安全技术的发展,SSL证书作为网站数据安全的第一道防线,被越来越多的企业选择。SSL证书使用的是SSL协议,而SSL握手是SSL协议当中最重要的一部分。当部署SSL证书时,如果服务器和客户端之间无法建立安全连接,就会…

C++学习Day01之using声明以及using编译指令

目录 一、程序1.1 using声明1.2 using声明与就近原则1.3 using编译指令与就近原则1.4 多个using编译指令 二、分析与总结 一、程序 1.1 using声明 #include<iostream> using namespace std;namespace KingGlory {int sunwukongId 1; } void test01() {//1、using声明u…

由数据插入超长引起的问题——了解GaussDB和openGauss的字符集

前言 故事是这样开始的。我们的小DEMO项目的数据库版本从openGauss 2.1.0升级到了5.0.0版本。升级后进行功能验证的时候&#xff0c;测试同学发现个BUG&#xff0c;原来通过gs_restore导出来的数据再导入时报超长&#xff0c;插入失败了&#xff0c;如下图所示&#xff0c;nva…

2024年第十五届电子商务、管理与经济国际会议(ICEME 2024)即将召开!

2024年第十五届电子商务、管理与经济国际会议(ICEME 2024) 将于2024年7月19-21日在北京召开。本次会议将由北京工业大学主办&#xff0c;中国澳门圣若瑟大学提供学术支持。ICEME 2024旨在为来自世界各地的电子商务、管理与经济的研究人员提供一个展示最新研究成果的高质量交流平…

市场复盘总结 20240202

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 昨日主题投资 连板进级率 6/30 20% 二进三…

java多线程详解

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。简单理解为&#xff1a;引用软件中相互独立&#xff0c;可以同时允许的功能 进程是程序的基本执行实体 并发&#xff1a;在同一时刻&#xff0c;有多个指令在单个CPU上交替…

java事务相关知识小总结

java事务相关知识小总结 Spring 事务相关知识&#xff1a; Spring提供了强大的事务管理机制&#xff0c;支持声明式事务和编程式事务。以下是一些与Spring事务相关的关键知识点&#xff1a; 声明式事务管理&#xff1a; 使用 Transactional 注解声明事务&#xff0c;可以应用…

Java开发四则运算-使用递归和解释器模式

使用递归和解释器模式 程序结构设计具体实现1. 先上最重要的实现类&#xff1a;ExpressionParser&#xff08;最重要&#xff09;2. 再上上下文测试代码&#xff1a;Context&#xff08;程序入口&#xff0c;稍重要&#xff09;3. 使用到的接口和数据结构&#xff08;不太重要的…