k8s工作負載、服務、pod


Kubernets概覽


Kubernetes關鍵概念-Pod

在Kubernetes中, pods是能夠創建、調度、和管理的最小部署單元,是一組容器的集合,而不是單獨的應用容器
同一個Pod里的容器共享同一個網絡命名空間, IP地址及端口空間。
從生命周期來說, Pod是短暫的而不是長久的應用。 Pods被調度到節點,保持在這個節點上直到被銷毀。



Pod詳解-容器

Infrastructure Container: 基礎容器

用戶不可見,無需感知
維護整個Pod網絡空間
InitContainers:初始化容器,一般用於服務等待處理以及注冊Pod信息等

先於業務容器開始執行
順序執行,執行成功退出( exit 0),全部執行成功后開始啟動業務容器
Containers:業務容器

並行啟動,啟動成功后一直Running


容器基本組成


Pod詳解-健康檢查


Pod詳解-外部輸入


配置文件( ConfigMap)及密鑰( Secret)


Pod詳解-持久化存儲


PV/PVC


Pod詳解-服務域名發現

dnsPolicy: Pod內域名解析的策略

ClusterFirst:使用kube-dns作為域名解析服務器
Default:使用節點( kubelet)指定的域名服務器解析域名
ClusterFirstWithHostNet:當Pod使用主機網絡部署時使用


Pod與工作負載的關系


關鍵工作負載-ReplicaSet

ReplicaSet用於解決pod的擴容和縮容問題。
通常用於無狀態應用


關鍵工作負載-Deployment

Kubernetes Deployment提供了官方的用於更新Pod和Replica Set(下一代的ReplicationController)的方法,您可以在Deployment對象中只描述您所期望的理想狀態(預期的運行狀態),Deployment控制器為您將現在的實際狀態轉換成您期望的狀態;

Deployment集成了上線部署、滾動升級、創建副本、暫停上線任務,恢復上線任務,回滾到以前某一版本(成功/穩定)Deployment等功能,在某種程度上, Deployment可以幫我們實現無人值守的上線,大大降低我們的上線過程的復雜溝通、操作風險。

Deployment的典型用例:

使用Deployment來啟動(上線/部署)一個Pod或者ReplicaSet
檢查一個Deployment是否成功執行
更新Deployment來重新創建相應的Pods(例如,需要使用一個新的Image)
如果現有的Deployment不穩定,那么回滾到一個早期的穩定的Deployment版本


關鍵工作負載-StatefulSet

StatefulSet—有狀態應用
用於解決各個pod實例獨立生命周期管理,提供各個實例的啟動順序和唯一性

穩定,唯一的網絡標識符。
穩定,持久存儲--StatefulSet:每個pod對應一個pv
有序的,優雅的部署和擴展。
有序,優雅的刪除和終止。
有序的自動滾動更新。


關鍵工作負載-DaemonSet

DaemonSet能夠讓所有(或者一些特定)的Node節點運行同一個pod。當節點加入到kubernetes集\群中, pod會被( DaemonSet)調度到該節點上運行,當節點從kubernetes集群中被移除,被( DaemonSet)調度的pod會被移除,如果刪除DaemonSet,所有跟這個DaemonSet相關的pods都會被刪除。

在使用kubernetes來運行應用時,很多時候我們需要在一個區域( zone)或者所有Node上運行同一個守護進程( pod),例如如下場景:

每個Node上運行一個分布式存儲的守護進程,例如glusterd, ceph
運行日志采集器在每個Node上,例如fluentd, logstash
運行監控的采集端在每個Node,例如prometheus node exporter, collectd等


關鍵工作負載-Job


Kubernetes關鍵概念-CustomResourceDefinition


Pod與服務的關系


 

Service

Service定義了pods的邏輯集合和訪問這個集合的策略。 Pods集合是通過定義Service時提供的Label選擇器完成的
Service的引入旨在保證pod的動態變化對訪問端透明,訪問端只需要知道service的地址,由service來提供代理
Service的抽象使得前端客戶和后端Pods進行了解耦
支持ClusterIP, NodePort以及LoadBalancer三種類型
Service的底層實現有userspace、 iptables和ipvs三種模式


Service類型: ClusterIP、 NodePort、 LoadBalancer


Ingress

Ingress基於service實現7層路由轉發能力


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM