5.1 編寫YAML注意事項
YAML 是一種簡潔的非標記語言。
語法格式:
-
縮進表示層級關系
-
不支持制表符“tab”縮進,使用空格縮進
-
通常開頭縮進 2 個空格
-
字符后縮進 1 個空格,如冒號、逗號等
-
“---” 表示YAML格式,一個文件的開始
-
“#”注釋
5.2 YAML內容解析
在K8S部署一個應用的YAML內容大致分為兩部分:
控制器定義:定義控制器屬性
被控制對象:Pod模板,定義容器屬性
具體字段意義:
| apiVersion | API版本 | | ---------- | ---------- | | kind | 資源類型 | | metadata | 資源元數據 | | spec | 資源規格 | | replicas | 副本數量 | | selector | 標簽選擇器 | | template | Pod模板 | | metadata | Pod元數據 | | spec | Pod規格 | | containers | 容器配置 |
5.3 資源字段太多,記不住怎么辦?
很多同學YAML不會寫!主要原因還是用的少,里面都是由於各個資源組成,熟悉了每個資源應用,自然就會寫了,但也不用等到熟悉各種資源,這里教你幾個技巧,幫助快速上手。
-
用run命令生成部署模板
kubectl create deployment nginx --image=nginx:1.14 -o yaml --dry-run> my-deploy.yaml
-
用get命令將已有部署的應用yaml導出
kubectl get my-deploy/nginx -o=yaml --export > my-deploy.yaml
-
如果某個字段單詞不記得了,可以通過explain查看更詳細的幫助文檔獲得
kubectl explain pods.spec.containers
關於YAML鏡像策略一般有3種:
1.Always: 默認值,每次創建POD 都會重新拉取鏡像 2.IfNotPresent: 鏡像在宿主機不存在時拉取 3.Never: POd永遠不會主動拉取這個鏡像