溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

發(fā)布時間:2020-02-14 11:07:31 來源:網(wǎng)絡(luò) 閱讀:128 作者:TF中文社區(qū) 欄目:網(wǎng)絡(luò)管理

作者:吳明秘

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)部署,并確認(rèn)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í)行以下命令:

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

創(chuàng)建成功后,在Tungsten Fabric管理界面可以看到對應(yīng)的project被創(chuàng)建出來,k8s-test-ns1與k8s-test-ns2。

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

第2步:新建IPAM

你需要為你的項目創(chuàng)建一個IP地址管理(IPAM),基于此來創(chuàng)建一個虛擬網(wǎng)絡(luò)。

在Tungsten Fabric管理界面選擇“Configure > Networking > IP Address Management”,并選擇project - k8s-test-ns1,然后單擊“創(chuàng)建”按鈕。

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

其中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)段,默認(rèn)是使用Flat。

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

第3步:新建虛擬網(wǎng)絡(luò)

在Tungsten Fabric管理界面選擇“Configure > Networking > Networks”,并選擇 k8s-test-ns1,然后單擊“創(chuàng)建”按鈕。
Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

如上圖所示,就是完成了一個虛擬網(wǎng)絡(luò)的創(chuàng)建,為了方便測試,再以相同的方式創(chuàng)建另一個網(wǎng)絡(luò) k8s-ns1-pod-net2 (10.10.20.0/24)。
Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

第4步:創(chuàng)建pod

首先在名為test-ns1的命名空間上創(chuàng)建一個pod,指定網(wǎng)絡(luò)為 k8s-ns1-pod-net01,配置如下:

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

然后再創(chuàng)建一個基于虛擬網(wǎng)絡(luò)k8s-ns1-pod-net02的pod,配置如下:

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

執(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

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

第5步:網(wǎng)絡(luò)連通性驗證

1、驗證同一命名空間不通網(wǎng)絡(luò)pod之間網(wǎng)絡(luò)連通性

首先進行互ping,驗證連通性。測試結(jié)果如下截圖,同一命名空間下,默認(rèn)情況兩個網(wǎng)絡(luò)無法通信。
Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

需要通信則必須在Tungsten Fabric上添加一個路由器來連接網(wǎng)絡(luò) k8s-ns1-pod-net01 和 k8s-ns1-pod-net02,如下所示:

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

路由器創(chuàng)建完成后再驗證兩個網(wǎng)絡(luò)的連通性,結(jié)果是兩個pod能夠互相通信。

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

2、驗證同一命名空間下pod到service之間的網(wǎng)絡(luò)連通性

默認(rèn)情況下,除了 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即可),具體驗證情況如下:

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

若需要讓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ò)的所有端口。

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(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,具體操作如下:

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

再次驗證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ù)。
Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

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)。

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

默認(rèn)情況下,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。

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)
在此驗證pod nginx01-ns1-net01 與 nginx01-ns2-net01的網(wǎng)絡(luò)連通性,兩者在不同的命名空間,不同的network,驗證結(jié)果是無法通信,具體見下面截圖:
Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

若需要讓這兩個不同命名空間不同network的pod能夠互相通信,則需要添加如下的TF Policies:

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Contrial Network Policy 創(chuàng)建好之后,再分別將它附加到網(wǎng)絡(luò) k8s-ns1-pod-net01和k8s-ns2-pod-net01。

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

再次驗證,此時兩個不同命名空間不同network的pod已經(jīng)能夠互相通信。
Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

(作者來自深圳市天源景云科技有限公司)


Tungsten Fabric+K8s集成指南系列文章---
第一篇:部署準(zhǔn)備與初始狀態(tài)

Tungsten Fabric+K8s輕松上手系列文章---
第一篇:TF Carbide 評估指南--準(zhǔn)備篇
第二篇:通過Kubernetes的服務(wù)進行基本應(yīng)用程序連接
第三篇:通過Kubernetes Ingress進行高級外部應(yīng)用程序連接
第四篇:通過Kubernetes命名空間實現(xiàn)初步的應(yīng)用程序隔離
第五篇:通過Kubernetes網(wǎng)絡(luò)策略進行應(yīng)用程序微分段


Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)
關(guān)注微信:TF中文社區(qū)
Tungsten Fabric與K8s集成指南丨創(chuàng)建虛擬網(wǎng)絡(luò)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI