前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ArgoCD GitOps 实践(一): ArgoCD 的安装与配置

ArgoCD GitOps 实践(一): ArgoCD 的安装与配置

原创
作者头像
imroc
发布2024-06-03 14:14:26
1810
发布2024-06-03 14:14:26
举报

使用 kustomize 安装 ArgoCD

官方提供了安装 ArgoCD 的 YAML,可以使用 kubectl 一键安装,但我建议使用 kustomize 来安装,因为这样一来可以将自定义配置声明并持久化到文件中,避免直接集群中改配置,也利于后续 ArgoCD 的自举,即用 ArgoCD 自身来用 GitOps 管理自身。

准备一个目录:

下载 argocd 部署 YAML:

后续升级 argocd 时,可以用上面相同命令更新下 YAML 文件。

创建 kustomization.yaml:

  • resources 里也可以直接引用 YAML 的 URL 下载地址,但不推荐,因为将 YAML 下到本地一方面可以避免因网络环境问题导致在某些环境部署失败,另一方面也方便后续升级时对比前后差异。
  • patches 里引入自定义配置,对官方提供的 YAML 进行 patch,这里主要是对 ArgoCD 的 ConfigMap 进行 patch。

创建 argocd-cm-patch:

  • kustomize 默认不支持引用本目录之外的资源,如果引用会报错,可通过 kustomize.buildOptions 让 ArgoCD 给 kustomize 传入 --load-restrictor=LoadRestrictionsNone 这个参数来允许这种引用。
  • argocd 默认会给管理的应用打上 app.kubernetes.io/instance 这个常见注解,而其它很多开源项目部署的应用也使用了这个注解,会导致冲突,通过 application.instanceLabelKey 配置项改成其它的注解以避免冲突。

安装:

安装 argocd 命令行工具

如果有 homebrew,可以一键安装:

也可以从 release 页面下载安装二进制: https://github.com/argoproj/argo-cd/releases

暴露 ArgoCD API Server

argocd 命令行工具是与 argocd-server 通信来实现交互的,所以需要让 argocd 命令行工具访问到 argocd-server 暴露的端口,有以下几种方式。

使用 LoadBalancer Service 暴露

如果你的集群环境有 LoadBalancer Service 的实现,可以直接将 argocd-server 的 service 类型改成 LoadBalancer:

不过还是不建议直接用 kubectl 改,遵循 GitOps 理念,任何改动都应变成声明式的文件,如果用 kustomize 部署,可以像下面一样加下 patch:

使用 Ingress 或 Gateway API 暴露

如果你的集群有 Ingress 或 Gateway API 的实现,可以定义 Ingress 或 Gateway API 的资源来暴露 argocd-server

使用 kubectl port-forward

通常我们并不想将 argocd-server 暴露给其它人用,可以使用 kubectl port-forwardargocd-server 的端口转发到本机端口:

此时 argocd-server 的访问地址是 127.0.0.1:8080

登录 ArgoCD

ArgoCD 提供了命令行和网页两种方式来管理,且两种方式的访问入口地址是一致的,都可以实现相同的管理功能,不过我更推荐使用命令行的方式。

通过命令行工具登录

argocd 安装时会自动生成 admin 的初始密码,确保 kubeconfig 的当前 context 指向的是 argocd 所在集群,使用以下命令获取初始密码:

然后使用初始密码登录:

注意修改 argocd-server 地址,这里假设用 kubectl port-forward 暴露的 argocd-server。

登录后建议修改下密码:

然后你就可以使用 argocd 命令行工具来管理 argocd 了,试试有哪些功能:

通过网页登录

与命令行登录类似,打开浏览器,输入 argocd-server 的访问地址(与命令行登录地址一致),然后输入用户名密码即可进入 argocd 管理页面。

参考资料

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 kustomize 安装 ArgoCD
  • 安装 argocd 命令行工具
  • 暴露 ArgoCD API Server
    • 使用 LoadBalancer Service 暴露
      • 使用 Ingress 或 Gateway API 暴露
        • 使用 kubectl port-forward
        • 登录 ArgoCD
          • 通过命令行工具登录
            • 通过网页登录
            • 参考资料
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档