您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“kubernetes中Service是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“kubernetes中Service是什么”這篇文章吧。
一:Service概念
Kubernetes里的每個Service其實就是微服務架構中的一個微服務。 它產生的背景在于:一是Pod的IP地址不是固定的,需要一個代理來確保需要使用Pod的應用不需要知道pod的真實IP地址;另一個是RC創建多個Pod副本時,需要一個代理來為這些pod做負載均衡。
Service 主要由一個IP地址和一個label selector組成。
Service定義了一個服務的訪問入口地址,前端的應用通過這個入口地址訪問其背后的一組由Pod副本組成的集群實例。Service與其后端Pod副本集群直接則是通過Label Selector來實現無縫對接的。而RC的作用實際上是保證Service的服務能力和服務質量始終處于預期的標準。
二:Service工作原理
Kubernetes集群的每個節點上都運行著一個kube-proxy,它是負責整個Service實現的主要組件。
對應每個Service(無論其Pod 是否在該節點上),kube-proxy都會在宿主機上監聽一個端口與Service對應起來。它會在宿主機上建立iptables規則。 Service請求經過iptables重定向到它對應的隨機端口,再經過kube-proxy的代理到某個后端pod. kube-proxy里會維護端口和Service的映射關系,以及Service代理的Pod清單。
kube-proxy還會實時監測Master節點上etcd中service和Endpoints對象的增加和刪除信息,從而保證后端被代理pod的IP和端口變化可以及時更新到它維護的路由信息中。
三:Service發現機制
一旦一個Service被創建,該Service的信息都可以被注入到Pod中工他們使用。
環境變量方式: kubelet創建pod時會自動添加所有可用的service環境變量到該pod中,如果有需要,這些環境變量就被注入pod內的容器里。
DNS方式:DNS服務器使用kubernetes的WatchAPI,不間斷地監測新Service的創建并為每個Service新建一個DNS記錄。如果DNS在整個集群范圍內都可用,那么所有的Pod都能夠自動解析Service的域名。
四:Service外部訪問
Node IP:Node節點的IP地址。每個節點的物理網卡的IP地址,這是一個真實存在的物理網絡。Kubernetes集群之外的節點訪問集群之內的某個節點或者TCP/IP服務的時候,必須通過Node IP進行通信。
Pod IP:每個Pod的IP地址,它是Docker Engine 根據docker0網橋的IP地址段進行分配的。通常是一個虛擬的二層網絡。kubernetes要求位于不同Node上的Pod能夠彼此直接通信,所有Kubernetes里一個pod里的容器訪問另外一個Pod里的容器,就是通過pod ip所在的虛擬二層網絡進行通信的,而真實的tcp/ip流量則是通過node ip所在的物理卡流出的。
Cluseter IP: 一個虛擬的IP 僅僅作用域Service這個對象,由kubernetes管理和分配IP地址。 它是無法ping通的。只能結合Service Port組成一個具體的通信端口,她屬于kubernetes集群這樣一個封閉的空間。集群之外的節點如果要訪問這個通信端口,則需要做一些額外的工作。
采用NodePort解決外部對集群內服務的訪問時最直接,最有效,最常用的方法。
NodePort的實現方式是在k8s集群里的每個Node上為需要外部訪問的service開啟一個對應的TCP監聽端口,外部系統只要用任意一個Node的IP地址+具體的Node Port端口號即可訪問此服務。
但NodePort還沒有完全解決外部訪問Service的所有問題,比如負載均衡問題,假如我們集群中有10個Node,則此時最好有一個負載均衡器,外部只需要訪問此負載均衡器的IP地址,由負載均衡器轉發流量到后面某個Node的NodePort上。
負載均衡器可以采用硬件或軟件(HAProxy,Nginx)的方式來實現。但這樣又帶來了另外一個問題,對于每個Service都需要手動配置一個對應的負載轉發實例。
以上是“kubernetes中Service是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。