service類型及功能簡介+pod類型

功能定義及簡介:

定義:K8s 中的Service是一種抽象,用於定義一組Pod的邏輯集合,併爲它們提供統一的網絡入口。Service充當了Pod的負載平衡器和服務發現器,爲應用程序提供了穩定的網絡地址,使得應用程序可以訪問與之關聯的Pod而無需瞭解其具體的IP地址或端口。

功能:Service 是 Kubernetes 中一種非常重要的資源,它提供了一種抽象和統一的方式來公開應用程序,並實現負載均衡和服務發現,從而簡化了微服務架構中的網絡管理和通信。 Service的四種類型

1.cluster ip(默認,集羣內部訪問,提供pod的vip地址),通過集羣的內部 IP 公開 Service,選擇該值時 Service 只能夠在集羣內部訪問。
2.nodeport,通過每個節點上的 IP 和靜態端口(NodePort)公開 Service。 爲了讓 Service 可通過節點端口訪問,Kubernetes 會爲 Service 配置集羣 IP 地址, 相當於你請求了 type: ClusterIP 的服務。
 
3.Loadlbalance:公有云ecs負載均衡器,會在每個ecs上啓動一個nodeport,然後loadbalacne會自動添加nodeip:nodeport,用於將外部流量均衡地分發到集羣中的後端 Pod。LoadBalancer 在雲提供商(如AWS、阿里雲,騰訊雲等)上創建一個負載均衡器,並將該負載均衡器配置爲將流量路由到 Kubernetes 集羣中的 Service。這使得應用程序可以通過公共 IP 地址或 DNS 名稱訪問 Kubernetes 集羣中的服務
4.ExternalName:將服務映射到 externalName 字段的內容(例如,映射到主機名 api.foo.bar.example)。 該映射將集羣的 DNS 服務器配置爲返回具有該外部主機名值的 CNAME 記錄。代理外部域名就是用的這個類型。

無頭service: 無頭service是K8S中一種特殊類型的服務,與普通的服務類型(如ClusterIP、NodePort、LoadBalancer)不同,它並不分配 ClusterIP,也不會代理流量到任何後端 Pod。相反,它的主要目的是爲了服務發現,通過 DNS 記錄提供了服務的所有 Pod 的 IP 地址列表。這樣,應用程序可以直接通過 Pod 的 IP 地址來訪問服務,而不需要經過 Kubernetes 的服務代理。 由於無頭服務提供了每個 Pod 的直接 IP 地址,因此它通常用於運行有狀態應用程序,如數據庫、緩存。 查詢 DNS 記錄: 使用 Pod 內置的 DNS 解析功能,可以通過無頭服務的 DNS 名稱來獲取所有後端 Pod 的 IP 地址列表。例如,通過查詢 my-headless-service.namespace.svc.cluster.local 可以獲取到所有與 my-headless-service 服務關聯的 Pod 的 IP 地址列表。

 

靜態 Pod 是 Kubernetes 中的一種特殊類型的 Pod。與通常由控制器動態創建和管理的 Pod 不同,靜態 Pod 是直接在某個節點上手動創建的。

靜態 Pod 的配置文件通常存儲在節點上的特定目錄中(例如 /etc/kubernetes/manifests)。當 Kubernetes 的 kubelet 啓動時,它會掃描該目錄,並直接使用這些配置文件創建對應的 Pod。

 

靜態 Pod 與其他類型的 Pod 有以下一些區別:

靜態 Pod 只能在特定的節點上運行,而不能被調度到集羣中的其他節點。
靜態 Pod 不受控制器的管理,也不會受到自動伸縮、滾動升級等功能的影響。
靜態 Pod 的生命週期與 kubelet 進程的生命週期相綁定,如果 kubelet 停止或重啓,那麼靜態 Pod 也會停止或重啓。
靜態 Pod 在某些情況下非常有用,例如用於在節點啓動時運行一些系統級別的服務或輔助容器。然而,在大規模集羣中部署靜態 Pod 時需要小心,因爲手動管理和維護可能會變得複雜和困難

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章