您的位置 首页 k8s

k8s 中资源清单中 apiVersion 字段详解

k8s 中资源清单中 apiVersion 字段详解

注意:

 

 

 

在 Kubernetes 中,apiVersion 字段用于指定 Kubernetes API 的组和版本。为了便于扩展和管理,Kubernetes 将 API 分成了不同的API 组(API Group)

1. 核心组(Core Group)

核心组是 Kubernetes 最基础、最核心的一组 API,包含了 Pod、Service 等最原始的资源。
  • 特点:没有显式的组名(Group 为空)。
  • API 路径/api/v1
  • YAML 写法:在 apiVersion 中直接写版本号 v1
  • 常见资源:Pod, Service, Node, Namespace, ConfigMap, Secret, PersistentVolume 等

2. 命名组(Named API Groups)

随着 Kubernetes 的发展,为了支持更多功能(如应用管理、网络、批处理等),引入了命名组机制。
  • 特点:有明确的组名,按功能划分。
  • API 路径/apis/{组名}/{版本}
  • YAML 写法:在 apiVersion 中写 组名/版本
  • 常见资源:Deployment (apps 组), Ingress (networking.k8s.io 组), Job (batch 组) 等

常见 API 组与资源对照表

 

API 组 (Group) apiVersion 写法 常见资源 (Kind)
核心组 (Core) v1 (core/v1) Pod, Service, Node, ConfigMap, Secret, Namespace
应用管理 (apps) apps/v1 Deployment, StatefulSet, DaemonSet, ReplicaSet
批处理 (batch) batch/v1 Job, CronJob
网络 (networking) networking.k8s.io/v1 Ingress, NetworkPolicy
存储 (storage) storage.k8s.io/v1 StorageClass, CSI 相关资源
权限控制 (rbac) rbac.authorization.k8s.io/v1 Role, ClusterRole, RoleBinding

实际应用中的注意事项

  1. RBAC 权限配置
    在编写 Role 或 ClusterRole 时,核心组的资源需要用空字符串 "" 来表示。
  • 访问 Pod(核心组):apiGroups: [""]
  • 访问 Deployment(apps 组):apiGroups: ["apps"]
  1. API 版本弃用
    Kubernetes 会不断演进,旧的 API 版本(如 extensions/v1beta1)会被弃用并最终移除。在升级集群版本时,务必检查 YAML 文件中的 apiVersion 是否依然受支持,以免导致资源创建失败。
  2. 如何查看集群支持的 API 组
    你可以直接在终端运行以下命令,查看当前集群支持的所有 API 组和版本:
kubectl api-versions

或者查看具体的资源属于哪个 API 组:
kubectl api-resources

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章