k8s-實戰(zhàn)入門-Pod詳解(十)

本章節(jié)將詳細(xì)介紹Pod資源的各種配置(yaml)和原理。

5.1 Pod介紹

5.1.1 Pod結(jié)構(gòu)

每個Pod中都可以包含一個或者多個容器岩臣,這些容器可以分為兩類:

-用戶程序所在的容器料睛,數(shù)量可多可少义图。

-Pause容器疾层,這是每個Pod都會有的一個根容器裁蚁,它的作用有兩個:

可以以它為依據(jù)苟径,評估整個Pod的健康狀態(tài)

可以在根容器上設(shè)置IP地址案站,其它容器都此IP(Pod IP),以實現(xiàn)Pod內(nèi)部的網(wǎng)路通信

這里是Pod內(nèi)部的通訊棘街,Pod的之間的通訊采用虛擬二層網(wǎng)絡(luò)技術(shù)來實現(xiàn)蟆盐,我們當(dāng)前環(huán)境用的是Flannel

5.1.2 Pod定義

下面是Pod的資源清單:

apiVersion: v1 #必選承边,版本號,例如v1

kind: Pod? ? ?   #必選石挂,資源類型博助,例如 Pod

metadata:? ? ?   #必選,元數(shù)據(jù)

? name: string? ? #必選痹愚,Pod名稱

? namespace: string? #Pod所屬的命名空間,默認(rèn)為"default"

? labels:? ? ?   ? #自定義標(biāo)簽列表

? ? - name: string? ? ?  ? ? ? ? ?

spec:? #必選富岳,Pod中容器的詳細(xì)定義

? containers:? #必選,Pod中容器列表

? - name: string? #必選拯腮,容器名稱

? ? image: string? #必選窖式,容器的鏡像名稱

? ? imagePullPolicy: [ Always|Never|IfNotPresent ]? #獲取鏡像的策略

? ? command: [string]? #容器的啟動命令列表,如不指定动壤,使用打包時使用的啟動命令

? ? args: [string]? ? ? #容器的啟動命令參數(shù)列表

? ? workingDir: string? #容器的工作目錄

? ? volumeMounts:? ? ? #掛載到容器內(nèi)部的存儲卷配置

? ? - name: string? ? ? #引用pod定義的共享存儲卷的名稱萝喘,需用volumes[]部分定義的的卷名

? ? ? mountPath: string #存儲卷在容器內(nèi)mount的絕對路徑,應(yīng)少于512字符

? ? ? readOnly: boolean #是否為只讀模式

? ? ports: #需要暴露的端口庫號列表

? ? - name: string? ? ? ? #端口的名稱

? ? ? containerPort: int? #容器需要監(jiān)聽的端口號

? ? ? hostPort: int? ? ? #容器所在主機需要監(jiān)聽的端口號琼懊,默認(rèn)與Container相同

? ? ? protocol: string? ? #端口協(xié)議阁簸,支持TCP和UDP,默認(rèn)TCP

? ? env:? #容器運行前需設(shè)置的環(huán)境變量列表

? ? - name: string? #環(huán)境變量名稱

? ? ? value: string #環(huán)境變量的值

? ? resources: #資源限制和請求的設(shè)置

? ? ? limits:? #資源限制的設(shè)置

? ? ? ? cpu: string? ? #Cpu的限制肩碟,單位為core數(shù)强窖,將用于docker run --cpu-shares參數(shù)

? ? ? ? memory: string? #內(nèi)存限制,單位可以為Mib/Gib削祈,將用于docker run --memory參數(shù)

? ? ? requests: #資源請求的設(shè)置

? ? ? ? cpu: string? ? #Cpu請求翅溺,容器啟動的初始可用數(shù)量

? ? ? ? memory: string #內(nèi)存請求,容器啟動的初始可用數(shù)量

? ? lifecycle: #生命周期鉤子

postStart: #容器啟動后立即執(zhí)行此鉤子,如果執(zhí)行失敗,會根據(jù)重啟策略進(jìn)行重啟

preStop: #容器終止前執(zhí)行此鉤子,無論結(jié)果如何,容器都會終止

? ? livenessProbe:? #對Pod內(nèi)各容器健康檢查的設(shè)置,當(dāng)探測無響應(yīng)幾次后將自動重啟該容器

? ? ? exec:? ? ?   #對Pod容器內(nèi)檢查方式設(shè)置為exec方式

? ? ? ? command: [string]? #exec方式需要制定的命令或腳本

? ? ? httpGet:? ? ? #對Pod內(nèi)個容器健康檢查方法設(shè)置為HttpGet髓抑,需要制定Path咙崎、port

? ? ? ? path: string

? ? ? ? port: number

? ? ? ? host: string

? ? ? ? scheme: string

? ? ? ? HttpHeaders:

? ? ? ? - name: string

? ? ? ? ? value: string

? ? ? tcpSocket:? ? #對Pod內(nèi)個容器健康檢查方式設(shè)置為tcpSocket方式

? ? ? ? port: number

? ? ? initialDelaySeconds: 0? ? ? #容器啟動完成后首次探測的時間,單位為秒

? ? ? timeoutSeconds: 0? ?   ? ? #對容器健康檢查探測等待響應(yīng)的超時時間吨拍,單位秒褪猛,默認(rèn)1秒

? ? ? periodSeconds: 0? ?   ? ? #對容器監(jiān)控檢查的定期探測時間設(shè)置,單位秒羹饰,默認(rèn)10秒一次

? ? ? successThreshold: 0

? ? ? failureThreshold: 0

? ? ? securityContext:

? ? ? ? privileged: false

? restartPolicy: [Always | Never | OnFailure]? #Pod的重啟策略

? nodeName: <string> #設(shè)置NodeName表示將該Pod調(diào)度到指定到名稱的node節(jié)點上

? nodeSelector: obeject #設(shè)置NodeSelector表示將該Pod調(diào)度到包含這個label的node上

? imagePullSecrets: #Pull鏡像時使用的secret名稱伊滋,以key:secretkey格式指定

? - name: string

? hostNetwork: false? #是否使用主機網(wǎng)絡(luò)模式,默認(rèn)為false队秩,如果設(shè)置為true笑旺,表示使用宿主機網(wǎng)絡(luò)

? volumes:? #在該pod上定義共享存儲卷列表

? - name: string? ? #共享存儲卷名稱 (volumes類型有很多種)

? ? emptyDir: {}? ? ? #類型為emtyDir的存儲卷,與Pod同生命周期的一個臨時目錄馍资。為空值

? ? hostPath: string? #類型為hostPath的存儲卷筒主,表示掛載Pod所在宿主機的目錄

? ? ? path: string? ? ?   ? ? ? ? #Pod所在宿主機的目錄,將被用于同期中mount的目錄

? ? secret:? ? ?    #類型為secret的存儲卷,掛載集群與定義的secret對象到容器內(nèi)部

? ? ? scretname: string?

? ? ? items:? ?

? ? ? - key: string

? ? ? ? path: string

? ? configMap:? ? ? ? #類型為configMap的存儲卷乌妙,掛載預(yù)定義的configMap對象到容器內(nèi)部

? ? ? name: string

? ? ? items:

? ? ? - key: string

? ? ? ? path: string


#小提示:

# 在這里使兔,可通過一個命令來查看每種資源的可配置項

#? kubectl explain 資源類型? ? ? ? 查看某種資源可以配置的一級屬性

# kubectl explain 資源類型.屬性? ? 查看屬性的子屬性

[root@master ~]# kubectl explain pod

[root@master ~]# kubectl explain pod.metadata

在kubernetes中基本所有資源的一級屬性都是一樣的,主要包含5部分:

apiVersion? <string>? ? 版本藤韵,由kubernetes內(nèi)部定義虐沥,版本號必須可以用 kubectl api-versions 查詢到

kind <string>? ? ? ? ? ? ? ? 類型,由kubernetes內(nèi)部定義泽艘,版本號必須可以用 kubectl api-resources 查詢到

metadata? <Object>? ? 元數(shù)據(jù)置蜀,主要是資源標(biāo)識和說明,常用的有name悉盆、namespace盯荤、labels等

spec <Object>? ? ? ? ? ? ? 描述,這是配置中最重要的一部分焕盟,里面是對各種資源配置的詳細(xì)描述? ? ? ? ? ? ? ?

status? <Object>? ? ? ? ? ? 狀態(tài)信息秋秤,里面的內(nèi)容不需要定義,由kubernetes自動生成

kubectl apiversions

kubectl api-resources

kubectl get pods nginx-64777cd554-4k4pf -n dev -o yaml

在上面的屬性中脚翘,spec是接下來研究的重點灼卢,繼續(xù)看下它的常見子屬性:

containers? <[]Object>? ? ? 容器列表,用于定義容器的詳細(xì)信息

nodeName <String>? ? ? ? ? 根據(jù)nodeName的值將pod調(diào)度到指定的Node節(jié)點上

nodeSelector? <map[]>? ? ? 根據(jù)NodeSelector中定義的信息選擇將該Pod調(diào)度到包含這些label的Node 上

hostNetwork? <boolean>? ? 是否使用主機網(wǎng)絡(luò)模式来农,默認(rèn)為false鞋真,如果設(shè)置為true,表示使用宿主機網(wǎng)絡(luò)

volumes? ? ? <[]Object>? ? ? 存儲卷沃于,用于定義Pod上面掛在的存儲信息

restartPolicy <string>? ? ? 重啟策略涩咖,表示Pod在遇到故障的時候的處理策略

kubectl explain pods.spec

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市繁莹,隨后出現(xiàn)的幾起案子檩互,更是在濱河造成了極大的恐慌,老刑警劉巖咨演,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闸昨,死亡現(xiàn)場離奇詭異,居然都是意外死亡薄风,警方通過查閱死者的電腦和手機饵较,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遭赂,“玉大人循诉,你說我怎么就攤上這事∏段” “怎么了打洼?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逆粹。 經(jīng)常有香客問我募疮,道長,這世上最難降的妖魔是什么僻弹? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任阿浓,我火速辦了婚禮,結(jié)果婚禮上蹋绽,老公的妹妹穿的比我還像新娘芭毙。我一直安慰自己,他們只是感情好卸耘,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布退敦。 她就那樣靜靜地躺著,像睡著了一般蚣抗。 火紅的嫁衣襯著肌膚如雪侈百。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天翰铡,我揣著相機與錄音钝域,去河邊找鬼。 笑死锭魔,一個胖子當(dāng)著我的面吹牛例证,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播迷捧,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼织咧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漠秋?” 一聲冷哼從身側(cè)響起烦感,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎膛堤,沒想到半個月后手趣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡肥荔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年绿渣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片燕耿。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡中符,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出誉帅,到底是詐尸還是另有隱情淀散,我是刑警寧澤右莱,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站档插,受9級特大地震影響慢蜓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜郭膛,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一晨抡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧则剃,春花似錦耘柱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至己肮,卻和暖如春汛蝙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朴肺。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工窖剑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人戈稿。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓西土,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鞍盗。 傳聞我的和親對象是個殘疾皇子需了,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容