字段阐明apiVersionKubernetes API 版本,通常为 apps/v1,界说资源类型的版本。kind资源类型,这里是 Deployment,表现我们正在界说一个 Deployment 资源。metadata存储 Deployment 的元数据,包罗名称、定名空间、标签、注解等信息。metadata.nameDeployment 的名称,必须唯一。metadata.namespaceDeployment 所在的定名空间,默认为 default。metadata.labels标签,键值对形式,用于组织和选择资源。metadata.annotations注解,键值对形式,存储非标注数据,通常由外部系统使用。spec界说 Deployment 的规格,包罗副本数、Pod 模板、更新策略等配置。spec.replicas副本数,控制创建多少个 Pod,确保高可用性和负载均衡。例如 replicas: 3 会创建 3 个 Pod。spec.selector用于选择控制的 Pod 标签,Deployment 会通过此选择器来找到并管理相应的 Pods。spec.selector.matchLabels选择器标签,指定要管理的 Pod 的标签。spec.templatePod 模板,界说每个 Pod 的配置,包罗容器、卷、资源等。spec.template.metadataPod 模板的元数据,通常包罗标签、注解等。spec.template.metadata.labelsPod 的标签,必须与 spec.selector.matchLabels 中的标签匹配。spec.template.specPod 模板的详细配置,界说容器、卷、环境变量等。spec.template.spec.containersPod 中容器的配置列表,每个容器包罗镜像、端口、资源等详细配置。spec.template.spec.containers.name容器名称。spec.template.spec.containers.image容器使用的镜像。spec.template.spec.containers.ports容器暴露的端口列表,可以界说多个端口。spec.template.spec.containers.ports.containerPort容器暴露的端口。spec.template.spec.containers.resources容器的资源配置,包罗哀求和限制。spec.template.spec.containers.resources.requests哀求的资源量,Kubernetes 会确保容器有这些资源可用。spec.template.spec.containers.resources.requests.cpu哀求的 CPU 资源量,例如 250m。单位:m:毫核1000m = 1 核。core 或 空值:核spec.template.spec.containers.resources.requests.memory哀求的内存资源量,例如 64Mi。单位:B:字节,Ki:千字节,Mi:兆字节,Gi:吉字节,M:十进制单位(用于文件系统)。1M:1,000,000 字节,G:十进制单位(用于文件系统)。1G:1,000,000,000 字节spec.template.spec.containers.resources.limits容器的资源限制,表现容器最多可以使用的资源量。spec.template.spec.containers.resources.limits.cpu限制的 CPU 资源量,例如 500m。单位:m:毫核1000m = 1 核。core 或 空值:核spec.template.spec.containers.resources.limits.memory限制的内存资源量,例如 128Mi。单位:B:字节,Ki:千字节,Mi:兆字节,Gi:吉字节,M:十进制单位(用于文件系统)。1M:1,000,000 字节,G:十进制单位(用于文件系统)。1G:1,000,000,000 字节spec.template.spec.volumesPod 内部的存储卷界说,可以是 PVC、emptyDir、ConfigMap 等类型。spec.template.spec.volumes.name卷的名称。spec.template.spec.volumes.persistentVolumeClaim假如使用 PVC,则界说与之关联的 PersistentVolumeClaim 名称。spec.template.spec.volumes.configMap假如使用 ConfigMap 卷,则界说 ConfigMap 的名称和数据。spec.strategy更新策略,控制 Deployment 怎样更新 Pod。例如可以设置滚动更新策略。spec.strategy.type更新策略类型,通常有 RollingUpdate(滚动更新)和 Recreate(重新创建)。spec.strategy.rollingUpdate假如 type 为 RollingUpdate,则可以设置滚动更新的详细配置。spec.strategy.rollingUpdate.maxSurge滚动更新时最多可以创建的额外 Pod 副本数。例如 1 表现在更新过程中最多可以额外创建一个 Pod。spec.strategy.rollingUpdate.maxUnavailable滚动更新时最大不可用的 Pod 副本数。例如 1 表现更新时最多有 1 个 Pod 不可用。spec.minReadySecondsPod 被认为停当之前必须等待的时间(秒)。spec.paused假如设置为 true,Deployment 会暂停更新,直到规复。spec.revisionHistoryLimit控制保存多少个历史版本,防止过多的历史记录占用空间。spec.progressDeadlineSeconds更新进程的最大等待时间,假如超过此时间,更新将被认为失败。statusDeployment 的当前状态,自动生成,不需要在 YAML 文件中配置。status.replicas当前运行的副本数。status.updatedReplicas当前已更新的副本数。status.readyReplicas当前停当的副本数。status.unavailableReplicas当前不可用的副本数。 Pod 类型的 YAML 文件参数阐明
字段阐明apiVersionKubernetes API 版本,通常为 v1,界说资源类型的版本。kind资源类型,这里是 Pod,表现我们正在界说一个 Pod 资源。metadata存储 Pod 的元数据,包罗名称、定名空间、标签、注解等信息。metadata.namePod 的名称,必须唯一。metadata.namespacePod 所在的定名空间,默认为 default。metadata.labels标签,键值对形式,用于组织和选择资源。metadata.annotations注解,键值对形式,存储非标注数据,通常由外部系统使用。spec界说 Pod 的规格,包罗容器、卷、环境变量等配置。spec.containersPod 内部的容器配置列表,每个容器包罗镜像、端口、资源、环境变量等。spec.containers.name容器的名称。spec.containers.image容器使用的镜像。spec.containers.ports容器暴露的端口列表。spec.containers.ports.containerPort容器暴露的端口。spec.containers.command容器启动时执行的命令,覆盖默认镜像的入口命令。spec.containers.args容器启动时的命令行参数。spec.containers.resources容器的资源哀求和限制。spec.containers.resources.requests哀求的资源量,Kubernetes 会确保容器有这些资源可用。spec.containers.resources.requests.cpu哀求的 CPU 资源量,例如 250m。spec.containers.resources.requests.memory哀求的内存资源量,例如 64Mi。spec.containers.resources.limits容器的资源限制,表现容器最多可以使用的资源量。spec.containers.resources.limits.cpu限制的 CPU 资源量,例如 500m。spec.containers.resources.limits.memory限制的内存资源量,例如 128Mi。spec.containers.env容器环境变量。spec.containers.env.name环境变量的名称。spec.containers.env.value环境变量的值。spec.containers.volumeMounts容器中的卷挂载配置。spec.containers.volumeMounts.name卷的名称,必须与 spec.volumes 中界说的卷名称一致。spec.containers.volumeMounts.mountPath卷挂载到容器内的路径。spec.containers.volumeMounts.readOnly是否只读挂载,默认为 false。spec.volumesPod 使用的存储卷界说,可以是 PVC、emptyDir、ConfigMap 等类型。spec.volumes.name卷的名称。spec.volumes.persistentVolumeClaim假如使用 PVC,则界说与之关联的 PersistentVolumeClaim 名称。spec.volumes.configMap假如使用 ConfigMap 卷,则界说 ConfigMap 的名称和数据。spec.volumes.secret假如使用 Secret 卷,则界说 Secret 的名称和数据。spec.restartPolicyPod 的重启策略,通常有 Always(总是重启)、OnFailure(失败时重启)、Never(从不重启)。spec.schedulerName调度 Pod 的调度器名称,默认为默认调度器。spec.dnsPolicyPod 的 DNS 策略,常用的值有 Default、ClusterFirst、ClusterFirstWithHostNet。spec.serviceAccountName服务账户的名称,答应为 Pod 指定特定的服务账户。spec.nodeSelector用于选择 Pod 运行节点的节点标签。例如 nodeSelector: {disktype: ssd}。spec.affinity设置节点亲和性,可以界说将 Pod 安排到特定节点上的规则。spec.tolerations设置 Pod 的容忍规则,答应 Pod 在特定的节点上调度,只管该节点有一些限制条件。spec.hostNetwork是否使用主机网络,默认为 false。spec.hostPID是否共享主机的 PID 空间,默认为 false。spec.hostIPC是否共享主机的 IPC 空间,默认为 false。spec.securityContext设置 Pod 的安全上下文,界说 Pod 的运行时权限、SELinux 安全等。spec.securityContext.runAsUser界说容器运行时的用户 ID。spec.securityContext.runAsGroup界说容器运行时的用户组 ID。spec.securityContext.runAsNonRoot假如设置为 true,容器将无法以 root 用户运行。spec.securityContext.fsGroup设置文件系统组 ID,通常用于卷挂载。spec.nodeName假如指定,Pod 将被调度到此节点。spec.schedulerName设置自界说调度器名称。spec.affinity设置 Pod 的亲和性规则,界说节点选择、Pod 选择等规则。spec.volumesPod 使用的存储卷界说,可以是 PVC、emptyDir、ConfigMap 等类型。 Service 类型的 YAML 文件参数阐明
字段阐明apiVersionKubernetes API 版本,通常为 v1。kind资源类型,表现这是一个 Service。metadata存储 Service 的元数据,包罗名称、定名空间、标签、注解等信息。metadata.name服务的名称,必须在定名空间内唯一。metadata.namespaceService 所在的定名空间,默认为 default。metadata.labels标签,键值对形式,用于组织和选择资源。metadata.annotations注解,键值对形式,存储非标注数据,通常由外部系统使用。spec界说 Service 的规格,包罗选择器、端口、类型等配置。spec.selector选择器,用于匹配与该 Service 关联的 Pods。spec.selector.app选择器的标签键,匹配与此标签键和标签值相符的 Pods。spec.portsService 暴露的端口信息。spec.ports.portService 对外暴露的端口号。spec.ports.targetPortPod 上容器监听的端口号,Service 将流量转发到此端口。spec.ports.nodePort假如是 NodePort 类型,指定节点上的端口号。spec.ports.protocol协议类型,默认为 TCP,也可以是 UDP。spec.typeService 类型,常见值有 ClusterIP、NodePort、LoadBalancer、ExternalName。spec.type=ClusterIP默认类型,表现 Service 仅在集群内部可访问。spec.type=NodePortService 在每个 Node 上开放一个端口,外部可以访问到集群内部的服务。需要配置 nodePort 字段。spec.type=LoadBalancerService 会自动配置一个负载均衡器,适用于外部访问。通常用于云环境下,Kubernetes 会自动为该 Service 配置一个外部负载均衡器 IP。spec.type=ExternalName外部服务的 DNS 名称。将 Service 映射到外部 DNS 名称,常用于访问集群外部的服务。spec.clusterIP指定 ClusterIP 地点,假如不指定,Kubernetes 会自动分配。spec.externalIPs指定一组外部 IP 地点,可以将 Service 映射到这些地点。spec.loadBalancerIP假如使用 LoadBalancer 类型,可以指定外部负载均衡器的 IP 地点。spec.loadBalancerSourceRanges指定答应访问 Service 的外部 IP 地点范围。spec.sessionAffinity会话亲和性,通常设置为 None 或 ClientIP,表现怎样处置惩罚与客户端的会话。spec.sessionAffinityConfig只有在 sessionAffinity 设置为 ClientIP 时,才需要此配置。spec.sessionAffinityConfig.clientIP.timeoutSeconds设置客户端 IP 会话保持的时间,单位为秒。spec.healthCheckNodePort对于 NodePort 类型的 Service,可以设置节点上的健康检查端口。spec.publishNotReadyAddresses设置为 true 时,Service 会在 Pod 尚未完全停当时答应流量进入。spec.psp设置 Pod 安全策略(PodSecurityPolicy)。 ConfigMap 类型的 YAML 文件参数阐明