使用工作負載識別管理 ArgoCD 中的 Oracle Cloud Infrastructure Kubernetes Engine 叢集

簡介

ArgoCD 是適用於 Kubernetes 的宣告式 GitOps 持續傳遞工具。撰寫本教學課程時,ArgoCD 沒有產生 Oracle Cloud Infrastructure Kubernetes Engine (OKE) 存取權杖所需的 Oracle Cloud Infrastructure 命令行介面 (OCI CLI) 功能,因此需要自訂 ArgoCD 映像檔。

注意:用於自訂影像的基本 ArgoCD 影像是 quay.io/argoproj/argocd:v3.1.1

目標

必備條件

工作 1:將 ArgoCD 自訂映像檔推送至 OCI 容器登錄

注意:您可以使用 Podman 或 docker。

  1. 建立 Dockerfile,其中包含:

    FROM quay.io/argoproj/argocd:v3.1.1
    
    USER root
    
    
    RUN apt-get update; \
        apt-get install -y --no-install-recommends python3-venv; \
        python3 -m venv /opt/oci; \
        /opt/oci/bin/pip install --no-cache-dir --upgrade pip; \
        /opt/oci/bin/pip install --no-cache-dir "oci-cli==3.65.0"; \
        ln -s /opt/oci/bin/oci /usr/local/bin/oci; \
        apt-get clean; \
        rm -rf /var/lib/apt/lists/*
    
    USER 999
  2. 在包含 'Dockerfile' 的資料夾內執行下列命令。

    podman build --platform linux/amd64 -t argocd-oci:01 .

    注意:命令結尾的 dot (.) 是用於 Dockerfile 所在的目前目錄。

  3. 執行下列命令。

    podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
  4. 執行下列命令。

    podman login ocir.**your_region**.oci.oraclecloud.com
    • 使用者為:
      • 如果使用識別網域:your_tenancy_namespace /OracleIdentityCloudService/your_email
      • 如果使用預設網域:your_tenancy_namespace /your_email
    • 密碼是您的 OCI 認證權杖。
  5. 執行下列命令。

    podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01

工作 2:使用自訂影像安裝 ArgoCD

  1. 從此處下載並安裝 ArgoCD 清單: argo-cd/manifests/install.yaml

  2. 編輯檔案以將 ArgoCD 影像取代為我們的自訂影像。

    • 從圖片更改:quay.io/argoproj/argocd
    • 圖像:ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
  3. 執行下列命令以建立 argocd 命名空間。

    kubectl create namespace argocd
  4. 執行下列命令以部署 argocd

    kubectl apply -f install.yaml -n argocd

工作 3:新增叢集至 ArgoCD 叢集清單

  1. 啟動 ArgoCD。

    注意:您可以使用 OCI 負載平衡器來顯示 ArgoCD。此範例將改用 port-forward。只對連接埠轉送使用額外的終端機。

    1. 在第二個終端機中,執行下列指令。

      kubectl port-forward service/argocd-server -n argocd 63265:80

      注意:請勿關閉此終端機,請切換至先前的終端機,因為這是用來讓 ArgoCD 保持在最新狀態。

    2. 使用下列命令取得 ArgoCD 管理員密碼。

      kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
    3. 使用下列指令登入 (使用者為管理,密碼為上一個指令中的密碼)。

      argocd login 127.0.0.1:63265
  2. 從下列網址下載並編輯名為 add_cluster.yaml 的檔案:add_cluster.yaml

    注意:此範例使用不安全的 TLS,可以加以變更。

    • cluster_name將出現在 ArgoCD 叢集清單中的叢集名稱。
    • cluster_api_endpoint要新增至 ArgoCD 叢集清單的叢集端點。
    • cluster_ocid要新增至 ArgoCD 叢集清單之叢集的 OCID。
    • region叢集所在的區域。
  3. 使用下列命令,套用檔案以在 ArgoCD 叢集清單中新增叢集。

    kubectl apply -f add_cluster.yaml
  4. 檢查叢集是否已使用下列命令新增至 ArgoCD 叢集清單。

    argocd cluster list

工作 4:透過將應用程式從 ArgoCD 部署到叢集進行測試

  1. 請從此處下載並編輯名為 deploy_example.yaml 的檔案:deploy_example.yaml

    • cluster_name您要部署應用程式的叢集名稱。
  2. 使用下列命令套用檔案,將簡單 App 部署至目標叢集。

    kubectl apply -f deploy-example.yaml
  3. 檢查是否使用下列命令順利部署應用程式。

    argocd app list
    argocd app sync guestbook

確認

其他學習資源

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

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