一、清单文件
二、详解
(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,表示不限制运行时间。