Kubernetes 的 YAML 配置文件-apiVersion
Kubernetes的YAML配置文件–apiVersion
关于 Kubernetes 的 apiVersion
说明 以及 生产环境中推荐使用的版本 的完整指南,帮助你正确、安全地编写 Kubernetes 配置文件。
一、什么是 apiVersion
?
在 Kubernetes 的 YAML 配置文件中,apiVersion
字段用于指定你所使用的 Kubernetes API 的组和版本。Kubernetes 使用不同的 API 组来组织资源,每个组都有多个版本(Alpha、Beta、GA),用于表示其稳定性。
apiVersion: apps/v1
kind: Deployment
apiVersion
决定了kind
所对应的资源结构和行为。- 不同的资源类型(如 Deployment、Service)必须使用对应的 API 版本。
二、apiVersion
的命名结构
Kubernetes 的 apiVersion
有两种形式:
1. 核心 API 组(Core Group)
- 没有前缀,直接使用
v1
- 包含最基础的资源:Pod、Service、ConfigMap、Secret、Node、Namespace 等
apiVersion: v1
kind: Pod
2. 命名 API 组(Named API Groups)
- 格式为:
<group-name>/version
- 例如:
apps/v1
、networking.k8s.io/v1
、batch/v1
API 组 | 示例 |
---|---|
apps/v1 | Deployment, StatefulSet, DaemonSet |
batch/v1 | Job, CronJob |
networking.k8s.io/v1 | Ingress, NetworkPolicy |
rbac.authorization.k8s.io/v1 | Role, ClusterRole, RoleBinding |
storage.k8s.io/v1 | StorageClass, CSI 相关资源 |