官术网_书友最值得收藏!

3.2 ResourceList

Kubernetes Group、Version、Resource等核心數據結構存放在vendor/k8s.io/apimachinery/pkg/apis/meta/v1目錄中。它包含了Kubernetes集群中所有組件使用的通用核心數據結構,例如APIGroup、APIVersions、APIResource等。其中,我們可以通過APIResourceList數據結構描述所有Group、Version、Resource的結構,以最常用的Pod、Service、Deployment資源為例,APIResourceList Example代碼示例如下:

Kubernetes的每個資源可使用metav1.APIResource結構進行描述,它描述資源的基本信息,例如資源名稱(即Name字段)、資源所屬的命名空間(即Namespaced字段)、資源種類(即Kind字段)、資源可操作的方法列表(即Verbs字段)。

每一個資源都屬于一個或多個資源版本,資源所屬的版本通過metav1.APIVersions結構描述,一個或多個資源版本通過Versions []string字符串數組進行存儲。

在APIResourceList Example代碼示例中,通過GroupVersion字段來描述資源組和資源版本,它是一個字符串,當資源同時存在資源組和資源版本時,它被設置為<group>/<version>;當資源不存在資源組(Core Group)時,它被設置為/<version>。可以看到Pod、Service資源屬于v1版本,而Deployment資源屬于apps資源組下的v1版本。

另外,可以通過Group、Version、Resource結構來明確標識一個資源的資源組名稱、資源版本及資源名稱。Group、Version、Resource簡稱GVR,在Kubernetes源碼中該數據結構被大量使用,它被定義在vendor/k8s.io/apimachinery/pkg/runtime/schema中。代碼示例如下:

代碼路徑:vendor/k8s.io/apimachinery/pkg/runtime/schema/group_version.go

以Deployment資源為例,資源信息描述如下:

在vendor/k8s.io/apimachinery/pkg/runtime/schema包中定義了常用的資源數據結構,如表3-1所示。

表3-1 常用的資源數據結構說明

Group、Version、Resource核心數據結構詳情如圖3-2所示。

圖3-2 Group、Version、Resource核心數據結構詳情

主站蜘蛛池模板: 德安县| 聂荣县| 孟津县| 昆明市| 华容县| 云林县| 云阳县| 淮安市| 大埔区| 和龙市| 施秉县| 镶黄旗| 遂宁市| 临漳县| 十堰市| 西和县| 南汇区| 六枝特区| 庐江县| 广水市| 琼结县| 上思县| 阿合奇县| 闻喜县| 南京市| 板桥市| 六盘水市| 城口县| 秭归县| 罗山县| 桂平市| 嘉善县| 文水县| 海兴县| 广西| 沙洋县| 临高县| 临邑县| 乌鲁木齐县| 涟水县| 蒲城县|