附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 其使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室時,請將這些值替代為雲端環境特定的值。
使用工作負載身分管理 Argo CD 中的 Oracle Cloud Infrastructure Kubernetes Engine 叢集
簡介
Argo CD 是適用於 Kubernetes 的 GitOps 持續交付工具。撰寫此教學課程時,Argo CD 沒有產生 Oracle Cloud Infrastructure Kubernetes Engine (OKE) 存取權杖所需的 Oracle Cloud Infrastructure 命令行介面 (OCI CLI) 功能,因此需要自訂 Argo CD 映像檔。
備註:用於自訂影像的基本 Argo CD 影像為
quay.io/argoproj/argocd:v2.14.9
。
目標
-
建立包含 OCI CLI 的自訂 Argo CD 映像檔。
-
使用自訂影像在增強的 OKE 叢集上安裝 Argo CD。
-
使用
execProviderConfig
新增基本 OKE 叢集至 Argo CD 叢集清單。 -
從 Argo CD 在基本叢集部署應用程式。
必要條件
-
安裝 Podman 或 Docker 和
argocd
CLI。 -
安裝 Argo CD 的 OKE 增強型叢集。
注意:您只能在增強型叢集使用工作負載識別。
-
由 Argo CD 管理的 OKE 叢集。
-
您 OCI 使用者的認證權杖 (從 OCI 主控台,前往您的使用者設定檔並按一下認證權杖 ),最多可能需要 5 分鐘的時間才能啟用。
-
您的 OCI 使用者在 OCI 容器登錄中建立儲存區域的權限。
Allow group <your_group> to manage repos in tenancy
-
Argo CD 管理 OKE 叢集的權限。
allow any-user to manage all-resources in compartment <compartment_ocid> where all { request.principal.type='workload', request.principal.cluster_id = '<cluster_ocid>', request.principal.namespace = 'argocd', request.principal.service_account = 'argocd-application-controller' }
注意:此原則太開放,但您可以視需要將其設為限制。
- 原則中的取代項目:
compartment_ocid
:這應該是區間 OCID,其中包含您要使用 Argo CD 管理的叢集。cluster_ocid
:這應該是您要管理其他叢集的來源叢集 OCID。有 Argo CD 的電腦。request.principal.namespace
:這是部署 Argo CD 的命名空間。request.principal.service_account
:這是 Argo CD 應用程式控制器的服務帳號 (叢集驗證的收費帳戶)。
- 原則中的取代項目:
工作 1:將 Argo CD 自訂映像檔推送至 OCI 容器登錄
注意:您可以使用 Podman 或 docker。
-
請從此處下載名為
Dockerfile
的檔案:Dockerfile
。 -
執行下列命令。
podman build --platform linux/amd64 -t argocd-oci:01 .
注意:命令結尾的 dot (.) 是用於 Dockerfile 所在的目前目錄。
-
執行下列命令。
podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
-
執行下列命令。
podman login ocir.**your_region**.oci.oraclecloud.com
- 使用者為:
- 如果使用識別網域:
your_tenancy_namespace
/OracleIdentityCloudService
/your_email
。 - 如果使用預設網域:
your_tenancy_namespace
/your_email
。
- 如果使用識別網域:
- 密碼是您的 OCI 認證權杖。
- 使用者為:
-
執行下列命令。
podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
作業 2:使用自訂影像安裝 Argo CD
注意:僅更新
argocd-application-controller
的影像,因為這負責叢集驗證。
-
從此處下載並安裝 Argo CD 清單: argo-CD/manifests/install.yaml 。
-
編輯檔案以變更
argocd-application-controller
的影像。- 從圖片更改:
quay.io/argoproj/argocd:latest
- 圖像:
ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
- 從圖片更改:
-
執行下列命令以建立
argocd
命名空間。kubectl create namespace argocd
-
執行下列命令以部署
argocd
。kubectl apply -f install.yaml -n argocd
作業 3:新增叢集至 Argo CD 叢集清單
-
開始 Argo CD。
注意:您可以使用 OCI 負載平衡器來顯示 Argo CD。此範例將改用
port-forward
。因此,您需要額外的終端機,才能進行連接埠轉送。-
在第二個終端機中,執行下列指令。
kubectl port-forward service/argocd-server -n argocd 63265:80
備註:請勿關閉此終端機,請切換至先前的終端機,因為這會用來開啟 Argo CD。
-
使用下列指令取得 Argo CD 管理員密碼。
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
-
使用下列指令登入 (使用者為管理,密碼為上一個指令中的密碼)。
argocd login 127.0.0.1:63265
-
-
從下列網址下載並編輯名為
add_cluster.yaml
的檔案:add_cluster.yaml :注意:此範例使用不安全的 TLS,可以加以變更。
cluster_name
:將出現在 Argo CD 叢集清單中的叢集名稱。cluster_api_endpoint
:要新增至 Argo CD 叢集清單的叢集端點。cluster_ocid
:要新增至 Argo CD 叢集清單之叢集的 OCID。region
:叢集所在的區域。
-
使用下列指令套用該檔案,以在 Argo CD 叢集清單中加入叢集。
kubectl apply -f add_cluster.yaml
-
檢查叢集是否已使用下列命令新增至 Argo CD 叢集清單。
argocd cluster list
工作 4:透過將應用程式從 Argo CD 部署到叢集進行測試
-
請從此處下載並編輯名為
deploy_example.yaml
的檔案:deploy_example.yaml 。cluster_name
:您要部署應用程式的叢集名稱。
-
使用下列命令套用檔案,將簡單 App 部署至目標叢集。
kubectl apply -f deploy-example.yaml
-
檢查是否使用下列命令順利部署應用程式。
argocd app list argocd app sync guestbook
確認
- 作者 - Gabriel Feodorov (資深雲端工程師)
其他學習資源
在 docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Manage Oracle Cloud Infrastructure Kubernetes Engine Clusters in Argo CD using Workload Identity
G36157-01
Copyright ©2025, Oracle and/or its affiliates.