Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接

本文全部相關連接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退出)

注意:

  • spec.template.spec.containers.ports.containerPort在Deployments中顯示Pod將偵聽的TCP端口;
  • spec.ports 在服務中顯示服務的VIP將監聽的端口;
  • spec.selector在服務中會顯示服務要向其發送流量的Pod上的標籤。

接下來,部署咱們的示例應用程序,看看會發生什麼:

kubectl create -f cnawebapp-loadbalancer.yaml

這將建立如下應用程序拓撲:

Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接

若是應用程序部署沒有錯誤,咱們應該可以看到:

全部Pod都有本身的IP地址,而且正在各自的端口上監聽:

Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接

全部服務都有VIP和正在監聽的端口:

Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接

全部服務都發現了各自的端點:

Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接

因爲Tungsten Fabric提供了對Kubernetes的LoadBalancer服務支持,所以如今應該可以從Internet鏈接到咱們的應用程序。咱們能夠找出負載均衡器的公共DNS名稱:

Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接

讓咱們經過將網絡瀏覽器指向該地址來進行檢查,能夠看到應用位於:
aa01af9988cc311e9badf06b57ebf630-1452353610.us-west-1.elb.amazonaws.com

Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接
成功了!

清理

使用該應用程序後,能夠隨時取消部署:

kubectl delete -f cnawebapp-loadbalancer.yaml

回顧和下一步

在此用例中,咱們使用Tungsten Fabric Kubernetes CNI插件並與AWS的Elastic Load Balancing集成,部署了示例應用程序,而且它能夠從互聯網訪問。

若是這就是咱們想要的,那麼目的已經達到了。可是,若是咱們須要SSL卸載,或者想基於HTTP主機和/或路徑將傳入請求發送到不一樣的應用程序組件,則須要使用Kubernetes Ingress。用例2涵蓋了這一場景。(用例2的詳細內容近期發佈,敬請關注)


MORE
更多TF+K8s文章

第一篇:TF Carbide 評估指南--準備篇

Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接
關注微信:TF中文社區
Tungsten Fabric+K8s輕鬆上手丨經過Kubernetes的服務進行基本應用程序鏈接

相關文章
相關標籤/搜索