雲原生系列3 pod核心字段

image.png




pod是容器化的基礎,比如大樓的地基。
node

Pod跟容器的關係



類比一下:

POD: 物理機
容器: 物理機上的一個進程;

容器只是Pod的一個普通字段。

Pod的做用範圍


跟容器的linux namespace相關的東西必定是Pod級別的,pod。




好比:


網絡: hostAliases : 寫入/ect/hosts內容 ; sharePrcessNamespace: 共享PID 空間


存儲: vlume


安全: secret


調度: NodeSelector 用戶指定pod跟node的對應關係 ; NodeName 標識調度過了,可用來調試pod;






linux

Pod的Container元素

containers和initContainers關係



initContainers先於containers建立 ; sidecar實現的重要基礎;按照定義的順序來執行;

containers: 容器定義

元素以下:
元素 說明
image 鏡像地址
ports 端口定義
command 啓動指令
workingDir 工做目錄
volumeMounts 數據卷掛載
imagePullPolicy 鏡像拉取策略
lifecycle 容器生命週期鉤子定義
preStop
postStart


Pod的問題定位


經過 spec.status.phase來定位;


pending:建立過程當中,因爲某些緣由調度失敗
running: 正常運行中
succeed: 一次性調度成功
failed: 調度失敗
unknow: 未知


還能夠結合 condition來定位:


unscheduled: 沒有調度
podScheduled: pod調度中
ready: 準備好
initalized: 初始化中


nginx

其它指令


attach: 進入容器的tty 命令行,若是有安裝的話;
shell

kubectl attach -it youpodname -c youcontainername

小結

圍繞pod的核心字段作了介紹。


示例配置文件:api

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"]



![pod概念.png](https://img2020.cnblogs.com/other/268922/202102/268922-20210216230818087-1413436291.png)

原創不易,關注誠難得,轉發價更高!轉載請註明出處,讓咱們互通有無,共同進步,歡迎溝通交流。安全

相關文章
相關標籤/搜索