第44节 kubernetes 资源内部版本和外部版本
❤️💕💕新时代拥抱云原生,云原生具有环境统一、按需付费、即开即用、稳定性强特点。Myblog:http://nsddd.top
[TOC]
资源的外部版本和资源的内部版本
Kubernetes的资源可以分为内部版本和外部版本。
- 内部版本资源是Kubernetes内部使用的资源对象,它们是由Kubernetes API服务器内部使用的资源对象。
- 外部版本资源是由用户定义的资源对象,它们是由用户在Kubernetes集群外部创建和管理的。
在Kubernetes中,资源类型和资源定义是在代码中定义的,具体的位置在于Kubernetes源码中的pkg/apis目录下。每一种资源都有自己的目录,里面包含着该资源类型的定义文件和对应控制器的实现文件。
例如,Pod资源类型的定义文件位于pkg/apis/core/v1/pod.go
,而Pod控制器的实现文件位于pkg/controller/pod/pod_controller.go
。
⚠️ 在目录 kubernetes/pkg/apis/apps
下面,我们可以看到 apps
就是定义的<group>
。
目录结构:
root@cubmaster01:/workspces/kubernetes/pkg/apis/apps# ls
doc.go install register.go v1 v1beta2 zz_generated.deepcopy.go
fuzzer OWNERS types.go v1beta1 validation
root@cubmaster01:/workspces/kubernetes/pkg/apis/apps# ls v1
conversion.go defaults.go doc.go zz_generated.conversion.go
conversion_test.go defaults_test.go register.go zz_generated.defaults.go
ls
看到的就是 资源的外部版本代码定义 ,ls v1
看到的就是 资源的内部版本代码定义。
即内部版本一般和资源组在同一级目录下。
外部版本了的资源类型定义
在Kubernetes中,外部资源版本定义的位置所在:vendor/k8s.io/api
目录下,其完整的描述路径是: vendor/k8s.io/api/<group>/<version>/<resource.file>
例如,Pod 资源的外部版本k8s.io/api/core/v1/
:
root@cubmaster01:/workspces/kubernetes/vendor/k8s.io/api/core# ls v1/
annotation_key_constants.go register.go types.go
doc.go resource.go types_swagger_doc_generated.go
generated.pb.go taint.go types_test.go
generated.proto taint_test.go well_known_labels.go
lifecycle.go toleration.go well_known_taints.go
objectreference.go toleration_test.go zz_generated.deepcopy.go
END 链接
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©