您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)K8s中配置文件模板含義是什么的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
Deployment為Pod和Replica Set下一代Replication Controller)提供聲明式更新
apiVersion: apps/v1 # 1.9.0 之前的版本使用 apps/v1beta2,可通過(guò)命令 kubectl api-versions 查看 kind: Deployment #指定創(chuàng)建資源的角色/類(lèi)型 metadata: #資源的元數(shù)據(jù)/屬性 name: nginx-deployment #資源的名字,在同一個(gè)namespace中必須唯一 namespace: xxxx #命名空間 labels: app: demo #標(biāo)簽 spec: replicas: 3 #副本數(shù)量3 strategy: rollingUpdate: ##由于replicas為3,則整個(gè)升級(jí),pod個(gè)數(shù)在2-4個(gè)之間 maxSurge: 1 #滾動(dòng)升級(jí)時(shí)會(huì)先啟動(dòng)1個(gè)pod maxUnavailable: 1 #滾動(dòng)升級(jí)時(shí)允許的最大Unavailable的pod個(gè)數(shù) selector: #定義標(biāo)簽選擇器,部署需要管理的pod(帶有該標(biāo)簽的的會(huì)被管理)需在pod 模板中定義 matchLabels: app: web-server template: #這里Pod的定義 metadata: labels: #Pod的label app: web-server spec: # 模板的規(guī)范 containers: - name: nginx #容器的名字 image: nginx:1.12.1 #容器的鏡像地址 command: [ "/bin/sh","-c","cat /etc/config/path/to/special-key" ] #啟動(dòng)命令 args: #啟動(dòng)參數(shù) - '-storage.local.retention=$(STORAGE_RETENTION)' - '-storage.local.memory-chunks=$(STORAGE_MEMORY_CHUNKS)' - '-config.file=/etc/prometheus/prometheus.yml' - '-alertmanager.url=http://alertmanager:9093/alertmanager' - '-web.external-url=$(EXTERNAL_URL)' #如果command和args均沒(méi)有寫(xiě),那么用Docker默認(rèn)的配置。 #如果command寫(xiě)了,但args沒(méi)有寫(xiě),那么Docker默認(rèn)的配置會(huì)被忽略而且僅僅執(zhí)行.yaml文件的command(不帶任何參數(shù)的)。 #如果command沒(méi)寫(xiě),但args寫(xiě)了,那么Docker默認(rèn)配置的ENTRYPOINT的命令行會(huì)被執(zhí)行,但是調(diào)用的參數(shù)是.yaml中的args。 #如果如果command和args都寫(xiě)了,那么Docker默認(rèn)的配置被忽略,使用.yaml的配置。 imagePullPolicy: IfNotPresent # IfNotPresent :默認(rèn)值,本地有則使用本地鏡像,不拉取,如果不存在則拉取 # Always: 總是拉取 # Never: 只使用本地鏡像,從不拉取 livenessProbe: #表示container是否處于live狀態(tài)。如果LivenessProbe失敗,LivenessProbe將會(huì)通知kubelet對(duì)應(yīng)的container不健康了。隨后kubelet將kill掉container,并根據(jù)RestarPolicy進(jìn)行進(jìn)一步的操作。默認(rèn)情況下LivenessProbe在第一次檢測(cè)之前初始化值為Success,如果container沒(méi)有提供LivenessProbe,則也認(rèn)為是Success; httpGet: path: /health #如果沒(méi)有心跳檢測(cè)接口就為/ port: 8080 scheme: HTTP initialDelaySeconds: 60 ##啟動(dòng)后延時(shí)多久開(kāi)始運(yùn)行檢測(cè) timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 readinessProbe: readinessProbe: httpGet: path: /health #如果沒(méi)有心跳檢測(cè)接口就為/ port: 8080 scheme: HTTP initialDelaySeconds: 30 ##啟動(dòng)后延時(shí)多久開(kāi)始運(yùn)行檢測(cè) timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 resources: ##CPU內(nèi)存限制 requests: cpu: 2 memory: 2048Mi limits: cpu: 2 memory: 2048Mi env: ##通過(guò)環(huán)境變量的方式,直接傳遞pod=自定義Linux OS環(huán)境變量 - name: LOCAL_KEY #本地Key value: value - name: CONFIG_MAP_KEY #局策略可使用configMap的配置Key, valueFrom: configMapKeyRef: name: special-config #configmap中找到name為special-config key: special.type #找到name為special-config里data下的key ports: - name: http containerPort: 8080 #對(duì)service暴露端口 volumeMounts: #掛載volumes中定義的磁盤(pán) - name: log-cache mount: /tmp/log - name: sdb #普通用法,該卷跟隨容器銷(xiāo)毀,掛載一個(gè)目錄 mountPath: /data/media - name: nfs-client-root #直接掛載硬盤(pán)方法,如掛載下面的nfs目錄到/mnt/nfs mountPath: /mnt/nfs - name: example-volume-config #高級(jí)用法第1種,將ConfigMap的log-script,backup-script分別掛載到/etc/config目錄下的一個(gè)相對(duì)路徑path/to/...下,如果存在同名文件,直接覆蓋。 mountPath: /etc/config - name: rbd-pvc #高級(jí)用法第2中,掛載PVC(PresistentVolumeClaim) #使用volume將ConfigMap作為文件或目錄直接掛載,其中每一個(gè)key-value鍵值對(duì)都會(huì)生成一個(gè)文件,key為文件名,value為內(nèi)容, volumes: # 定義磁盤(pán)給上面volumeMounts掛載 - name: log-cache emptyDir: {} - name: sdb #掛載宿主機(jī)上面的目錄 hostPath: path: /any/path/it/will/be/replaced - name: example-volume-config # 供ConfigMap文件內(nèi)容到指定路徑使用 configMap: name: example-volume-config #ConfigMap中名稱 items: - key: log-script #ConfigMap中的Key path: path/to/log-script #指定目錄下的一個(gè)相對(duì)路徑path/to/log-script - key: backup-script #ConfigMap中的Key path: path/to/backup-script #指定目錄下的一個(gè)相對(duì)路徑path/to/backup-script - name: nfs-client-root #供掛載NFS存儲(chǔ)類(lèi)型 nfs: server: 10.42.0.55 #NFS服務(wù)器地址 path: /opt/public #showmount -e 看一下路徑 - name: rbd-pvc #掛載PVC磁盤(pán) persistentVolumeClaim: claimName: rbd-pvc1 #掛載已經(jīng)申請(qǐng)的pvc磁盤(pán)
apiVersion: v1 # 指定api版本,此值必須在kubectl api-versions中 kind: Service # 指定創(chuàng)建資源的角色/類(lèi)型 metadata: # 資源的元數(shù)據(jù)/屬性 name: demo # 資源的名字,在同一個(gè)namespace中必須唯一 namespace: default # 部署在哪個(gè)namespace中 labels: # 設(shè)定資源的標(biāo)簽 app: demo spec: # 資源規(guī)范字段 type: ClusterIP # ClusterIP 類(lèi)型 ports: - port: 8080 # service 端口 targetPort: http # 容器暴露的端口 protocol: TCP # 協(xié)議 name: http # 端口名稱 selector: # 選擇器 app: demo
感謝各位的閱讀!關(guān)于“K8s中配置文件模板含義是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。