本文全部相關連接pdf:https://tungstenfabric.org.cn/assets/uploads/files/tf-ceg-case1.pdfweb
這是全部Kubernetes CNI插件所能提供的最基礎和最根本的功能。應用程序Pods之間要能相互通訊,而Kubernetes Services是確保Pods隨時間推移來實現應用程序規模性和可用性的一種方式。centos
全部主要的CNI插件都提供基本的Pod到Pod的連通性以及某些服務類型,例如ClusterIP。瀏覽器
除此以外,Tungsten Fabric原生支持LoadBalancer。在AWS上運行時,LoadBalancer在清單中使用Service建立面向公衆的AWS ELB,從而使您的應用程序可從Internet一步訪問。微信
這也意味着在本地和全部主要的公共雲中,對全部集成Tungsten Fabric的Kubernetes,能夠在應用程序中使用Kubernetes部署清單而無需更改。網絡
建立部署時,CNI與Kubernetes協同工做,爲每一個應用程序Pod分配網絡IP地址,並將每一個Pod「鏈接」到集羣網絡。app
注意:大多數CNI經過建立一個overlay network來工做,這一網絡在大多數狀況下都包含在單個Kubernetes集羣的邊界內。因此,不一樣集羣中的Pod沒法直接通訊。負載均衡
在本文檔中咱們不會介紹多集羣方案,可是Tungsten Fabric可以支持此類配置。一次安裝Tungsten Fabric就能夠同時服務於多個Kubernetes集羣。在這種狀況下,即便Kubernetes集羣自己位於不一樣的位置,來自不一樣集羣的Pod也能夠直接相互通訊。less
Kubernetes中的服務是「公開運行在一組Pod上的應用程序的抽象方法」。在大多數狀況下,服務是簡單的Round-Robin負載均衡器。它具備用於接收網絡請求的虛擬IP地址(「VIP」),以及接受這些請求轉發的零個或多個端點的IP地址。webapp
在大多數狀況下,服務會經過在運行的Pod上查找匹配的標籤(稱爲「選擇器」,Selectors)來自動發現屬於應用程序Pod的端點IP地址。ide
確保您位於沙箱控制節點上,以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退出)
注意:
接下來,部署咱們的示例應用程序,看看會發生什麼:
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
在此用例中,咱們使用Tungsten Fabric Kubernetes CNI插件並與AWS的Elastic Load Balancing集成,部署了示例應用程序,而且它能夠從互聯網訪問。
若是這就是咱們想要的,那麼目的已經達到了。可是,若是咱們須要SSL卸載,或者想基於HTTP主機和/或路徑將傳入請求發送到不一樣的應用程序組件,則須要使用Kubernetes Ingress。用例2涵蓋了這一場景。(用例2的詳細內容近期發佈,敬請關注)
MORE
更多TF+K8s文章
關注微信:TF中文社區