k8s-Pod资源在线字段说明文档

Pod是Kubernetes中最小的可部署单元,它提供了容器的抽象层,使得容器可以作为一个整体来管理。


⚪️点击字段名可查看字段详情。小屏幕下体验不好,建议电脑端阅读。

  • apiVersion - 资源定义的版本

  • kind - 资源定义的名称

  • metadata - 元数据

    • name - 资源对象的名称

    • namespace - 名称空间

    • labels - 资源对象的标签键值对

    • annotations - 资源对象的注解

    • ownerReferences - 该对象的持有者对象列表。如果列表中的所有对象都已被删除,则该对象将被垃圾回收。

      • apiVersion - 资源定义的版本

      • kind - 资源定义的名称

      • name - 资源对象的名称

      • uid - 资源对象的id

    • finalizers - 最终处理器。可以向这个数组注册一个自定义的最终处理器,结合deletionTimestamp,在对象被标志为删除后,做一些资源的清理操作。举例:在Pod实际删除之前获取Pod的容器日记。

  • spec - 描述对象的期望状态

    • initContainers - 初始化容器。用于在Pod创建时完成一些初始化工作。数组,一个Pod支持多个初始化容器。

      • name - 容器的名称

      • image - 容器的镜像

      • imagePullPolicy - 镜像拉取策略

      • command - 启动命令

      • args - 启动参数

      • workingDir - 容器的工作目录。如果未指定,则将使用容器运行时的默认值,该值可能在容器镜像中进行了配置(例如在Dockerfile中使用WORKDIR指定)。

      • ports - 容器暴露的端口

        • name - 名称

        • hostPort - 映射到宿主机上的主机端口

        • containerPort - 容器端口

        • protocol - 协议

      • envFrom - 用于引用ConfigMap或Secret资源来设置环境变量。ConfigMap和Secret中的所有键值对都会被填充到容器的环境变量中。

        • prefix - 环境变量名的前缀。在ConfigMap的data的key加上此前缀作为环境变量名。

        • configMapRef - 引用的ConfigMap资源

          • name - ConfigMap资源的名称

        • secretRef - 引用的Secret资源

          • name - Secret资源的名称

      • env - 环境变量

        • name - 环境变量名

        • value - 环境变量值。默认空字符串。

        • valueFrom - 环境变量值从Pod的其它字段取值,或者从ConfigMap/Secret资源取值。

          • fieldRef - 值引用此Pod的其它字段

            • fieldPath - 字段路径。例如:metadata.name、status.hostIP、spec.serviceAccountName

          • resourceFieldRef - 值引用此Pod的Resources的字段

            • containerName - 容器的名称

            • resource - 容器的资源限制配置的字段引用,例如:limits.cpu, limits.memory, requests.cpu, requests.memory

          • configMapKeyRef - 值引用ConfigMap的data的某个字段

            • name - ConfigMap资源的名称

            • key - ConfigMap资源的data的key

          • secretKeyRef - 值引用Secret的data的某个字段

            • name - Secret资源的名称

            • key - Secret资源的data的key

      • resources - 资源配额

        • limits - 最高限额。key有cpu、memory。

          • cpu - 例如:100Mi

          • memory - 例如:1024Mi

        • requests - 最低申请。key有cpu、memory。

          • cpu - 例如:100Mi

          • memory - 例如:1024Mi

      • volumeMounts - 挂载到容器文件系统中的存储卷

        • name - 卷的名称

        • readOnly - 是否以只读方式挂载

        • mountPath - 挂载路径

        • subPath - 将卷中的指定文件或目录挂载到容器的mountPath路径上

    • containers - 容器。数组,一个Pod支持多个容器。

      • name - 容器的名称

      • image - 容器的镜像

      • imagePullPolicy - 镜像拉取策略

      • command - 启动命令

      • args - 启动参数

      • workingDir - 容器的工作目录。如果未指定,则将使用容器运行时的默认值,该值可能在容器镜像中进行了配置(例如在Dockerfile中使用WORKDIR指定)。

      • ports - 容器暴露的端口

        • name - 名称

        • hostPort - 映射到宿主机上的主机端口

        • containerPort - 容器端口

        • protocol - 协议

      • envFrom - 用于引用ConfigMap或Secret资源来设置环境变量。ConfigMap和Secret中的所有键值对都会被填充到容器的环境变量中。

        • prefix - 环境变量名的前缀。在ConfigMap的data的key加上此前缀作为环境变量名。

        • configMapRef - 引用的ConfigMap资源

          • name - ConfigMap资源的名称

        • secretRef - 引用的Secret资源

          • name - Secret资源的名称

      • env - 环境变量

        • name - 环境变量名

        • value - 环境变量值。默认空字符串。

        • valueFrom - 环境变量值从Pod的其它字段取值,或者从ConfigMap/Secret资源取值。

          • fieldRef - 值引用此Pod的其它字段

            • fieldPath - 字段路径。例如:metadata.name、status.hostIP、spec.serviceAccountName

          • resourceFieldRef - 值引用此Pod的Resources的字段

            • containerName - 容器的名称

            • resource - 容器的资源限制配置的字段引用,例如:limits.cpu, limits.memory, requests.cpu, requests.memory

          • configMapKeyRef - 值引用ConfigMap的data的某个字段

            • name - ConfigMap资源的名称

            • key - ConfigMap资源的data的key

          • secretKeyRef - 值引用Secret的data的某个字段

            • name - Secret资源的名称

            • key - Secret资源的data的key

      • resources - 资源配额

        • limits - 最高限额。key有cpu、memory。

          • cpu - 例如:100Mi

          • memory - 例如:1024Mi

        • requests - 最低申请。key有cpu、memory。

          • cpu - 例如:100Mi

          • memory - 例如:1024Mi

      • volumeMounts - 挂载到容器文件系统中的存储卷

        • name - 卷的名称

        • readOnly - 是否以只读方式挂载

        • mountPath - 挂载路径

        • subPath - 将卷中的指定文件或目录挂载到容器的mountPath路径上

    • volumes - 存储卷。数组,一个Pod可以挂载多个卷。

      • name - 卷的名称

      • secret - 可选。可以将一个secret资源当作卷。

        • secretName - secret资源的名称。secret资源必须与pod在同一个namespace。

        • items - 挂载项

          • key - 对应secret资源的data的某一项的key

          • path - 挂载文件的相对路径

          • mode - 文件的读写权限。例如:777,默认为defaultMode的值

        • defaultMode - 指定默认文件的读写权限。默认值为:644

      • configMap - 可选。可以将一个ConfigMap资源当作卷挂载使用。

        • name - ConfigMap资源的名称。ConfigMap资源必须与pod在同一个namespace。

        • items - 挂载项

          • key - 对应ConfigMap资源的data的某一项的key

          • path - 挂载文件的相对路径

          • mode - 文件的读写权限。例如:777,默认为defaultMode的值

        • defaultMode - 指定默认文件的读写权限。默认值为:644

      • emptyDir - emptyDir表示一个与Pod生命周期共享的临时目录。

      • restartPolicy - 重启策略。

      • terminationGracePeriodSeconds - 优雅终止期限是在将运行在 Pod 中的进程发送终止信号和强制使用 kill 信号停止进程之间的持续时间(以秒为单位)。用于使Pod能够优雅地终止。

      • activeDeadlineSeconds - Pod可运行的时长,超过这个时间则会被kill掉。只对Job和CronJob生效。

      • dnsPolicy - DN策略,可选,默认值为ClusterFirst。

      • nodeSelector - 节点选择器,通过标签选择匹配的节点。

      • serviceAccountName - 指定用于运行此Pod的ServiceAccount的名称,Pod将拥有ServiceAccount的权限(rbac)。

      • hostNetwork - 配置为true,Pod中运行的应用程序可以直接看到宿主主机的网络接口,宿主主机所在的局域网上所有网络接口都可以访问到该应用程序。设置此字段,则dnsPolicy必须设置为ClusterFirstWithHostNet。

      • securityContext - Pod级别的安全配置

        • runAsUser - 容器内进程的运行用户。该配置可以帮助限制容器内进程的权限。

        • runAsGroup - 容器内进程的运行用户组。该配置可以帮助限制容器内进程的权限。

        • runAsNonRoot - 指示容器必须以非 root 用户身份运行。如果为 true,Kubelet 将在运行时验证镜像,以确保它不会以root身份运行,如果是,则无法启动容器。

      • imagePullSecrets - 引用同一Namespace中的Secret资源,用于拉取镜像。

        • name - 引用的Secret资源的名称。

      • hostname - 主机名和子域名的生成规则是Kubernetes默认行为,但它们也可以通过配置来定制。你可以为Pod指定自定义的主机名或子域名。每个Pod都有一个唯一的主机名(hostname)和一个子域(subdomain)。<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>。

      • subdomain - 主机名和子域名的生成规则是Kubernetes默认行为,但它们也可以通过配置来定制。你可以为Pod指定自定义的主机名或子域名。每个Pod都有一个唯一的主机名(hostname)和一个子域(subdomain)。<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>。

      • affinity - 调度亲和性配置。

        • nodeAffinity - 节点亲和性。

          • requiredDuringSchedulingIgnoredDuringExecution - 调度期间必须,执行期间忽略的节点亲和性配置

            • nodeSelectorTerms - 节点选择器列表。

              • matchExpressions - 按节点标签匹配的节点选择器列表。

                • key - 标签名

                • operator - 操作符

                • values - 匹配的标签值,支持多个。

        • podAffinity - Pod亲和性。

          • requiredDuringSchedulingIgnoredDuringExecution - 调度期间必须,执行期间忽略的Pod亲和性配置

            • labelSelector - 标签选择器。

              • matchLabels - 标签匹配的映射。要求是AND关系。

              • matchExpressions - 表达式匹配数组。这些表达式是AND关系。

                • key - 标签的key

                • operator - 操作符,支持:In, NotIn, Exists, DoesNotExist

                • values - 匹配的标签值,支持多个。

            • namespaces - 指定适用于该规则的命名空间名称。

        • podAntiAffinity - Pod反亲和性。(例如,避免将此Pod与其他Pod放在同一节点中)

          • requiredDuringSchedulingIgnoredDuringExecution - 调度期间必须,执行期间忽略的Pod亲和性配置

            • labelSelector - 标签选择器。

              • matchLabels - 标签匹配的映射。要求是AND关系。

              • matchExpressions - 表达式匹配数组。这些表达式是AND关系。

                • key - 标签的key

                • operator - 操作符,支持:In, NotIn, Exists, DoesNotExist

                • values - 匹配的标签值,支持多个。

            • namespaces - 指定适用于该规则的命名空间名称。

      • schedulerName - 调度器名称,不配置则使用默认调度器。

      • tolerations - Pod的容忍度。

        • key - 污点key。如果一个容忍度的 key 为空且 operator 为 Exists, 表示这个容忍度与任意的 key、value 和 effect 都匹配,即这个容忍度能容忍任何污点。

        • operator - 操作符。默认为Equal

        • value - 污点值。

        • effect - 效果

        • tolerationSeconds - 容忍时间长度。effect必须是NoExecute有效,否则该字段将被忽略。

      • hostAliases - 自定义主机名解析到指定IP的规则,注入到Pod的hosts文件中。这仅适用于非hostNetwork的Pod。

        • ip - 域名解析的IP

        • hostnames - 域名,支持多个。

      • priorityClassName - 配置Pod的优先级类名。优先级类名通过PriorityClass资源定义。

      • priority - 优先级的值。当启用优先级准入控制器(Priority Admission Controller)时,它会阻止用户设置该字段。准入控制器会根据PriorityClassName资源对象配置的值填充该字段的值。