瞭解在雲端設定 Kubernetes 叢集

雲端中的 Kubernetes 型拓樸包含許多元件,包括網路資源、運算執行處理,以及 Kubernetes 節點。若要有效部署及管理這類複雜拓撲,請將您的雲端基礎架構定義為 Terraform 組態檔中的程式碼 (IaC)。

若要變更拓樸,請啟動適當 Terraform 模組的版本、更新資源定義,然後套用修訂的組態。必要時,您可以輕鬆地倒回至舊版的基礎架構。

使用本解決方案中提供的 Terraform 建置區塊,部署雲端 Kubernetes 環境所需的基礎架構。

開始之前

在您開始在 Oracle Cloud 中建立 Kubernetes 拓樸之前,請先瞭解架構選項的相關資訊,並瞭解架構的元件。

請參閱瞭解如何在雲端中設計容器化應用程式的 Kubernetes 拓樸

架構

此解決方案提供的範例拓撲包含具有所需網路與 Kubernetes 資源的單一虛擬雲端網路 (VCN),全部都在單一的Oracle Cloud Infrastructure 區域中。


Oracle Cloud 中 Kubernetes 雲的架構
架構由下列元件組成。

注意:

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 叢集所需的工具,例如 kubectlhelm 以及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 位址。架構不會顯示任何負載平衡器節點。

  • 管理主機 (選擇性)

    透過使用管理主機,您可以避免在雲端之外安裝與執行基礎架構-管理工具,例如 kubectlhelm 以及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 管理叢集和節點集區。

請參閱建立及建置叢集的原則組態