k8s pod的yaml檔案詳解

2021-09-28 19:34:51 字數 2410 閱讀 9290

apiversion: v1            //版本

kind: pod                 //型別,pod

metadata:                 //元資料

name: string            //元資料,pod的名字

namespace: string       //元資料,pod的命名空間

labels:                 //元資料,標籤列表

- name: string        //元資料,標籤的名字

annotations:            //元資料,自定義註解列表

- name: string        //元資料,自定義註解名字

spec:                     //pod中容器的詳細定義

containers:             //pod中的容器列表,可以有多個容器

- name: string

image: string         //容器中的映象

imagespullpolicy: [always|never|ifnotpresent]//獲取映象的策略

command: [string]     //容器的啟動命令列表(不配置的話使用映象內部的命令)

args: [string]        //啟動引數列表

workingdir: string    //容器的工作目錄

volumemounts:         //掛載到到容器內部的儲存卷設定

- name: string

mountpath: string

readonly: boolean

ports:                //容器需要暴露的埠號列表

- name: string

containerport: int  //容器要暴露的埠

hostport: int       //容器所在主機監聽的埠(容器暴露埠對映到宿主機的埠)

protocol: string

env:                  //容器執行前要設定的環境列表

- name: string

value: string

resources:            //資源限制

limits:

cpu: srting

memory: string

requeste:

cpu: string

memory: string

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

exec:

command: [string]

httpget:             //通過httpget檢查健康

tcpsocket:           //通過tcpsocket檢查健康

port: number

initialdelayseconds: 0//首次檢查時間

timeoutseconds: 0     //檢查超時時間

periodseconds: 0      //檢查間隔時間

successthreshold: 0

failurethreshold: 0

securitycontext:      //安全配置

privileged: falae

restartpolicy: [always|never|onfailure]//重啟策略

nodeselector: object    //節點擊擇

imagepullsecrets:

- name: string

hostnetwork: false      //是否使用主機網路模式,預設否

volumes:                  //在該pod上定義共享儲存卷

- name: string

meptydir: {}

hostpath:

path: string

secret:                 //型別為secret的儲存卷

secretname: string

item:

- key: string

path: string

configmap:             //型別為configmap的儲存卷

name: string

items:

- key: string

path: string

k8s pod的狀態為evicted

使用kubectl get pods,發現很多pod的狀態為evicted。原因eviction,即驅趕的意思,意思是當節點出現異常時,kubernetes將有相應的機制驅趕該節點上的pod。多見於資源不足時導致的驅趕。解決方案 排查資源和異常原因,防止新的驅趕產生。使用如下命令刪除舊驅趕的遺留 k...

k8s pod多種處理邏輯過程

kubernetes 建立pod 的 工作流 1 kubectl 向 k8s api server 發起乙個create pod 請求 即我們使用kubectl敲乙個create pod命令 2 k8s api server接收到pod建立請求後,不會去直接建立pod 而是生成乙個包含建立資訊的ya...

k8s pod 在節點間排程控制

部落格作為學習筆記記錄,若有理解,表述錯誤,歡迎指出。k8s起pod時,會通過排程器scheduler選擇某個節點完成排程,選擇在某個節點上完成pod建立。當需要在指定pod執行在某個節點上時,可以通過以下幾種方式 1.在部署pod的yaml中,指定nodename 指定了nodename的pod會...