瞭解在雲端設定 Kubernetes 叢集
雲端中的 Kubernetes 型拓樸包含許多元件,包括網路資源、運算執行處理,以及 Kubernetes 節點。若要有效部署及管理這類複雜拓撲,請將您的雲端基礎架構定義為 Terraform 組態檔中的程式碼 (IaC)。
若要變更拓樸,請啟動適當 Terraform 模組的版本、更新資源定義,然後套用修訂的組態。必要時,您可以輕鬆地倒回至舊版的基礎架構。
使用本解決方案中提供的 Terraform 建置區塊,部署雲端 Kubernetes 環境所需的基礎架構。
架構
此解決方案提供的範例拓撲包含具有所需網路與 Kubernetes 資源的單一虛擬雲端網路 (VCN),全部都在單一的Oracle Cloud Infrastructure 區域中。

注意:
Terraform 程式碼包括輸入變數,可供您根據容器化工作負載的網路需求、所需的節點集區大小和數目、容錯限制等等,調整架構。- 虛擬雲端網路 (VCN)
拓樸中的所有資源都在單一網路中。定義網路的 CIDR 前置碼 (預設值為10.0.0.0/16)。
- 子網路範例拓樸中的 VCN 包含四個子網路。您可以定義子網路的大小。
子網路 預設 CIDR 前置碼 描述 基本子網路 10.0.1.0/29 選擇性基礎主機的公用子網路。 負載平衡器子網路 10.0.2.32/27如果公用 (10.0.2.0/27,如果是專用的話) 負載平衡器節點的子網路。您可以選擇子網路為公用或專用。 管理子網路 10.0.1.8/29 選擇性管理主機的專用子網路,包含管理 Kubernetes 叢集所需的工具,例如 kubectl
、helm
以及Oracle Cloud Infrastructure CLI。工作者節點子網路 10.0.64.0/18 Kubernetes 工作節點的子網路。您可以選擇子網路為公用或專用。 所有子網路都是區域性的;亦即,它們跨越區域中的所有可用性網域,並在架構圖表中縮寫為 AD1、AD2 以及 AD3。因此它們會根據可用性進行網域的失敗進行保護。您可以針對部署到區域內任何可用性網域的資源,使用區域子網路。
- 網路閘道
- 服務閘道 (選擇性)
服務閘道可讓 VCN 中的資源存取 Oracle 服務,例如Oracle Cloud Infrastructure 物件儲存體、Oracle Cloud Infrastructure File Storage以及Oracle Cloud Infrastructure Database 私密;亦即不公開網際網路流量。您可以從 VCN 內的資源起始透過服務閘道的連線,而不是從資源通訊的服務起始。
- NAT 閘道 (選擇性)
NAT 閘道可讓連附至 VCN 中專用子網路的運算執行處理存取公用網際網路。可從 VCN 內的資源起始透過 NAT 閘道的連線,而不是從公用網際網路起始。
- 網際網路閘道
網際網路閘道可讓公用網際網路與 VCN 內公用子網路中的任何資源之間的連線。
- 服務閘道 (選擇性)
- 基本主機 (選擇性)
聯合主機是一個運算執行處理,可作為雲端外部拓樸的進入點。
通常會在 DMZ 中啟動設定聯合主機。您可以將機密資源置於專用網路,就無法直接從雲端存取該資源。您可以顯示可定期稽核的單一已知進入點。因此,您可以避免公開拓樸中較敏感的元件,而不會危及其存取權。
範例拓樸中的聯合主機會連附至公用子網路並具有公用 IP 位址。傳入安全規則設定為允許從公用網際網路建立主機的 SSH 連線。若要提供額外的安全性層次,您可以限制只能從特定 IP 位址區塊存取基礎主機。
您可以透過防和主機存取專用子網路中的Oracle Cloud Infrastructure 執行處理。若要這樣做,請啟用
ssh-agent
轉寄,您可以連線至置頂主機,然後從電腦轉寄證明資料來存取下一部伺服器。您也可以使用動態 SSH 通道來存取專用子網路中的執行處理。動態通道會針對本機連接埠提供「Soeks」代理;但是來自遠端主機的連線。 - 負載平衡器節點 (不包括在範例程式碼中)
負載平衡器節點會攔截並將流量分送至執行容器化應用程式的可用 Kubernetes 節點。如果應用程式必須能夠從公用網際網路存取,請使用公用負載平衡器;否則,請使用專用負載平衡器,它沒有公用 IP 位址。架構不會顯示任何負載平衡器節點。
- 管理主機 (選擇性)
透過使用管理主機,您可以避免在雲端之外安裝與執行基礎架構-管理工具,例如
kubectl
、helm
以及Oracle Cloud Infrastructure CLI。範例拓樸中的管理主機位於專用子網路中,可以透過基礎主機存取。若要能夠在管理主機上執行Oracle Cloud Infrastructure CLI,您必須將它指定為執行處理主要項目。 - Kubernetes 工作節點
Kubernetes 工作節點是可以部署容器化應用程式的運算執行處理。在範例拓樸中,所有工作節點都位於單一節點集區,並且連附至專用子網路。您可以自訂節點集區的數目、每個集區的大小,以及是否根據您的需求使用公用子網路。
如果工作節點附加至專用子網路,則無法直接從公用網際網路存取它們。使用者可以透過負載平衡器存取容器化的應用程式。
如果您啟用工作節點的 SSH 存取,管理員就可以透過聯合主機建立工作者節點的 SSH 連線。
此架構顯示三個工作節點,每個節點都位於區域 AD1、AD2 及 AD3 內的不同可用性網域中。注意:
如果您要在其中部署容器化應用程式的區域包含單一可用性網域,則工作節點會分佈至可用性網域內的容錯域 (FD)。
關於必要服務和許可權
此解決方案需要下列服務與權限:
服務 | 需有權限 |
---|---|
Oracle Cloud Infrastructure Identity and Access Management | 管理動態群組和原則。 |
Oracle Cloud Infrastructure 網路 | 管理 Vcn、子網路、網際網路閘道、NAT 閘道、服務閘道、路由表以及安全清單。 |
Oracle Cloud Infrastructure Compute | 管理運算執行處理。 |
Oracle Cloud Infrastructure Container Engine for Kubernetes | 管理叢集和節點集區。
請參閱建立及建置叢集的原則組態。 |