详情页标题前

阿里云容器服务ACKGitOps使用快速入门-云淘科技

详情页1

您可以在ACK One舰队Fleet实例中开启GitOps,通过Git repository对应用编排、Helm编排等实现版本管理,同时支持应用一次编排的多集群持续发布。它完全兼容社区ArgoCD的使用方式,并提供了高可用的控制面。本文介绍如何在ACK One舰队的Fleet实例中开启GitOps实现多集群应用发布的流程,帮助您快速上手GitOps。

前提条件

  • 已开启舰队管理功能。具体操作,请参见开启舰队管理功能。

  • 舰队的Fleet实例已添加多个关联集群。具体操作,请参见添加关联集群。

  • 已从ACK One控制台获取Fleet实例的KubeConfig,并通过kubectl连接至Fleet实例。

  • 已安装最新版本阿里云CLI并配置阿里云CLI。

开通地域

已开通ACK One舰队管理功能的地域均可使用。更多信息,请参见使用限制。

步骤一:在ACK One Fleet实例中开启GitOps

重要

开启GitOps后,ACK One会默认创建以下资源。关于资源计费信息,请参见舰队管理云产品资源计费。

  • 一个SLB,通过此SLB暴漏ArgoCD的API和UI访问端点。

  • 一个按量计费的2核 4 GB的ECI实例,用于运行ArgoCD服务。

通过CLI方式开启

  1. 确保阿里云CLI为最新版本后,执行以下命令,开启GitOps。

    替换以下为您的Fleet实例ID。

    aliyun adcp UpdateHubClusterFeature --ClusterId  --ArgoCDEnabled true
  2. 可选:如果您使用的是RAM用户的AK,则需要为RAM用户授予以下权限。

    具体操作,请参见为RAM用户授权。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "adcp:UpdateHubClusterFeature"
                ],
                "Resource": "*"
            }
        ]
    }

通过控制台开启

  1. 登录ACK One控制台,在左侧导航栏选择舰队 > GitOps

  2. 在GitOps页面,单击开启GitOps

    GitOps开启后,页面上会显示GitOps控制台,您可以单击GitOps控制台进行访问。

步骤二:通过ArgoCD CLI方式访问ArgoCD

  1. 访问ArgoCD,下载安装最新的ArgoCD CLI。

  2. 在ACK One Fleet实例中执行以下命令,获取ArgoCD系统的初始密码。

    kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
  3. 在ACK One Fleet实例中执行以下命令,通过port-forward的方式登录ArgoCD,默认用户名为admin

    export ARGOCD_OPTS='--port-forward-namespace argocd --port-forward'
    
    argocd login
    Username: admin
    Password:

    预期输出:

    'admin:login' logged in successfully
    Context 'port-forward' updated
  4. 在ACK One Fleet实例中执行以下命令,更新默认用户admin的密码。

    argocd account update-password
    *** Enter password of currently logged in user (admin):
    *** Enter new password for user admin:
    *** Confirm new password for user admin:

    预期输出:

    Password updated
    Context 'port-forward' updated

步骤三:创建和发布多集群应用

方式一:通过ArgoCD CLI方式创建和发布多集群应用

  1. 执行以下命令,添加Git Repo。

    argocd repo add https://github.com/AliyunContainerService/gitops-demo.git --name echo-server

    预期输出:

    Repository 'https://github.com/AliyunContainerService/gitops-demo.git' added
  2. 执行以下命令,查看已添加的Git Repo列表。

    argocd repo list

    预期输出:

    TYPE  NAME  REPO                                                       INSECURE  OCI    LFS    CREDS  STATUS      MESSAGE  PROJECT
    git         https://github.com/AliyunContainerService/gitops-demo.git  false     false  false  false  Successful           default
  3. 执行以下命令,查看Clusters列表。

    argocd cluster list

    预期输出:

    SERVER                          NAME                                        VERSION  STATUS      MESSAGE                                                  PROJECT
    https://47.97.XX.XX:6443      c83f3cbc90a****-temp02   1.22+    Successful
    https://kubernetes.default.svc  in-cluster                                           Unknown     Cluster has no applications and is not being monitored.

    在ArgoCD Clusters列表中,会看到ACK One Fleet实例关联的所有关联集群。

  4. 创建应用并发布应用到目标集群。

    • 方式一:使用Application方式

      1. 执行以下命令,创建应用。

        argocd app create echo-server --repo https://github.com/AliyunContainerService/gitops-demo.git --path  manifests/helm --dest-namespace echo-server-cli --dest-server https://47.97.XX.XX:6443

        预期输出:

        application 'echo-server' created
      2. 执行以下命令,同步应用到目标集群。

        argocd app sync echo-server

        预期输出:

        TIMESTAMP                  GROUP        KIND   NAMESPACE                       NAME    STATUS    HEALTH        HOOK  MESSAGE
        2022-09-22T14:32:45+08:00            Service  echo-server-cli           echo-server  OutOfSync  Missing
        2022-09-22T14:32:45+08:00   apps  Deployment  echo-server-cli           echo-server  OutOfSync  Missing
        2022-09-22T14:32:45+08:00            Service  echo-server-cli           echo-server    Synced  Progressing
        2022-09-22T14:32:45+08:00            Service  echo-server-cli           echo-server    Synced   Progressing              service/echo-server created
        2022-09-22T14:32:45+08:00   apps  Deployment  echo-server-cli           echo-server  OutOfSync  Missing                  deployment.apps/echo-server created
        2022-09-22T14:32:45+08:00   apps  Deployment  echo-server-cli           echo-server    Synced  Progressing              deployment.apps/echo-server created
        
        Name:               echo-server
        Project:            default
        Server:             https://47.97.XX.XX:6443
        Namespace:          echo-server-cli
        URL:                https://127.0.0.1:52742/applications/echo-server
        Repo:               https://github.com/AliyunContainerService/gitops-demo.git
        Target:
        Path:               manifests/helm
        SyncWindow:         Sync Allowed
        Sync Policy:        
        Sync Status:        Synced to  (e5c2618)
        Health Status:      Progressing
        
        Operation:          Sync
        Sync Revision:      e5c261880a4072cdbfa5173add2be426f7f3****
        Phase:              Succeeded
        Start:              2022-09-22 14:32:44 +0800 CST
        Finished:           2022-09-22 14:32:45 +0800 CST
        Duration:           1s
        Message:            successfully synced (all tasks run)
        
        GROUP  KIND        NAMESPACE        NAME         STATUS  HEALTH       HOOK  MESSAGE
               Service     echo-server-cli  echo-server  Synced  Progressing        service/echo-server created
        apps   Deployment  echo-server-cli  echo-server  Synced  Progressing        deployment.apps/echo-server created
      3. 执行以下命令,查看应用列表。

        argocd app list

        预期输出:

        NAME             CLUSTER                     NAMESPACE        PROJECT  STATUS  HEALTH   SYNCPOLICY  CONDITIONS  REPO                                                     PATH              TARGET
        echo-server      https://47.97.XX.XX:6443  echo-server-cli  default  Synced  Healthy              https://github.com/AliyunContainerService/gitops-demo.git  manifests/helm
    • 方式二:使用ApplicationSet方式

      1. 使用以下内容,创建applicationset.yaml。

        apiVersion: argoproj.io/v1alpha1
        kind: ApplicationSet
        metadata:
          name: echo-server
        spec:
          generators:
          - list:
              elements:
              - cluster: production
                url: https://47.97.xx.xx:6443
              - cluster: staging
                url: https://47.97.xx.xx:6443
          template:
            metadata:
              name: '{{cluster}}-echo-server'
            spec:
              project: default
              source:
                repoURL: https://github.com/AliyunContainerService/gitops-demo.git
                targetRevision: main
                path: manifests/directory/{{cluster}}
              destination:
                server: '{{url}}'
                namespace: multi-echo-server
      2. 执行以下命令,部署ApplicationSet。

        kubectl -n argocd apply -f applicationset.yaml
      3. 执行以下命令,查看ApplicationSet状态。

        kubectl -n argocd get applicationset

        预期输出:

        NAME        AGE
        echo-server   40s
      4. 执行以下命令,查看应用列表。

        argocd app list

        预期输出:

        NAME                    CLUSTER                   NAMESPACE          PROJECT  STATUS     HEALTH   SYNCPOLICY  CONDITIONS  REPO                                                        PATH                     TARGET
        production-echo-server  https://47.97.xx.xx:6443  multi-echo-server  default  OutOfSync  Missing              https://github.com/AliyunContainerService/gitops-demo.git  manifests/directory/ack    main
        staging-echo-server     https://47.97.xx.xx:6443  multi-echo-server  default  OutOfSync  Missing              https://github.com/AliyunContainerService/gitops-demo.git  manifests/directory/idc    main
      5. 执行以下命令,同步应用到目标集群。

        argocd app sync production-echo-server staging-echo-server

方式二:通过ArgoCD UI页面创建和发布多集群应用

  1. 执行以下命令,在本地使用ACK One Fleet实例的KubeConfig进行port-forward代理,通过代理访问ArgoCD UI页面。

    kubectl port-forward -n argocd service/argocd-server 8080:https
  2. 在浏览器输入https://127.0.0.1:8080访问ArgoCD UI页面。

    阿里云容器服务ACKGitOps使用快速入门-云淘科技

    使用默认用户admin登录,可以查看应用信息。

  3. 添加Git Repo。

    1. 在ArgoCD的Settings > Repositories 页面中,单击+ CONNECT REPO USING HTTPS

    2. 在弹出面板中配置相应信息,然后单击CONNECT

      阿里云容器服务ACKGitOps使用快速入门-云淘科技

      添加成功后,该页面会显示Git的CONNECTION STATUSSuccessful阿里云容器服务ACKGitOps使用快速入门-云淘科技

  4. 创建应用并同步至集群。

    1. 在ArgoCD的Applications页面中,单击+ NEW APP,进行如下配置。

      阿里云容器服务ACKGitOps使用快速入门-云淘科技

      区域

      参数

      设置值

      GENERAL

      Application Name

      echo-server-app

      Project Name

      default

      SYNC POLICY

      在下拉列表中选择Manual,取值:

      • Manual:当Git端有变更时,需要用户手动执行同步动作将其部署至目标集群。

      • Automatic:ArgoCD Server每隔3mins自动检测Git端的变更并将其自动部署至目标集群。

      SOURCE

      Repository URL

      在下拉列表选择已有Git Repo,此处选择https://github.com/AliyunContainerService/gitops-demo.git

      Revision

      main

      Path

      manifests/helm

      DESTINATION

      Cluster Name

      在下拉列表中选择目标集群。

      Namespace

      echo-server

    2. 配置完成,单击页面上方的CREATE

      创建完成后,在ArgoCD的Applications页面,即可查看echo-server-app的应用状态。阿里云容器服务ACKGitOps使用快速入门-云淘科技

    3. 单击目标应用下方的SYNC,将应用同步部署至目标集群。

      同步完成后,echo-server-app应用的Status右侧出现HealthySynced,表示应用已同步。单击echo-server-app,即可查看该应用详情。阿里云容器服务ACKGitOps使用快速入门-云淘科技

步骤四:在ACK One Fleet实例中关闭GitOps

通过CLI方式关闭

确保阿里云CLI为最新版本后,执行以下命令,关闭GitOps。

aliyun adcp UpdateHubClusterFeature --ClusterId  --ArgoCDEnabled false    

通过控制台关闭

  1. 登录ACK One控制台,在左侧导航栏选择舰队 > GitOps

  2. 在GitOps页面右上角,单击关闭功能

说明

如需删除ACK One Fleet实例,请先关闭GitOps。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/170083.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 腾讯云CVM服务器快速配置 Linux 云服务器

    说明如果您是首次使用云服务器,建议您先选择轻量应用服务器(Lighthouse) 来作为云服务器使用的入门途径,详情请参见 快速配置轻量应用服务器 Linux 实例。轻量应用服务器专为云开发者及云计算入门者设计,您可前往 与云服务器 CVM 对比 了解云服务器与轻量应用服务器的区别。本文主要介绍如何从零开始,以最简单的方式搭建一个 Linux 云服务器。您可…

    2023年12月9日
  • 阿里云ECS云服务器Linux系统实例快速入门-云淘科技

    本入门教程通过ECS控制台,在Alibaba Cloud Linux 2.1903 LTS 64位系统的ECS上部署Apache服务,展示了如何快速使用云服务器ECS。 准备工作 创建账号,以及完善账号信息。 注册阿里云账号,并完成实名认证。具体操作,请参见阿里云账号注册流程。 本入门教程创建的是按量付费实例。更多信息,请参见如何充值?。 可选:阿里云提供一…

    2023年12月9日
  • 阿里云对象存储OSSEMR集群接入OSS-HDFS服务快速入门-云淘科技

    阿里云开源大数据开发平台E-MapReduce(简称EMR)特定版本集群默认集成OSS-HDFS服务。本文介绍如何通过EMR集群完成OSS-HDFS服务快速入门的常见操作。 前提条件 已创建EMR-3.42.0及以上版本或EMR-5.8.0及以上版本的集群。具体步骤,请参见创建集群。 已开通并授权访问OSS-HDFS服务。具体操作,请参见开通并授权访问OSS…

    阿里云对象存储 2023年12月10日
  • 阿里云日志服务SLS快速设置日志告警-云淘科技

    日志服务支持您为查询和分析结果设置告警监控规则,并在满足条件时触发告警。本文以网站访问日志为例,说明如何快速为日志设置告警。 前提条件 已在数据实验室中生成模拟的网站访问日志。具体操作,请参见使用数据实验室。 背景信息 日志服务数据实验室提供模拟的网站访问日志及相关仪表盘(网站审计中心、网站访问中心等),便于您熟悉查询、分析、告警等操作。本案例以监控网站审计…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS快速入门-云淘科技

    本文以采集分析ECS的Nginx访问日志为例,介绍开通日志服务、创建日志项目与Logstore、Logtail采集日志、查询与分析日志等步骤,帮助您快速上手使用日志服务。 前提条件 已有可用的ECS。更多信息,请参见云服务器ECS快速入门。 ECS服务器持续产生日志。 重要 Logtail只采集增量日志。如果下发Logtail配置后,日志文件无更新,则Log…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。