您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何通過Kubernetes的服務進行基本應用程序連接,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
這是所有Kubernetes CNI插件所能提供的最基礎和最根本的功能。應用程序Pods之間要能相互通信,而Kubernetes Services是確保Pods隨時間推移來實現應用程序規模性和可用性的一種方式。
所有主要的CNI插件都提供基本的Pod到Pod的連通性以及某些服務類型,例如ClusterIP。
除此之外,Tungsten Fabric原生支持LoadBalancer。在AWS上運行時,LoadBalancer在清單中使用Service創建面向公眾的AWS ELB,從而使您的應用程序可從Internet一步訪問。
這也意味著在本地和所有主要的公共云中,對所有集成Tungsten Fabric的Kubernetes,可以在應用程序中使用Kubernetes部署清單而無需更改。
創建部署時,CNI與Kubernetes協同工作,為每個應用程序Pod分配網絡IP地址,并將每個Pod“連接”到集群網絡。
注意:大多數CNI通過創建一個overlay network來工作,這一網絡在大多數情況下都包含在單個Kubernetes集群的邊界內。所以,不同集群中的Pod無法直接通信。
在本文檔中我們不會介紹多集群方案,但是Tungsten Fabric能夠支持此類配置。一次安裝Tungsten Fabric就可以同時服務于多個Kubernetes集群。在這種情況下,即使Kubernetes集群本身位于不同的位置,來自不同集群的Pod也可以直接相互通信。
Kubernetes中的服務是“公開運行在一組Pod上的應用程序的抽象方法”。在大多數情況下,服務是簡單的Round-Robin負載均衡器。它具有用于接收網絡請求的虛擬IP地址(“VIP”),以及接受這些請求轉發的零個或多個端點的IP地址。
在大多數情況下,服務會通過在運行的Pod上查找匹配的標簽(稱為“選擇器”,Selectors)來自動發現屬于應用程序Pod的端點IP地址。
確保您位于沙箱控制節點上,以root用戶身份登錄,并且位于正確的目錄中:
# 確認您是root賬戶
whoami | grep root || sudo -s
# 切換到清單目錄
cd /home/centos/yelb/deployments/platformdeployment/Kubernetes/yaml
查看cnawebapp-loadbalancer.yaml文件,查找以Kind: Deployment和 Kind: Service開頭的部分
less cnawebapp-loadbalancer.yaml
(使用箭頭/ PgUp / PgDn導航;按q退出)
注意:
spec.template.spec.containers.ports.containerPort在Deployments中顯示Pod將偵聽的TCP端口;
spec.ports 在服務中顯示服務的VIP將監聽的端口;
spec.selector在服務中會顯示服務要向其發送流量的Pod上的標簽。
接下來,部署我們的示例應用程序,看看會發生什么:
kubectl create -f cnawebapp-loadbalancer.yaml
這將創建以下應用程序拓撲:
如果應用程序部署沒有錯誤,我們應該能夠看到:
所有Pod都有自己的IP地址,并且正在各自的端口上監聽:
所有服務都有VIP和正在監聽的端口:
所有服務都發現了各自的端點:
由于Tungsten Fabric提供了對Kubernetes的LoadBalancer服務支持,因此現在應該能夠從Internet連接到我們的應用程序。我們可以找出負載均衡器的公共DNS名稱:
讓我們通過將網絡瀏覽器指向該地址來進行檢查,可以看到應用位于:
aa01af9988cc311e9badf06b57ebf630-1452353610.us-west-1.elb.amazonaws.com
成功了!
使用該應用程序后,可以隨時取消部署:
kubectl delete -f cnawebapp-loadbalancer.yaml
以上就是如何通過Kubernetes的服務進行基本應用程序連接,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。