0


GitOps实践之Argo CD (2)

argocd

【-1】argocd可以解决什么问题?

  • helm 部署是手动的?依赖流水线。而有时候仅仅更新一个小东西,流水线跑好久,CD真的不应该和CI耦合。
  • 不同环境的helm配置不同,手动修改问题多,可以用git管理起来,例如分不同环境用目录区分。argocd创建应用可以不通环境部署到不同集群,非常灵活。
/
|-- k8s/
||-- production/
|||-- deployment.yaml
|||-- service.yaml
||-- staging/
||-- deployment.yaml
||-- service.yaml
`-- README.md
  • 不要手动修改资源, 让k8s资源修改有迹可循, git是单一真实来源可以提供标准化操作。helm chart 如何保证和线上环境一致?
  • helm 安装成功了吗?kubectl 命令查看? 进到pod里面看commitid?这个argocd可以一站式解决。
  • 可以管理helm、manifest…
  • 如何删除某个ns下某个应用所以有的负载,包括存储。
  • 唯一可信源

【0】 ArgoCD 在GitOps中的位置

在这里插入图片描述

argocd 的工作流程

  • 开发者:
  1. 开发者commit代码,并推送到远程仓库
  • github Action: 1. 构建示例应用的镜像。2. 将示例应用的镜像推送到 Docker Registry 镜像仓库。3. 更新代码仓库中 Helm Chart values.yaml 文件的镜像版本。(目前这一步很多都是手动更新镜像版本)
  • argocd : 1. 通过定期 Poll 的方式持续拉取 Git 仓库,并判断是否有新的 commit。2. 从 Git 仓库获取 Kubernetes 对象,与集群对象进行实时比较,自动更新集群内有差异的资源。

【1】安装ArgoCD 和 ArgoCD Cli

安装 ArgoCD 
kubectl create namespace argocd
kubectl apply -n argocd -f https://ghproxy.com/https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl wait--for=condition=Ready pods --all-n argocd --timeout 300s

安装 ArgoCD CLI
https://github.com/argoproj/argo-cd/releases

curl-sSL-o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
install-m555 argocd-linux-amd64 /usr/local/bin/argocd

获取argocd 的默认密码
argocd admin initial-password -n argocd

修改密码,
argocd account update-password
This password must be only used for first time login. We strongly recommend you update the password using `argocd account update-password`.
标签: 云原生 CICD k8s

本文转载自: https://blog.csdn.net/MyySophia/article/details/136607929
版权归原作者 MyySophia 所有, 如有侵权,请联系我们删除。

“GitOps实践之Argo CD (2)”的评论:

还没有评论