美文网首页
ArgoCD 快速入门操作指南

ArgoCD 快速入门操作指南

作者: Xiao_Yang | 来源:发表于2022-07-18 18:43 被阅读0次

一、安装

1.1 YAML 方式安装

kubectl create namespace argocd

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

k8s集群外可访问管理UI配置

kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'

获取admin login登录密码

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

1.2 安装后检测

[argocd /]# kubectl -n argocd get all
NAME                                                    READY   STATUS    RESTARTS   AGE
pod/argocd-application-controller-0                     1/1     Running   0          27m
pod/argocd-applicationset-controller-58f69d4b8f-5hvlv   1/1     Running   0          27m
pod/argocd-dex-server-ff489bd4-c8kdg                    1/1     Running   0          27m
pod/argocd-notifications-controller-567f4c469-vtn8h     1/1     Running   0          27m
pod/argocd-redis-55d64cd8bf-2jczx                       1/1     Running   0          27m
pod/argocd-repo-server-b4b47b4f4-2j9k4                  1/1     Running   0          27m
pod/argocd-server-7c8685f8b-mp79x                       1/1     Running   0          27m

NAME                                              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/argocd-applicationset-controller          ClusterIP   10.107.131.236   <none>        7000/TCP,8080/TCP            27m
service/argocd-dex-server                         ClusterIP   10.102.78.221    <none>        5556/TCP,5557/TCP,5558/TCP   27m
service/argocd-metrics                            ClusterIP   10.99.134.239    <none>        8082/TCP                     27m
service/argocd-notifications-controller-metrics   ClusterIP   10.109.126.149   <none>        9001/TCP                     27m
service/argocd-redis                              ClusterIP   10.101.2.199     <none>        6379/TCP                     27m
service/argocd-repo-server                        ClusterIP   10.98.245.116    <none>        8081/TCP,8084/TCP            27m
service/argocd-server                             LoadBalancer    10.106.142.115   <none>        80:31523/TCP,443:32281/TCP   27m
service/argocd-server-metrics                     ClusterIP   10.105.209.242   <none>        8083/TCP                     27m

NAME                                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/argocd-applicationset-controller   1/1     1            1           27m
deployment.apps/argocd-dex-server                  1/1     1            1           27m
deployment.apps/argocd-notifications-controller    1/1     1            1           27m
deployment.apps/argocd-redis                       1/1     1            1           27m
deployment.apps/argocd-repo-server                 1/1     1            1           27m
deployment.apps/argocd-server                      1/1     1            1           27m

NAME                                                          DESIRED   CURRENT   READY   AGE
replicaset.apps/argocd-applicationset-controller-58f69d4b8f   1         1         1       27m
replicaset.apps/argocd-dex-server-ff489bd4                    1         1         1       27m
replicaset.apps/argocd-notifications-controller-567f4c469     1         1         1       27m
replicaset.apps/argocd-redis-55d64cd8bf                       1         1         1       27m
replicaset.apps/argocd-repo-server-b4b47b4f4                  1         1         1       27m
replicaset.apps/argocd-server-7c8685f8b                       1         1         1       27m

NAME                                             READY   AGE
statefulset.apps/argocd-application-controller   1/1     27m

二、添加应用

2.1 添加基础实施配置库

如果你的配置库使用的公开的仓库(无需认证)则可跳过此步。本实例使用的是gitlab私有库,使用Kustomize来管理K8s应用资源Yaml配置。

image-20220719181549353.png

仓库类型/项目名称/仓库地址/认证用户与密码或证书

2.2 新增应用

image-20220719182145302.png

应用名称/项目名称/同步策略/源配置(配置仓库)/目标设置(K8s集群)

注:sync Policy / sync Options 详细同步设置可参考后文说明

三、同步配置说明

3.1 自动同步策略

  • 自动清理(当自动同步机制检查到Git内已无此资源定义时是否自动删除此资源,安全考虑默认是不删除资源策略)
spec:
  syncPolicy:
    automated:
      prune: true
  • 自动自愈(将 git 配置库与集群资源保持始终一致性)
spec:
  syncPolicy:
    automated:
      selfHeal: true

[ 应用自愈测试实验 ]

1)开启应用的同步策略

image-20220719150858681.png

2)在集群内手动执行 scale

kubectl scale deployment demo-deployment --replicas=1

3)查看deployment状态

[argocd /]# kubectl get deployments.apps  -w
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
demo-deployment          3/3     3            3           34m    # 初始状态 replic=3

demo-deployment          3/1     3            3           34m
demo-deployment          3/1     3            3           34m
demo-deployment          1/1     1            1           34m    # 执行scale replic=1 
demo-deployment          1/3     1            1           34m
demo-deployment          1/3     1            1           34m
demo-deployment          1/3     1            1           34m
demo-deployment          1/3     3            1           34m    # 自愈恢复 replic=3
demo-deployment          2/3     3            2           35m    
demo-deployment          3/3     3            3           35m

3.2 同步选项设置

  • AUTO-CREATE NAMESPACE -- 自动创建项目 (当NameSpace不存在自动创建)

  • SKIP SCHEMA VALIDATION -- 跳过schema规范效验

  • PRUNE LAST -- 最后清理 (所有资源同步完成后进行清理操作)

  • APPLY OUT OF SYNC ONLY -- 仅应用于OutOfSync状态资源对象(针对包含非常多对象资源的应用,可减少同步资源压力)

  • RESPECT IGNORE DIFFERENCES -- 忽略指定配置项的差异(可基于配置来忽略特定的差异项,比如复本数配置忽略)

  • PRUNE PROPAGATION POLICY -- 依赖清理策略(相关联对象删除)策略Foreground/Backround/Orphaned

~~~ FINISH~~~

相关文章

网友评论

      本文标题:ArgoCD 快速入门操作指南

      本文链接:https://www.haomeiwen.com/subject/trdsirtx.html