k8s系列0--Kubernetes基礎知識
阿新 • • 發佈:2018-11-01
Once 基於 輪詢 系列 com 多個 href daemon 負載
Kubernetes介紹
- 參考:Kubernetes核心組件解析
- Pod是k8s的最小調度單元
- 每個pod有獨立的IP,但是pod的IP是不可靠的,重新調度pod就會改變IP,service概念就是為了解決這些問題。
- 給service會分配虛擬IP即ClusterIP,通過ClusterIP和端口,訪問會自動負載均衡到後端的pod上。
- 目前k8s提供兩種負載均衡策略:RoundRobin和SessionAffinity。
- RoundRobin:輪詢模式
- SessionAffinity:基於客戶端IP的會話保持
- 也可以通過Headless Service的概念,不設置ClusterIP只給出後端Pod列表,由用戶自己選擇。
- service也可以不綁定選擇pod,單獨定義Endpoints類型的資源來提供服務。即可實現跨namespace的服務訪問。
Pod和Service都是集群內的虛擬概念,包括IP等信息。故集群外部無法訪問Pod或Service,可以將端口映射到宿主機實現訪問。
基本資源類型
- Kubernetes中StatefulSet介紹
- Kubernetes中的親和性與反親和性對應於pod調度到那些node節點上。
- Kubernetes1.3新特性:POD中的初始化容器,該文介紹了初始化容器的類結構,及相關特性。
- 下文基於kubernetes 1.5.2版本編寫
- 概念:Init Container就是做初始化工作的容器。可以有一個或多個,如果有多個,這些 Init Container 按照定義的順序依次執行,只有所有的InitContainer 執行完後,主容器才啟動。由於一個Pod裏的存儲卷是共享的,所以 Init Container 裏產生的數據可以被主容器使用到。
- Init Container可以在多種K8S資源裏被使用到如Deployment、DaemonSet, PetSet/StatefulSet、Job等,但歸根結底都是在Pod啟動時,在主容器啟動前執行,做初始化工作。
- k8s init-Containers,該文使用的k8s版本是1.9
官方關於init-containers的說明:Init Containers
cron Job類型
- 該文更新,參考:Kubernetes中的Job和CronJob,批量任務執行
該文老舊,不宜參考。參考:Kubernetes的Cron Job定時任務小試
k8s系列0--Kubernetes基礎知識