【学习笔记】ArgoCD GitOps 实践二:集群与 Git 仓库管理

管理方法

推荐每个集群使用一个 Git 仓库来存储该集群所要部署的所有应用的 YAML 与配置。

如果多个集群要部署相同或相似的应用,可抽取成单独的 Git 仓库,作为 submodule 引用进来。

这样做的好处是既可以减少冗余配置,又可以控制爆炸半径。submodule 可能被多个 Git 仓库共享(即多个集群部署相同应用), 但如果不执行git submodule update --remote的话,引用的 commit id 是不会变的, 所以也不会因为上游应用更新而使所有使用了该应用的集群一下子全部都更新。

添加集群

Read more...

【学习笔记】ArgoCD GitOps 实践一:ArgoCD 的安装与配置

使用 kustomize 安装 ArgoCD

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

准备一个目录:

1
2
mkdir argocd
cd argocd

下载 argocd 部署 YAML:

1
wget -O install.yaml https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

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

创建kustomization.yaml:

1
2
3
4
5
6
7
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: argocd
patches:
  - path: argocd-cm-patch.yaml
resources:
- install.yaml
Read more...