k8s基本物件概念
基本物件
Pod
Pod是最小部署單元,一個Pod由一個或多個容器組成,Pod中容器共享儲存和網路,在同一臺Docker主機上執行。
Service
Service一個應用服務抽象,定義了Pod邏輯集合和訪問這個Pod集合的策略。
Service代理Pod集合對外表現是為一個訪問入口,分配一個叢集IP地址,來自這個IP的請求將負載均衡轉發後端Pod中的容器。
Service通過Lable Selector選擇一組Pod提供服務。
Volume
資料卷,共享Pod中容器使用的資料。
Namespace
名稱空間將物件邏輯上分配到不同Namespace,可以使不同的專案、使用者等區分管理,並設定控制策略,從而實現多租戶。
名稱空間也稱為虛擬叢集。
Lable
標籤用於區分物件(比如Pod、Service),鍵/值對存在;每個物件可以有多個標籤,通過標籤關聯物件。
基於基本物件更高層次抽象:
ReplicaSet
下一代Replication Controller。確保任何給定時間指定的Pod副本數量,並提供宣告式更新等功能。
RC與RS唯一區別就是lable selectore支援不同,RS支援新的基於集合的標籤,RC僅支援基於等式的標籤。
Deployment
Deployment是一個更高層次的API物件,他管理ReplicaSets和Pod,並提供宣告式更新等功能。
官方建議使用Deployment管理ReplicaSets,而不是直接使用ReplicaSets,這就意味著可能永遠不需要直接操作ReplicaSet物件。
StatefulSet
StatefulSet適合永續性的應用程式,有唯一的網路識別符號(IP),持久儲存,有序的部署、擴充套件、刪除和滾動更新。
DaemonSet
DaemonSet確保所有(或一些)節點運行同一個Pod。當節點加入kubernetes叢集中,Pod會被排程到該節點上執行,當節點從叢集中移除時,DaemonSet的Pod會被刪除。刪除DaemonSet會清理它所有建立的Pod。
Job
一次性任務,執行完成後Pod銷燬,不再重新啟動新容器。還可以任務定時執行。