功能定義及簡介:
定義:K8s 中的Service是一種抽象,用於定義一組Pod的邏輯集合,併為它們提供統一的網路入口。Service充當了Pod的負載平衡器和服務發現器,為應用程式提供了穩定的網路地址,使得應用程式可以訪問與之關聯的Pod而無需瞭解其具體的IP地址或埠。
功能:Service 是 Kubernetes 中一種非常重要的資源,它提供了一種抽象和統一的方式來公開應用程式,並實現負載均衡和服務發現,從而簡化了微服務架構中的網路管理和通訊。 Service的四種型別
無頭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 時需要小心,因為手動管理和維護可能會變得複雜和困難