使用 Karmada 管理多個 OKE 叢集的工作負載

簡介

Karmada (Kubernetes Armada 的短片) 是一個管理平台,可讓您在多個 Kubernetes 叢集和雲端環境中無縫執行雲端原生應用程式,而無需對應用程式進行任何變更。Karmada 運用 Kubernetes 原生 API 和進階排程功能,提供開放且真正的多雲端 Kubernetes 體驗。

Karmada 專為多雲端和混合雲端使用案例所設計,提供統包自動化功能來管理跨叢集的應用程式。其核心功能包括集中管理、高可用性、自動化故障復原,以及智慧型流量排程。

目標

必備條件

任務 1:建立示範所需的資源

注意:下列步驟顯示如何在示範期間部署 3 個 OKE 叢集和 1 個 VM。

  1. 從 github 下載含有 terraform 檔案的發行版本壓縮檔: karmada-on-oke

  2. 使用 Oracle Resource Manager 建立和套用堆疊。

    1. 使用漢堡功能表,移至「Oracle 資源管理程式」。
    2. 選擇 Stacks
    3. 選取 Create stack
    4. 選取 My configuration
    5. My configuration 區段中,確定已選取 Zip file。選擇您先前下載的壓縮檔。選取 Upload
    6. 為堆疊指定有意義的名稱。
    7. 選取 Next
    8. 選擇將用於連線 VM 的 SSH 公開金鑰。
    9. 選擇將在其中建立資源的區間。
    10. 選取 Next
    11. 在下一個畫面上,選取 Run apply
    12. 選取 Create
  3. 取得 VM 的公用 IP。

    在上一個步驟順利執行工作後,日誌中的最後一行應包含 VM 的公用 IP。記錄以供日後使用。

工作 2:在主機叢集上安裝 Karmada

  1. 使用先前取得的 IP,使用 ssh 連線至 VM:
    ssh -i <private-ssh-key> opc@<public-IP>
    
  2. 切換至 root 使用者:

    sudo su -
    
  3. 在主機叢集上安裝 karmada 元件 :

    karmadactl init
    

作業 3:加入 OKE 叢集成員

  1. 結合叢集 member1

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member1 --cluster-kubeconfig=$HOME/.kube/config-k1
    
  2. 結合叢集 member2

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member2 --cluster-kubeconfig=$HOME/.kube/config-k2
    
  3. 顯示成員叢集:

    karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  get clusters
    

工作 4:在 Karmada 部署工作負載

  1. 設定 KUBECONFIG 指向 karmada-api 伺服器:

    export KUBECONFIG=/etc/karmada/karmada-apiserver.config
    
  2. 建立部署和對應的傳輸原則:

    kubectl apply -f https://raw.githubusercontent.com/oracle-devrel/oci-automation-hub/refs/heads/main/karmada-on-oke-sample/deployment.yaml
    kubectl apply -f https://raw.githubusercontent.com/oracle-devrel/oci-automation-hub/refs/heads/main/karmada-on-oke-sample/propagationpolicy.yaml
    
  3. 驗證部署:

    karmadactl  get deployment --operation-scope all
    

    輸出應該類似於:

    # karmadactl  get deployment --operation-scope all
    NAME    CLUSTER   READY   UP-TO-DATE   AVAILABLE   AGE   ADOPTION
    nginx   Karmada   3/3     3            3           22m   -
    nginx   member2   2/2     2            2           22m   Y
    nginx   member1   1/1     1            1           22m   Y
    

    請注意,在三個 Pod 中,兩個 Pod 在 member2 上執行,另一個在 member1 上執行。

任務 5:清理

  1. 從主機叢集解除安裝 karmada 元件:
karmadactl --kubeconfig /root/.kube/config deinit
  1. 毀棄使用 terraform 堆疊所建立的資源:

確認

其他學習資源

您可以在 docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center