![](/img/trans.png)
[英]How to setup static LoadBalancer IP for a service in OCI kubernetes cluster?
[英]what is the use of cluster IP in kubernetes
有人可以幫助我了解我在列出服務時看到的集群 IP 的 IP 地址。
集群 IP 是可以從集群內部訪問您的服務的地址。 除非您執行某種 SSH 隧道,否則您將無法從外部網絡 ping 集群 IP。 這個 IP 是由 k8s 自動分配的,並且可以定義一個范圍(我不確定,我不明白你為什么需要這樣做)。
開始學習新東西的好問題(對我來說也是如此):
默認情況下,您的擔憂與 k8s 集群中的kube-proxy
有關,它在iptables mode
工作。
Kubernetes 集群中的每個節點都運行一個 kube-proxy。 Kube-proxy 負責為 Services 實現一種虛擬 IP 的形式。
在這種模式下,kube-proxy 監視 Kubernetes 控制平面以添加和刪除 Service 和 Endpoint 對象。 對於每個服務,它安裝 iptables 規則,這些規則捕獲到服務的 clusterIP 和端口的流量,並將該流量重定向到服務的后端集之一。 對於每個 Endpoint object,它會安裝 iptables 規則,其中 select 是一個后端 Pod。
如此處所述:
Due to these iptables rules, whenever a packet is destined for a service IP, it's DNATed (DNAT=Destination Network Address Translation), meaning the destination IP is changed from service IP to one of the endpoints pod IP chosen at random by iptables. 這確保負載在后端 pod 之間均勻分布。
當此 DNAT 發生時,此信息將存儲在 conntrack 中 — Linux 連接跟蹤表(存儲 iptables 已完成的 5 元組轉換:協議、srcIP、srcPort、dstIP、dstPort)。 這樣當回復返回時,它可以取消 DNAT,這意味着將源 IP 從 Pod IP 更改為服務 IP。 這樣,客戶端就不會知道數據包流是如何在幕后處理的。
還有不同的模式,你可以在這里找到更多信息
在集群初始化期間,您可以使用--service-cidr
字符串參數Default: "10.96.0.0/12"
Kubernetes 從集群的可用服務 IP 地址池中為每個新創建的服務(ClusterIP)分配一個穩定、可靠的 IP 地址。 Kubernetes 還通過添加 DNS 條目為 ClusterIP 分配主機名。 ClusterIP 和主機名在集群內是唯一的,並且在服務的整個生命周期內不會改變。 Kubernetes 僅在從集群配置中刪除 Service 時釋放 ClusterIP 和主機名。 您可以使用 ClusterIP 或服務的主機名訪問運行應用程序的健康 Pod。
Kubernetes 從節點上為 Pod 保留的一系列地址中,將 IP 地址(Pod IP)分配給 Pod 的網絡命名空間中的虛擬網絡接口。 此地址范圍是分配給 Pod 集群的 IP 地址范圍的子集,您可以在創建集群時對其進行配置。
資源:
希望這有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.