就喜欢用vSphere部署K8s集群,不全是因为自动化!
通過努力,我們有了一個完整配置的工作負載域,其中包括一個NSX-T Edge部署。現在,我們準備繼續使用Kubernetes 部署vSphere。通過VMware Cloud Foundation 4.0中的SDDC Manager,我們確保NSX-T Edge可用,并且還確保Workload Domain獲得了足夠的許可以啟用帶有Kubernetes的vSphere。
為清楚起見,本文基于GA Cloud的VMware Cloud Foundation 4.0之前版本。盡管人們認為在撰寫本文至產品上市之間應該沒有太大變化,但我希望讀者意識到在此之前功能行為和用戶界面仍可能會發生變化。
驗證工作負載域
該過程的第一步是驗證工作負載域是否可以通過Kubernetes支持vSphere。SDDC管理器現在有一個名為“解決方案”的新部分。當前,有一個名為Kubernetes的解決方案–工作負載管理。首先,顯然沒有創建工作負載管理解決方案:
單擊部署鏈接以開始。顯示的第一個窗口是先決條件–您需要正確的許可證版本,帶有NSX-T Edge群集和各個子網的已配置的基于NSX-T的工作負載域,其中兩個必須進行路由(對于Ingress和Egress)。
選擇以上所有條件后,我們就可以開始工作負載管理部署了。在“群集”部分中,選擇工作負載域。如果存在兼容性問題,群集將不會顯示在“兼容”部分中。相反,它將顯示在不兼容部分中。不兼容視圖還將顯示群集不兼容的原因。在下面的屏幕截圖中,我的WLD沒有得到適當的許可,因此與帶有Kubernetes的vSphere不兼容。
解決不兼容的原因后(例如,將正確的許可證版本應用于VI WLD),WLD將出現在“兼容”部分,您可以繼續進行驗證步驟。
現在,我們將進行全面驗證,以確保憑據,資源和網絡都存在,并且可用于使用Kubernetes推出vSphere。
驗證了使用Kubernetes的vSphere的要求后,我們可以連接到vSphere環境以完成使用Kubernetes的vSphere設置。單擊在vSphere中完成按鈕:
vSphere與Kubernetes部署
單擊“在vSphere中完成”按鈕后,將啟動vSphere Client,然后我們將其置于啟用工作負載管理的起點。總共有5個步驟。第一步是選擇一個vSphere群集,因為同一VI Workload Domain中可能存在多個群集。在此示例中,只有一個,因此我們選擇它。
選擇集群后,下一步是在“集群設置”中選擇控制平面的大小。換句話說,將哪些資源分配到Supervisor Kubernetes Cluster Master虛擬機。
Project Pacific是帶有Kubernetes的vSphere的原始名稱。
出于可用性目的,提供了3個主服務器,稱為“主管控制平面VM”。對于帶有Kubernetes的vSphere,工作節點是集群中的ESXi主機。
下一步是提供控制平面主節點和工作負載網絡的各種IP范圍(例如Pod和Services)的網絡詳細信息。Pod和Service CIDR不需要是可路由的,但Ingress和Egress當然可以。在先決條件中,它聲明入口和出口都至少需要/ 27 CIDR。這是32個IP地址的連續范圍。請注意,在我的實驗室測試中,我能夠使用帶有/ 28(僅16個IP地址)的Kubernetes部署vSphere。在部署時,立即創建了12條SNAT規則,因此/ 28僅可用于最基本的部署。每個新名稱空間也將需要一個SNAT,因此最多只能有2個名稱空間。要在帶有Kubernetes的vSphere上做一些有用的事情,您肯定需要/ 27 CIDR,至少對于出口而言。
下一步是為帶有Kubernetes的vSphere選擇所需的各種磁盤的存儲策略。基本上,您在此步驟中要做的是為控制平面節點磁盤,臨時(臨時)磁盤和圖像緩存選擇存儲策略。
單擊“選擇存儲”時,將顯示可用存儲策略列表。只需選擇您要用于特定存儲類型的存儲。
最后,檢查選擇并完成。這將開始使用Kubernetes部署vSphere。
可以從vSphere Client監視進度,尤其是“最近”任務。
現在有很多動作在發生。其中一些任務包括但不限于:
???? 部署3個主VM / Supervisor控制平面VM
???? 在NSX-T中為整個K8s服務陣列創建一組SNAT規則(出口)
???? 在NSX-T中為K8s控制平面創建負載均衡器(入口)
???? 在ESXi主機上安裝Spherelet,以便它們充當Kubernetes輔助節點
從NSX-T中,我們可以看到12個SNAT規則:
如前所述,一旦您開始構建名稱空間,就會創建一個新的SNAT規則。因此,在部署時正確設置Egress CIDR非常重要,否則您很快就會用完地址。
我提到過,還創建了一個負載均衡器–用于多主控平面API服務器。我們可以連接到LB虛擬IP地址,而不是連接到單個主機。這意味著,如果任何控制平面虛擬機存在問題,將不會引起注意。與API服務器的連接將直接重定向到后端的其他控制平面主機。這是在我的環境中用于控制平面的入口/負載平衡器IP地址:
您可以從vCenter Server上名為wcpsvc.log的日志文件中監視所有帶有Kubernetes的vSphere部署活動。我通常讓tail命令運行以查看詳細活動:
root@vcsa-04 [ ~ ]# cd /var/log/vmware/wcproot@vcsa-04 [ /var/log/vmware/wcp ]# ls -l total 18532 -rw------- 1 root root 23102 Mar 20 09:00 gcm-telemetry -rw-r--r-- 1 root root 9445965 Mar 20 09:02 nsxd.log -rw------- 1 root root 111 Mar 19 11:05 stdstream.log-0.stderr -rw------- 1 root root 42 Mar 19 11:05 stdstream.log-0.stdout -rw------- 1 root root 1865 Mar 19 04:06 stdstream.log-1.stderr -rw------- 1 root root 42 Mar 18 16:06 stdstream.log-1.stdout -rw------- 1 root root 3719 Mar 20 08:25 stdstream.log.stderr -rw------- 1 root root 42 Mar 19 12:20 stdstream.log.stdout -rw-r--r-- 1 root root 778392 Mar 19 12:09 wcpsvc-2020-03-19T12-09-03.220.log.gz -rw-r--r-- 1 root root 8687263 Mar 20 09:03 wcpsvc.logroot@vcsa-04 [ /var/log/vmware/wcp ]# tail -f wcpsvc.log如果一切都按計劃進行,則應該在vSphere Client和SDDC Manager>解決方案>工作負載管理中都看到部署完成:
在vSphere客戶端中,如果我們導航到vSphere UI中的``工作負載管理>命名空間'',則會看到一條消息,指出工作負載管理已成功部署,并且現在可以通過在Supervisor群集上創建命名空間和其他Kubernetes對象來開始工作了。這些可以是您的典型Kubernetes對象(例如Pod,Deployments,StatefulSets),也可以是其他事物,例如Tanzu Kubernetes Grid(TKG)Guest Kubernetes集群的完整部署。
?希望這篇文章顯示了VMware Cloud Foundation 4.0中如何實現自動化配置、驗證和部署基礎架構,這些基礎架構有助于使用Kubernetes輕松部署vSphere。
總結
以上是生活随笔為你收集整理的就喜欢用vSphere部署K8s集群,不全是因为自动化!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1张手稿图讲明白 Kubernetes
- 下一篇: 同源策略_如何支持跨域