基本對象
Pod
pod是最小部署單元,一個pod有一個或多個容器組成,pod中容器共享存儲和網(wǎng)絡(luò),在同一個Docker主機(jī)上運行。
Service
Service一個應(yīng)用服務(wù)抽象,定義了pod邏輯集合和訪問這個pod集合的策略。
Service代理pod集合對外表現(xiàn)為一個訪問入口,分配一個集群ip地址,來自這個ip的請求將負(fù)載轉(zhuǎn)發(fā)后端pod中的容器。
Service通過Lable Selector選擇一組pod提供服務(wù)。
Volume
數(shù)據(jù)卷,共享pod中容器使用的數(shù)據(jù)。
Namespace
命名空間將對象邏輯上分配到不通namespace,可以是不同項目,用戶等區(qū)分管理,并設(shè)定控制策略,從而實現(xiàn)多租戶,命名空間也稱為虛擬集群。
Lable
標(biāo)簽用于區(qū)分對象,鍵/值對存在,每個對象可以有多個標(biāo)簽,通過標(biāo)簽關(guān)聯(lián)對象。
基于基本對象更高層次抽象
ReplicaSet
下一代Replication Controller 確保任何給定時間指定的pod副本數(shù)量,并提供聲明式更新等功能,RC與RS唯一區(qū)別就是lable selector支持不同,RS支持新的基于集合的標(biāo)簽,RC僅支持基于等式的標(biāo)簽。
Deployment(無狀態(tài)控制器)
Deployment是一個更高層次API對象,它管理RS和pod,并提供聲明式更新等功能。
StatefulSet(有狀態(tài)控制器)
StatefulSet適合持久性的應(yīng)用,有唯一的網(wǎng)絡(luò)標(biāo)識符(IP),持久存儲,有序的部署、擴(kuò)展、刪除和滾動更新。
DaemonSet
DaemonSet確保所有或一些節(jié)點運行同一個pod,當(dāng)節(jié)點加入kubernetes集群中,pod會被調(diào)度到該節(jié)點運行,當(dāng)節(jié)點從集群中移除時,DaemonSet的pod會自動被刪除,刪除DaemonSet會清理所有pod
Job
一次性任務(wù),運行完成后pod銷毀,不再重新啟動新容器,還可以定時運行任務(wù)
CronJob
Cronjob管理基于時間的job
在給定時間只運行一次
周期性地在給定時間點運行
使用前提條件:當(dāng)時有kubernetes集群,版本>=1.8,對于先前版本的集群,版本<1.8 啟動api server時 通過傳遞選項--runtime-config=batch/v2a1pha1=true可以開啟batch/v2alpha1 api
Horizontal Pod Autoscaling(自動擴(kuò)展)
應(yīng)用的資源使用率通常都有高峰和低估的時候,即何削峰填谷,提高集群的整體資源利用率,讓service中的pod個數(shù)自動調(diào)整,這就要依賴于Horizontal Pod Autoscaling了 顧名思義,使pod水平自動縮放