[英]how kubernetes service works?
在 Kubernetes 的所有概念中,我發現服務工作機制是最難理解的
這是我現在的想象:
這是正確的嗎? 還有一些我還不清楚的地方:
我看到的大部分在線繪制服務的圖表都是跨越所有節點的,這更讓人難以想象
每個節點中的 kube-proxy 偵聽主 API 控制器中的任何新服務/端點
Kubernetes 使用 etcd 在所有節點(包括 pod、服務、部署等)之間共享當前的集群配置信息。
如果有任何新的服務/端點,它會向該節點的 iptables 添加規則
kubernetes 內部有一個所謂的端點控制器,負責修改虛擬集群網絡的 DNS 配置,使服務端點通過 DNS(和環境變量)可用。
對於 NodePort 服務,外部客戶端必須通過節點的 ip 和 NodePort 之一訪問新服務。 節點將請求轉發到新的服務IP
根據服務類型采取附加操作,例如通過自動創建的用於類型 nodePort 的 clusterIP 服務在節點上提供端口。 或者使用雲提供商等創建外部負載均衡器。
服務是否位於節點內? 如果是這樣,我們可以通過 ssh 進入節點並檢查服務是如何工作的嗎?
正如所解釋的,服務體現在集群配置、端點控制器以及其他東西中,如 clusterIP 服務、負載均衡器等。我認為不需要通過 ssh 進入節點來檢查服務。 通常與集群 api 交互應該足以調查/更新服務配置。
服務 IP 是虛擬 IP 並且只能在節點內訪問嗎?
服務 IP,如 POD IP,是虛擬的,可從集群網絡內訪問。 etcd 中有一個全局分配映射,它維護允許分配唯一的新列表的完整列表。 有關網絡模型的更多信息,請閱讀此博客。
有關更多詳細信息,請參閱kubernetes 組件和服務的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.