概述
我們知道用kubectl管理k8s的時候可以使用yaml文件,在這些配置文件的定義里面會有一個apiVersion字段,這個字段指明了要使用的API版本,最新的k8s API版本是v1.18.0,地址:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18
里面可以看到對于Deployment資源,它對應的分組是apps,版本是v1,所以我們的yaml文件里面就需要這樣寫:apiVersion: apps/v1;對于Namespace資源,它對應的分組是core,版本是v1,core是可以省略的,所以我們的yaml文件里面可以這樣寫:apiVersion: v1
資源對象
資源對象通常有3個組成部分:
-
metadata:這是關(guān)于資源的元數(shù)據(jù),比如它的名稱、類型、api版本、注釋和標簽。 -
spec:這是由用戶定義的希望系統(tǒng)最終達到的狀態(tài),比如啟動多少個replica、cpu和內(nèi)存的限制等等。 -
status:系統(tǒng)的當前狀態(tài),由服務器去更新。
資源的操作
資源通常有這幾種操作:創(chuàng)建(Create),更新(Update),讀取(Read),刪除(Delete)。其中更新又分為替換(Replace)和打補丁(Patch),區(qū)別是替換是把整個spec替換掉,會有樂觀鎖保證讀寫安全;打補丁則是修改某些指定的字段,沒有鎖,最后一次寫會成功。
有部分資源還會支持下列操作:
-
Rollback: 將PodTemplate回滾到以前的版本。 -
Read / Write Scale: 讀取或更新資源的副本數(shù)量。 -
Read / Write Status: 讀取或更新資源對象的狀態(tài)。