yaml是一種專門用來寫配置的語言,簡潔強大
它的規則:
1、大小寫敏感
2、使用縮進表示層級關系,但不支持tab縮進,只支持空格
3、縮進的數量不重要但至少一個空格,只要相同層級使用相同數量的空格即可
4、“#”表示注釋,從這個字符開始,直到行末,都會被解析器無視
在Kubernetes中,我們只需要知道兩種yaml格式即可滿足大部分需求:
Map: 就是一個字典,即Key:Value的鍵值對
Lists:就是一個列表,
args -beijing -shanghai -shenzhen -guangzhou
Maps的子項可以是Lists,Lists的子項也可以是Maps
一般用於創建pod的yaml文件會包含如下幾個基本參數
-
- apiServer 接口版本,現在一般都寫v1,但它是隨着安裝Kubernetes和資源類型的變化而變化的
- kind 創建Pod則寫Pod,其它的參數還有Deployment、Job、Ingress、Service等
- metadata 包含Pod的一些meta信息,比如名稱、namespace、標簽等等
- spec 包含container\storage\volume或者其它kubernetes需要的參數,可在特定Kubernetes API找到完整的Kubernetes Pod的屬性。
---
apiVersion: v1
kind: Pod
metadata:
name: kube100-site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
- name: flaskapp-demo
image: jcdemo/flaskapp
ports:
- containerPort: 5000
參數也有指定復雜的屬性,包括容器啟動運行的命令、使用的參數、工作目錄以及每次實例化是否拉取新的副本。 還可以指定更深入的信息,例如容器的退出日志的位置。容器可選的設置屬性包括
name、image、command、args、workingDir、ports、env、resource、volumeMounts、livenessProbe、readinessProbe、livecycle、terminationMessagePath、imagePullPolicy、securityContext、stdin、stdinOnce、tty
