作者:吳明秘
目前成都創新互聯公司已為上1000+的企業提供了網站建設、域名、虛擬空間、網站托管運營、企業網站設計、奉節網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。Hi!歡迎來到Tungsten Fabric與Kubernetes集成指南系列,本文介紹通常創建虛擬網絡的五個步驟。
Tungsten Fabric與K8s集成指南系列文章,由TF中文社區為您呈現,旨在幫助大家了解Tungsten Fabric與K8s集成的基礎知識。大家在相關部署中有什么經驗,或者遇到的問題,歡迎與我們聯系。
在做好架構部署,并確認Tungsten Fabric和Kubernetes(K8s)集群的初始狀態沒有問題后,就可以開始嘗試創建虛擬網絡了。
在K8s中,大部分的資源都隸屬于一個命名空間,所以需要首先新建命名空間,然后再創建對應的pod,service,以及虛擬網絡。在此新建兩個命名空間,分別為 test-ns1 和 test-ns2,登錄K8s的master節點執行以下命令:
創建成功后,在Tungsten Fabric管理界面可以看到對應的project被創建出來,k8s-test-ns1與k8s-test-ns2。
你需要為你的項目創建一個IP地址管理(IPAM),基于此來創建一個虛擬網絡。
在Tungsten Fabric管理界面選擇“Configure > Networking > IP Address Management”,并選擇project - k8s-test-ns1,然后單擊“創建”按鈕。
其中Name和Subnet Method為必填項,Subnet Method有兩種方式,User Defined 是在綁定網絡的時候再去手工指定子網網段,Flat 是直接創建子網網段,兩者不同的是,User Defined可以指定IP池的范圍,Flat則是直接使用整個子網網段,默認是使用Flat。
在Tungsten Fabric管理界面選擇“Configure > Networking > Networks”,并選擇 k8s-test-ns1,然后單擊“創建”按鈕。
如上圖所示,就是完成了一個虛擬網絡的創建,為了方便測試,再以相同的方式創建另一個網絡 k8s-ns1-pod-net2 (10.10.20.0/24)。
首先在名為test-ns1的命名空間上創建一個pod,指定網絡為 k8s-ns1-pod-net01,配置如下:
然后再創建一個基于虛擬網絡k8s-ns1-pod-net02的pod,配置如下:
執行kubectl的創建命令之后,兩個pod都創建成功,并且容器的IP地址分別為:
屬于虛擬網絡 k8s-ns1-pod-net01 (10.10.10.0/24)的pod 10.10.10.1
屬于虛擬網絡 k8s-ns1-pod-net02 (10.10.20.0/24)的pod 10.10.20.1
1、驗證同一命名空間不通網絡pod之間網絡連通性
首先進行互ping,驗證連通性。測試結果如下截圖,同一命名空間下,默認情況兩個網絡無法通信。
需要通信則必須在Tungsten Fabric上添加一個路由器來連接網絡 k8s-ns1-pod-net01 和 k8s-ns1-pod-net02,如下所示:
路由器創建完成后再驗證兩個網絡的連通性,結果是兩個pod能夠互相通信。
2、驗證同一命名空間下pod到service之間的網絡連通性
默認情況下,除了 k8s-default-pod-network 之外,其他的虛擬網絡是無法連接到K8s的service網絡的,通過請求kube-system中的coredns服務來驗證,命令為 nslookup kube-dns.kube-system,因為是跨命名空間去解析域名,所以需要在域名中添加命名空間名稱后綴(如果pod是在kube-system中,那么執行nslookup kube-dns即可),具體驗證情況如下:
若需要讓k8s-ns1-pod-net01 網段的pod可以訪問到K8s的service網絡,那么就需要添加一條TF policy,k8s-default項目下的Policies -- k8s-default-service-np,具體策略規則如下圖所示,意味著所有添加了此條規則的網絡都可以無限制的訪問到k8s的service網絡的所有端口。
現在需要給網絡 k8s-ns1-pod-net01添加 k8s-default-service-np 這條策略,讓它可以訪問k8s的service網絡。
Configure --> Networking --> Networks, 選擇k8s-test-ns1項目,編輯network k8s-ns1-pod-net01, 附加一條Network Policy -- k8s-default-service-np,具體操作如下:
再次驗證pod到service之間的網絡連通性,此時處在網絡k8s-ns1-pod-net01的pod nginx01-ns1-net01 (10.10.10.1) 是可以直接通過請求service的ClusterIP:PORT(coredns服務)來解析域名,而k8s-ns1-pod-net02 沒有附加k8s-default-service-np,所以pod nginx01-ns1-net02 (10.10.20.1) 是仍然無法訪問service里面的coredns服務。
3、驗證不同命名空間下pod之間的網絡連通性
同一命名空間下的兩個網絡之間的通信,跟不同命名空間下的兩個網絡之間的通信是有一些區別的,因為不同命名空間的情況下,無法通過新建TF Router來連接兩個網絡,所以必須通過TF Policy 來實現不同命名空間下的兩個網絡之間的互通。
之前的步驟中已經創建了兩個命名空間 (test-ns1與test-ns2),并且test-ns1里面已經有了兩個網絡,所以需要在test-ns2中去新建一個網絡。新建的網絡為 k8s-ns2-pod-net01 (20.10.10.0/24)。
默認情況下,k8s-ns2-pod-net01 (20.10.10.0/24) 與 k8s-ns1-pod-net01 (10.10.10.0/24),k8s-ns1-pod-net02 (10.10.20.0/24) 都是無法通信的,現在需要在網絡k8s-ns2-pod-net01 (20.10.10.0/24)中新建兩個pod。
在此驗證pod nginx01-ns1-net01 與 nginx01-ns2-net01的網絡連通性,兩者在不同的命名空間,不同的network,驗證結果是無法通信,具體見下面截圖:
若需要讓這兩個不同命名空間不同network的pod能夠互相通信,則需要添加如下的TF Policies:
Contrial Network Policy 創建好之后,再分別將它附加到網絡 k8s-ns1-pod-net01和k8s-ns2-pod-net01。
再次驗證,此時兩個不同命名空間不同network的pod已經能夠互相通信。
(作者來自深圳市天源景云科技有限公司)
Tungsten Fabric+K8s集成指南系列文章---
第一篇:部署準備與初始狀態
Tungsten Fabric+K8s輕松上手系列文章---
第一篇:TF Carbide 評估指南--準備篇
第二篇:通過Kubernetes的服務進行基本應用程序連接
第三篇:通過Kubernetes Ingress進行高級外部應用程序連接
第四篇:通過Kubernetes命名空間實現初步的應用程序隔離
第五篇:通過Kubernetes網絡策略進行應用程序微分段
關注微信:TF中文社區
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前標題:TungstenFabric與K8s集成指南丨創建虛擬網絡-創新互聯
新聞來源:http://vcdvsql.cn/article48/csscep.html
成都網站建設公司_創新互聯,為您提供網站設計公司、網站策劃、用戶體驗、服務器托管、微信公眾號、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯