功能定義及簡介:
定義: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 時需要小心,因爲手動管理和維護可能會變得複雜和困難