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