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 相關資源 |