k8s的yaml文件配置詳解

 1 apiVersion: v1             #指定api版本,此值必須在kubectl apiversion中  
 2 kind: Pod                  #指定建立資源的角色/類型  
 3 metadata:                  #資源的元數據/屬性  
 4   name: django-pod         #資源的名字,在同一個namespace中必須惟一  
 5   labels:                  #設定資源的標籤,使這個標籤在service網絡中備案,以便被獲知
 6     k8s-app: django
 7     version: v1  
 8     kubernetes.io/cluster-service: "true"  
 9   annotations:             #設置自定義註解列表  
10     - name: String         #設置自定義註解名字  
11 spec:                      #設置該資源的內容  
12   restartPolicy: Always    #表示自動重啓,一直都會有這個容器運行
13   nodeSelector:            #選擇node節點14     zone: node1  
15   containers:  
16   - name: django-pod        #容器的名字  
17     image: django:v1.1      #容器使用的鏡像地址  
18     imagePullPolicy: Never #三個選擇Always、Never、IfNotPresent,每次啓動時檢查和更新(從registery)images的策略,
19                            # Always,每次都檢查
20                            # Never,每次都不檢查(無論本地是否有)
21                            # IfNotPresent,若是本地有就不檢查,若是沒有就拉取
22     command: ['sh']        #啓動容器的運行命令,將覆蓋容器中的Entrypoint,對應Dockefile中的ENTRYPOINT  
23     args: ["$(str)"]       #啓動容器的命令參數,對應Dockerfile中CMD參數  
24     env:                   #指定容器中的環境變量  
25     - name: str            #變量的名字  
26       value: "/etc/run.sh" #變量的值  
27     resources:             #資源管理
28       requests:            #容器運行時,最低資源需求,也就是說最少須要多少資源容器才能正常運行  
29         cpu: 0.1           #CPU資源(核數),兩種方式,浮點數或者是整數+m,0.1=100m,最少值爲0.001核(1m)
30         memory: 32Mi       #內存使用量  
31       limits:              #資源限制  
32         cpu: 0.5  
33         memory: 32Mi  
34     ports:  
35     - containerPort: 8080    #容器開發對外的端口
36       name: uwsgi          #名稱
37       protocol: TCP  
38     livenessProbe:         #pod內容器健康檢查的設置
39       httpGet:             #經過httpget檢查健康,返回200-399之間,則認爲容器正常  
40         path: /            #URI地址  
41         port: 8080  
42         #host: 127.0.0.1   #主機地址  
43         scheme: HTTP  
44       initialDelaySeconds: 180 #代表第一次檢測在容器啓動後多長時間後開始  
45       timeoutSeconds: 5    #檢測的超時時間  
46       periodSeconds: 15    #檢查間隔時間  
47       #也能夠用這種方法  
48       #exec: 執行命令的方法進行監測,若是其退出碼不爲0,則認爲容器正常  
49       #  command:  
50       #    - cat  
51       #    - /tmp/health  
52       #也能夠用這種方法  
53       #tcpSocket: //經過tcpSocket檢查健康   
54       #  port: number   
55     lifecycle:             #生命週期管理(鉤子)  
56       postStart:           #容器運行以前運行的任務  
57         exec:  
58           command:  
59             - 'sh'  
60             - 'yum upgrade -y'  
61       preStop:             #容器關閉以前運行的任務  
62         exec:  
63           command: ['service httpd stop']  
64     volumeMounts:          #掛載設置
65     - name: volume         #掛載設備的名字,與volumes[*].name 須要對應    
66       mountPath: /data     #掛載到容器的某個路徑下  
67       readOnly: True  
68   volumes:                 #定義一組掛載設備  
69   - name: volume           #定義一個掛載設備的名字  
70     #meptyDir: {}  
71     hostPath:  
72       path: /opt           #掛載設備類型爲hostPath,路徑爲宿主機下的/opt
相關文章
相關標籤/搜索