云原生系列3 pod核心字段

pod是容器化的基礎(chǔ),好比大樓的地基。
Pod跟容器的關(guān)系
類比一下:
POD: 物理機
容器: 物理機上的一個進程;
容器只是Pod的一個普通字段。
Pod的作用范圍
跟容器的linux namespace相關(guān)的東西一定是Pod級別的,pod。
比如:
網(wǎng)絡(luò): hostAliases : 寫入/ect/hosts內(nèi)容 ; sharePrcessNamespace: 共享PID 空間
存儲: vlume
安全: secret
調(diào)度: NodeSelector 用戶指定pod跟node的對應(yīng)關(guān)系 ; NodeName 標識調(diào)度過了,可用來調(diào)試pod;
Pod的Container元素
containers和initContainers關(guān)系
initContainers先于containers創(chuàng)建 ; sidecar實現(xiàn)的重要基礎(chǔ);按照定義的順序來執(zhí)行;
containers: 容器定義
元素如下:
| 元素 | 說明 |
|---|---|
| image | 鏡像地址 |
| ports | 端口定義 |
| command | 啟動指令 |
| workingDir | 工作目錄 |
| volumeMounts | 數(shù)據(jù)卷掛載 |
| imagePullPolicy | 鏡像拉取策略 |
| lifecycle | 容器生命周期鉤子定義 preStop postStart |
Pod的問題定位
通過 spec.status.phase來定位;
pending:創(chuàng)建過程中,由于某些原因調(diào)度失敗
running: 正常運行中
succeed: 一次性調(diào)度成功
failed: 調(diào)度失敗
unknow: 未知
還可以結(jié)合 condition來定位:
unscheduled: 沒有調(diào)度
podScheduled: pod調(diào)度中
ready: 準備好
initalized: 初始化中
其它指令
attach: 進入容器的tty 命令行,如果有安裝的話;
kubectl attach -it youpodname -c youcontainername
小結(jié)
圍繞pod的核心字段做了介紹。
示例配置文件:
apiVersion: apps/v1
kind: Pod
metadata:
name: my-pod
spec:
shareProcessNamespace: true
nodeSelector:
diskType: ssd
hostAliases:
- ip: "10.10.10.9"
hostnames:
- "a.b.com"
- "ac.b.com"
lifecycle:
postStart:
exec:
command: ["/bin/bash","-c","echo 'xxxx'> /usr/share/messages"]
preStop:
exec:
command: ["/usr/sbin/nginx","-t","quit"]

原創(chuàng)不易,關(guān)注誠可貴,轉(zhuǎn)發(fā)價更高!轉(zhuǎn)載請注明出處,讓我們互通有無,共同進步,歡迎溝通交流。
no pays,no gains!

浙公網(wǎng)安備 33010602011771號