Deployment的.yaml文件通常分为kind
、apiVersion
、metadata
、spec
、status
五个部分。以下是每个部分的详细描述:
-
kind:
- 表示资源类型。对于Deployment,此字段的值固定为
Deployment
。它告诉Kubernetes这是一个Deployment资源对象。
- 表示资源类型。对于Deployment,此字段的值固定为
-
apiVersion:
- 表示资源的版本号。不同的Kubernetes版本可能支持不同的apiVersion。对于Deployment,常见的apiVersion有
apps/v1
和extensions/v1beta1
(后者为较旧的版本,现已不常用)。选择哪个版本取决于你的Kubernetes集群支持的版本。
- 表示资源的版本号。不同的Kubernetes版本可能支持不同的apiVersion。对于Deployment,常见的apiVersion有
-
metadata:
- 表示资源的元数据信息。这部分包含了一些基本的描述性信息,如资源的名称(
name
)、命名空间(namespace
)、标签(labels
)等。 name
:Deployment的名字,通常用来标识这个Deployment实例,在同一个namespace中必须唯一。namespace
:指定Deployment部署在哪个命名空间中。labels
:为Deployment设置标签,这些标签可以用于筛选和组织资源。
- 表示资源的元数据信息。这部分包含了一些基本的描述性信息,如资源的名称(
-
spec:
- 表示资源的规格说明和预期状态。这是Deployment配置中最核心的部分,包含了关于如何部署、更新和管理Pod的详细信息。
replicas
:指定期望的Pod副本数量。revisionHistoryLimit
:指定可以保留的旧的ReplicaSet数量,用于历史版本回滚。selector
:指定Deployment管理的Pod的选择器,通过匹配标签来选择Pod。strategy
:指定新的Pod替换旧的Pod的策略,包括滚动更新(RollingUpdate
)和重建(Recreate
)两种。template
:定义了Pod的模板,包括Pod的元数据、容器配置、资源限制等。
-
status:
- 表示资源的实际状态。这部分由Kubernetes系统自动填充,反映了Deployment的当前状态,如已部署的副本数量、是否可用等。
availableReplicas
:当前可用的副本数量。conditions
:包含了一系列的条件,用于描述Deployment的状态,如是否达到最小可用性、是否正在进展中等。observedGeneration
:观察到的Deployment配置的代数,用于确保Deployment配置的一致性。readyReplicas
:当前已经就绪的副本数量。replicas
:当前的副本总数。updatedReplicas
:已经更新的副本数量。