1. 自主式pod
一個pod中共享網絡棧,共享存儲,是以一個pod中的容器自然就是聯通的,不需要像以前docker中那樣需要打上IP端口号,現在都不需要。但是有一點,一個pod中的多個容器不能夠映射同一端口,這樣可能會導緻這個pod無法起來或者永遠重新開機。

2. 控制器類型的pod
(1)replicationController: 用來確定容器應用的副本數始終保持在使用者定義的副本數,即如果有容器異常退出,會自動建立新的Pod來替代;而如果異常多出來的容器也會自動回收。在新版車的Kubernetes中建議使用ReplicaSet來取代ReplicationControlle
(2)ReplicaSet: ReplicaSet跟ReplicationController沒有本質的不同,隻是名字不一樣,并且ReplicaSet支援集合式的selector
(3)Deployment : 雖然ReplicaSet可以獨立使用,但一般還是建議使用Deployment 來自動管理ReplicaSet,這樣就無需擔心跟其他機制的不相容問題(比如ReplicaSet 不支援rolling-update但Deployment支援)
在官方最新版本中,RC已經被抛棄 ,一下是滾動過程(v1就是pod):
(4)HPA:僅适用于Deployment和ReplicaSet,在V1版本中僅支援根據pod的cpu使用率擴容。
(5)StatefulSet:StatefulSet是為了解決有狀态服務的問題(對應Deployments和ReplicaSets是為無狀态服務而設計),其應用場景包括:
*穩定的持久化存儲,即Pod重新排程後還是能通路到相同的持久化資料,基于PVC來實作
*穩定的網絡标志,即Pod重新排程後其PodName和HostName 不變,基于Headless Service(即沒有Cluster IP的Service )來實作
* 有序部署,有序擴充,即Pod是有順序的,在部署或者擴充的時候要依據定義的順序依次依次進行(即從0到N-1,在下一一個Pod運作之前所有之前的Pod必須都是Running和Ready狀态),基于initcontainers來實作
*有序收縮,有序删除(即從N-1到0)
(6)DaemonSet: DaemonSet確定全部(或者一些) Node 上運作一個Pod的副本。當有Node加入叢集時,也會為他們新增一個Pod。當有Node從叢集移除時,這些Pod 也會被回收。删除DaemonSet 将會刷除它建立的所有Pod
使用DaemonSet的一些典型用法:
*運作叢集存儲daemon,例如在每個Node 上運作glusterd、 ceph.
*在每個Node上運作日志收集daemon, 例如fluentd、 logstash。
*在每個Node上運作監控daemon, 例如Prometheus Node Exporter
(7)Job: job負責批處理任務,僅執行一次