注意:

使用工作负载身份管理 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

目标

先决条件

任务 1:将 Argo CD 定制映像推送到 OCI Container Registry

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

  1. 从以下位置下载名为 Dockerfile 的文件:Dockerfile

  2. 运行以下命令。

    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:使用定制映像安装 Argo CD

注:仅更新 argocd-application-controller 的映像,因为这负责群集验证。

  1. 从此处下载并安装 Argo CD 清单: argo-CD/manifests/install.yaml

  2. 编辑文件以更改 argocd-application-controller 的图像。

    • 更改自图像:quay.io/argoproj/argocd:latest
    • 图片来源: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:将集群添加到 Argo CD 集群列表

  1. 启动 Argo CD。

    注:您可以使用 OCI 负载平衡器公开 Argo CD。对于此示例,将改用 port-forward。为此,您需要一个仅用于端口转发的附加终端。

    1. 在第二个终端中,运行以下命令。

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

      注:请不要关闭此终端,请切换到上一个终端,因为此终端用于保持 Argo CD 的正常运行。

    2. 使用以下命令获取 Argo CD 管理员密码。

      kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
      
    3. 使用以下命令登录(用户是 admin,密码是上一个命令中的密码)。

      argocd login 127.0.0.1:63265
      
  2. 从以下位置下载并编辑名为 add_cluster.yaml 的文件:add_cluster.yaml

    注:此示例使用不安全的 TLS,可以对其进行更改。

    • cluster_name将显示在 Argo CD 群集列表中的群集的名称。
    • cluster_api_endpoint要添加到 Argo CD 集群列表的集群的端点。
    • cluster_ocid要添加到 Argo CD 集群列表的集群的 OCID。
    • region群集所在的区域。
  3. 使用以下命令应用该文件以将群集添加到 Argo CD 群集列表中。

    kubectl apply -f add_cluster.yaml
    
  4. 使用以下命令检查集群是否已添加到 Argo CD 集群列表中。

    argocd cluster list
    

任务 4:通过将应用程序从 Argo CD 部署到集群进行测试

  1. 从以下位置下载并编辑名为 deploy_example.yaml 的文件:deploy_example.yaml

    • cluster_name要部署应用程序的集群的名称。
  2. 使用以下命令应用该文件以将简单应用程序部署到目标集群。

    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 帮助中心