01了解Pod
Pod是Kubernetes創建或部署的最小/最簡單的基本單位,一個Pod代表集群上正在運行的一個進程。
一個Pod封裝一個應用容器(也可以有多個容器),存儲資源、一個獨立的網絡IP以及管理控制容器運行方式的策略選項。它可能由單個容器或多個容器共享組成的資源。
Kubernetes中的Pod使用可分兩種主要方式:
-
Pod中運行一個容器。“one-container-per-Pod”模式是Kubernetes最常見的用法; 在這種情況下,你可以將Pod視為單個封裝的容器,但是Kubernetes是直接管理Pod而不是容器。
-
Pods中運行多個需要一起工作的容器。Pod可以封裝緊密耦合的應用,它們需要由多個容器組成,它們之間能夠共享資源,這些容器可以形成一個單一的內部service單位 - 一個容器共享文件,另一個“sidecar”容器來更新這些文件。Pod將這些容器的存儲資源作為一個實體來管理。
每個Pod都是運行應用的單個實例,如果需要水平擴展應用(例如,運行多個實例),則應該使用多個Pods,每個實例一個Pod。在Kubernetes中,這樣通常稱為Replication。Replication的Pod通常由Controller創建和管理。
02Pod結構和定義
Kubernetes 添加了一個 Pod 來托管你的應用實例。Pod 是 Kubernetes 抽象出來的,表示一組一個或多個應用程序容器(如 Docker),以及這些容器的一些共享資源。
這些資源包括:
-
共享存儲,當作卷
-
網絡,作為唯一的集群 IP 地址
-
有關每個容器如何運行的信息,例如容器鏡像版本或要使用的特定端口
Pod 為特定于應用程序的“邏輯主機”建模,并且可以包含相對緊耦合的