1、yaml文件詳解如下:
apiVersion: v1 #指定api版本,此值必須在kubectl apiversion中
kind: Pod #指定創建資源的角色/類型
metadata: #資源的元數據/屬性
name: web04-pod #資源的名字,在同一個namespace中必須唯一
labels: #設定資源的標籤,詳情請見http://blog.csdn.net/liyingke112/article/details/77482384
k8s-app: apache
version: v1
kubernetes.io/cluster-service: "true"
annotations: #自定義註解列表
- name: String #自定義註解名字
spec:#specification of the resource content 指定該資源的內容
restartPolicy: Always #表明該容器一直運行,默認k8s的策略,在此容器退出後,會立即創建一個相同的容器
nodeSelector: #節點選擇,先給主機打標籤kubectl label nodes kube-node1 zone=node1
zone: node1
containers:
- name: web04-pod #容器的名字
image: web:apache #容器使用的鏡像地址
imagePullPolicy: Never #三個選擇Always、Never、IfNotPresent,每次啓動時檢查和更新(從registery)images的策略,
# Always,每次都檢查
# Never,每次都不檢查(不管本地是否有)
# IfNotPresent,如果本地有就不檢查,如果沒有就拉取
command: ['sh'] #啓動容器的運行命令,將覆蓋容器中的Entrypoint,對應Dockefile中的ENTRYPOINT
args: ["$(str)"] #啓動容器的命令參數,對應Dockerfile中CMD參數
env: #指定容器中的環境變量
- name: str #變量的名字
value: "/etc/run.sh" #變量的值
resources: #資源管理,請求請見http://blog.csdn.net/liyingke112/article/details/77452630
requests: #容器運行時,最低資源需求,也就是說最少需要多少資源容器才能正常運行
cpu: 0.1 #CPU資源(核數),兩種方式,浮點數或者是整數+m,0.1=100m,最少值爲0.001核(1m)
memory: 32Mi #內存使用量
limits: #資源限制
cpu: 0.5
memory: 32Mi
ports:
- containerPort: 80 #容器開發對外的端口
name: httpd #名稱
protocol: TCP
livenessProbe: #pod內容器健康檢查的設置,詳情請見http://blog.csdn.net/liyingke112/article/details/77531584
httpGet: #通過httpget檢查健康,返回200-399之間,則認爲容器正常
path: / #URI地址
port: 80
#host: 127.0.0.1 #主機地址
scheme: HTTP
initialDelaySeconds: 180 #表明第一次檢測在容器啓動後多長時間後開始
timeoutSeconds: 5 #檢測的超時時間
periodSeconds: 15 #檢查間隔時間
#也可以用這種方法
#exec: 執行命令的方法進行監測,如果其退出碼不爲0,則認爲容器正常
# command:
# - cat
# - /tmp/health
#也可以用這種方法
#tcpSocket: //通過tcpSocket檢查健康
# port: number
lifecycle: #生命週期管理
postStart: #容器運行之前運行的任務
exec:
command:
- 'sh'
- 'yum upgrade -y'
preStop: #容器關閉之前運行的任務
exec:
command: ['service httpd stop']
volumeMounts: #詳情請見http://blog.csdn.net/liyingke112/article/details/76577520
- name: volume #掛載設備的名字,與volumes[*].name 需要對應
mountPath: /data #掛載到容器的某個路徑下
readOnly: True
volumes: #定義一組掛載設備
- name: volume #定義一個掛載設備的名字
#meptyDir: {}
hostPath:
path: /opt #掛載設備類型爲hostPath,路徑爲宿主機下的/opt,這裏設備類型支持很多種
---------------------