深源恒際醫療票據OCR落地九省市 服務范圍覆蓋過半市場
895
2022-05-29
3.2.4?資源配置清單格式文檔
定義資源配置清單時,盡管apiVersion、kind和metadata有章可循,但spec字段對不同的資源來說卻是千差萬別的,因此用戶需要參考Kubernetes API的參考文檔來了解各種可用屬性字段。好在,Kubernetes在系統上內建了相關的文檔,用戶可以使用“kubectl explain”命令直接獲取相關的使用幫助,它將根據給出的對象類型或相應的嵌套字段來顯示相關的下一級文檔。例如,要了解Pod資源的一級字段,可以使用類似如下的命令,命令結果會輸出支持使用的各一組字段及其說明:
~]$ kubectl explain pods
需要了解某一級字段表示的對象之下的二級對象字段時,只需要指定其一級字段的對象名稱即可,三級和四級字段對象等的查看方式依此類推。例如查看Pod資源的Spec對象支持嵌套使用的二級字段,可使用類似如下的命令:
~]$ kubectl explain pods.spec
RESOURCE: spec
DESCRIPTION:
Specification of the desired behavior of the pod. ……
PodSpec is a description of a pod.
FIELDS:
activeDeadlineSeconds???????
Optional duration in seconds the pod may be active on the node relative to
StartTime before the system will actively try to mark it failed and kill
associated containers. Value must be a positive integer.
……
containers?? <[]Object> -required-
List of containers belonging to the pod. Containers cannot currently be
added or removed. There must be at least one container in a Pod. Cannot
be updated.
……
對象的spec字段的文檔通常包含RESOURCE、DESCRIPTION和FIELDS幾節,其中FIELDS節中給出了可嵌套使用的字段、數據類型及功能描述。例如,上面命令的結果顯示在FIELDS中的containers字段的數據類型是一個對象列表([]Object),而且是一個必選字段。任何值為對象類型數據的字段都會嵌套一到多個下一級字段,例如,Pod對象中的每個容器也是對象類型數據,它同樣包含嵌套字段,但容器不支持單獨創建,而是要包含于Pod對象的上下文中,其詳細信息可通過三級字段來獲取,命令及其結果示例如下:
~]$ kubectl explain pods.spec.containers
RESOURCE: containers <[]Object>
DESCRIPTION:
List of containers belonging to the pod. Containers cannot currently be added
or removed. There must be at least one container in a Pod. Cannot be updated.
A single application container that you want to run within a pod.
FIELDS:
args <[]string>
Arguments to the entrypoint. The docker image's CMD is used if this is not
provided. ……
command????? <[]string>
Entrypoint array. Not executed within a shell. The docker image's
ENTRYPOINT is used if this is not provided. ……
env? <[]Object>
List of environment variables to set in the container. Cannot be updated.
……
內建文檔大大降低了用戶手動創建資源配置清單的難度,嘗試使用某個資源類型時,explain也的確是用戶的常用命令之一。熟悉各常用字段的功用之后,以同類型的現有活動對象的清單為模板可以更快地生成目標資源的配置文件,命令格式為“kubectl get TYPE NAME -o yaml --export”,其中--export選項用于省略輸出由系統生成的信息。例如,基于現在的Deployment資源對象myapp生成配置模板deploy-demo.yaml文件,可以使用如下命令:
~]$ kubectl get deployment myapp -o yaml --export > deploy-demo.yaml
通過資源清單文件管理資源對象較之直接通過命令行進行操作有著諸多優勢,具體包括命令行的操作方式僅支持部分資源對象的部分屬性,而資源清單支持配置資源的所有屬性字段,而且使用配置清單文件還能夠進行版本追蹤、復審等高級功能的操作。本書后續章節中的大部分資源管理操作都會借助于資源配置文件進行。
Kubernetes
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。