理解
内部版本与外部版本
路径信息
- 内部版本路径
pkg/api/<group>/
,如 Deploy 所在 Group 为 apps,内部版本路径为pkg/api/apps/
- 外部版本
vendor/k8s.io/api/<group>/<version>/
,如 Deploy 所在 Group 为 apps,外部 v1 版本路径为vendor/k8s.io/api/apps/v1/
staging/src/k8s.io/api/<group>/<version>/
,如 Deploy 所在 Group 为 apps,外部 v1 版本路径为staging/src/k8s.io/api/apps/v1/
- 上面两个路径对应的文件是【同一份】,因为是【软链接】
区别与作用
-
内部版本
- 不对外暴露, 仅在Kubernetes API Server内部使用
- 用于多资源版本的转换,例如将v1beta1版本转换为v1版本,其过程为v1beta1→internal→v1,即先将v1beta1转换为内部版本(internal),再由内部版本(internal)转换为v1版本
- 内部版本资源对象通过runtime.APIVersionInternal(即__internalÿ