Pod 基本概念
Pod 概述
Pod 是 Kubernetes 系統中可以創建和管理的最小單位,是資源對象模型中由使用者創建或部署的最小資源對象模型,也是 Kubernetes 平台上運行容器化應用的資源對象。其他的資源對象都是用來支援或強化 Pod 的功能,例如:
- 控制器 資源對象用來監控 Pod 的狀態
- Service 或 Ingress 資源對象用來暴露 Pod 引用外部訪問
- PersistentVolume 資源對象用來為 Pod 提供存儲等功能
Kubernetes 並不直接調度容器,而是調度 Pod。Pod 是由一個或多個容器組成的。
Pod 是 Kubernetes 的最重要概念。每一個 Pod 都有一個特殊的被稱為 Pause 容器 的容器。Pause 容器的鏡像對應於 Kubernetes 平台的一部分,負責維護 Pod 的網路命名空間及其他元數據。
除了 Pause 容器,每個 Pod 還包含一個或多個具備業務邏輯的使用者業務容器。
1. Pod 基本概念
- 最小部署單位
- 包含多個容器(容器集合)
- 一個 Pod 中的容器共享網路命名空間
- Pod 是短暫的(不永久存在)
2. Pod 存在意義
-
創建容器使用 Docker
- 一個 Docker 對應一個容器
- 一個容器有進程
- 一個容器運行一個應用程序
-
Pod 是多進程設計,運行多個應用程序
- 一個 Pod 有多個容器
- 一個容器裡面運行一個應用程序
-
Pod 存在為了親密性應用
- 兩個應用之間進行交互
- 網路之間調用
- 兩個應用需要頻繁調用
3. Pod 實現機制
- 共享網路
- 共享存儲
詳細說明:
-
共享網路:
通過 Pause 容器,將其他業務容器加入到 Pause 容器裡面,讓所有業務容器在同一個命名空間中,可以實現網路共享。 -
共享存儲:
引入數據卷的概念(Volume),使用數據卷進行持久化存儲。
以下是圖片中的文字辨識及繁體中文翻譯:
4.鏡像拉取策略
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: nginx
image: nginx:1.14
imagePullPolicy: Always
鏡像拉取策略說明:
- IfNotPresent:預設值,當宿主機上沒有該鏡像時才會拉取。
- Always:每次創建 Pod 時都會重新拉取一次鏡像。
- Never:Pod 永遠不會主動拉取該鏡像。
如有其他需求,請隨時告訴我!😊
