K8S容器編排YAML詳解

2022-04-23 12:37:20 字數 3564 閱讀 1943

k8s 集群中對資源管理和資源物件編排部署都可以通過宣告樣式( yaml)檔案來解決, 也就是可以把需要對資源物件操作編輯到yaml格式檔案中,

一般使用 yaml 格式的檔案來建立符合我們預期期望的 pod , 我們把這種檔案叫做資源清單檔案,

通過 kubectl 命令直接使用資源清單檔案就可以實現對大量的資源物件進行編排部署,會玩springboot的同志應該就是相當熟悉了

apiversion: v1    #指定api版本,此值必須在kubectl apiversion中  

kind: pod #指定建立資源的角色

/型別

metadata: #資源的元資料

/屬性

name: web04-pod #資源的名字,在同乙個namespace中必須唯一

labels: #設定資源的標籤

version: v1

kubernetes.io/cluster-service: "true"

annotations: #自定義註解列表

-name: string #自定義註解名字

spec: #specification

ofthe 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: #資源管理

requests: #容器執行時,最低資源需求,也就是說最少需要多少資源容器才能正常執行

cpu:

0.1#cpu資源(核數),兩種方式,浮點數或者是整數+m,0.1=100m,最少值為0.001

核(1m)

memory: 32mi #記憶體使用量

limits: #資源限制最大範圍

cpu:

0.5memory: 64mi

ports:

- containerport: 80

#容器開發對外的埠

name: httpd #名稱

protocol: tcp

livenessprobe: #pod內容器健康檢查的設定

httpget: #通過httpget檢查健康,返回200

-399

之間,則認為容器正常

path: /#uri位址

port:

80#host:

127.0.0.1

#主機位址

180#表明第一次檢測在容器啟動後多長時間後開始

timeoutseconds:

5#檢測的超時時間

periodseconds:

15#檢查間隔時間

#也可以用這種方法

#exec: 執行命令的方法進行監測,如果其退出碼不為0,則認為容器正常

# command:

#

- cat

# - /tmp/health

#也可以用這種方法

#tcpsocket: //

通過tcpsocket檢查健康

# port: number

lifecycle: #生命週期管理

poststart: #容器執行之前執行的任務

exec:

command:

- 'sh'

- 'yum upgrade -y

'prestop:#容器關閉之前執行的任務

volumemounts: #資料卷掛載

- name: volume #掛載裝置的名字,與volumes[*

].name 需要對應

mountpath: /data #掛載到容器的某個路徑下

readonly: true

volumes: #定義一組掛載裝置

-name: volume #定義乙個掛載裝置的名字

#meptydir:

{}hostpath:

path: /opt #掛載裝置型別為hostpath,路徑為宿主機下的/opt,這裡裝置型別支援很多種

.

K8S 服務編排YAML

yaml 是一種簡潔的非標記語言。語法格式 在k8s部署乙個應用的yaml內容大致分為兩部分 控制器定義 定義控制器屬性 被控制物件 pod模板,定義容器屬性 具體字段意義 apiversion api版本 kind 資源型別 metadata 資源元資料 spec 資源規格 replicas 副本...

容器編排工具k8s

如何實踐 1 搜尋kubunetes online kubernetes playground katacoda pod k8s最小排程單位 docker pause 二個容器 deployments 維持pod一定數量 service 解決deploytemnets內部之間的乙個負載均衡 dns解...

k8s專欄 資源編排

參考k8s教程由淺入深 編排方法 使用yaml檔案配置資源物件,通過kubectl命令對資源進行編排部署 1.定義 標記性語言,常用語配置檔案 2.書寫格式 3.yaml檔案組成部分 組成 控制器 被控制物件 控制器定義 apiversion extensions v1beta1 api版本 kin...