pod是容器化的基礎,比如大樓的地基。
node
類比一下:
POD: 物理機
容器: 物理機上的一個進程;
容器只是Pod的一個普通字段。
linux
跟容器的linux namespace相關的東西必定是Pod級別的,pod。
好比:
網絡: hostAliases : 寫入/ect/hosts內容 ; sharePrcessNamespace: 共享PID 空間
存儲: vlume
安全: secret
調度: NodeSelector 用戶指定pod跟node的對應關係 ; NodeName 標識調度過了,可用來調試pod;
nginx
initContainers先於containers建立 ; sidecar實現的重要基礎;按照定義的順序來執行;
containers: 容器定義
元素以下:
shell
元素 | 說明 |
---|---|
image | 鏡像地址 |
ports | 端口定義 |
command | 啓動指令 |
workingDir | 工做目錄 |
volumeMounts | 數據卷掛載 |
imagePullPolicy | 鏡像拉取策略 |
lifecycle | 容器生命週期鉤子定義 preStop postStart |
經過 spec.status.phase來定位;
pending:建立過程當中,因爲某些緣由調度失敗
running: 正常運行中
succeed: 一次性調度成功
failed: 調度失敗
unknow: 未知
還能夠結合 condition來定位:
unscheduled: 沒有調度
podScheduled: pod調度中
ready: 準備好
initalized: 初始化中
api
attach: 進入容器的tty 命令行,若是有安裝的話;
安全
kubectl attach -it youpodname -c youcontainername
圍繞pod的核心字段作了介紹。
示例配置文件:bash
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"]
原創不易,關注誠難得,轉發價更高!轉載請註明出處,讓咱們互通有無,共同進步,歡迎溝通交流。