ArgoCD快速入门
996 字
5 分钟
ArgoCD快速入门
1 部署 ArgoCD
官方提供四种部署方式,分别是:
无高可用 集群权限 > 指定命名空间权限 默认只有 argocd 命名空间权限,增加别的命名空间权限参考:Applications in any namespace - Argo CD - Declarative GitOps CD for Kubernetes > 需要单独安装 crds
此文档后面补充了下,所以会出现图片对不上的情况,但不影响观看
1.1 argo 配置
# 这里用的高可用配置wget https://github.com/argoproj/argo-cd/blob/master/manifests/install.yamlvim install.yaml
# 添加gitlab解析,避免访问不了gitlabspec:...... spec: hostAliases: - ip: 10.99.205.6 hostnames: - gitlab.xpaas.ccops.com# 配置持久化, argocd-redis-ha-server配置文件里删除字段 - emptyDir: {} name: data# 删除,不然出现 failed exit status 2 参考: https://github.com/argoproj/argo-cd/issues/9809 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true seccompProfile: type: RuntimeDefault# 添加持久化 volumeClaimTemplates: - metadata: name: data labels: app: "redis" spec: accessModes: - "ReadWriteOnce" resources: requests: storage: "8Gi" storageClassName: "rbd-csi"# 添加 http访问,默认强制httpsapiVersion: v1data: redis.server: argocd-redis-ha-haproxy:6379 server.insecure: "true" #要添加的kind: ConfigMapmetadata: labels: app.kubernetes.io/name: argocd-cmd-params-cm app.kubernetes.io/part-of: argocd name: argocd-cmd-params-cm1.2 查看pod是否正常
kubectl get pod -n argocdNAME READY STATUS RESTARTS AGEargocd-application-controller-0 1/1 Running 0 48margocd-application-controller-1 1/1 Running 0 48margocd-application-controller-2 1/1 Running 0 49margocd-applicationset-controller-84c8548bf6-2p244 1/1 Running 0 33margocd-applicationset-controller-84c8548bf6-9gq5h 1/1 Running 0 33margocd-applicationset-controller-84c8548bf6-bvlkg 1/1 Running 0 33margocd-dex-server-65cb45687-5bxdb 1/1 Running 0 49margocd-dex-server-65cb45687-hzvlw 1/1 Running 0 49margocd-dex-server-65cb45687-kl24l 1/1 Running 0 49margocd-notifications-controller-7854c8cd9b-cjzbl 1/1 Running 0 33margocd-notifications-controller-7854c8cd9b-csqbb 1/1 Running 0 33margocd-notifications-controller-7854c8cd9b-xs874 1/1 Running 0 33margocd-redis-ha-haproxy-56546c5467-9mjrx 1/1 Running 0 48margocd-redis-ha-haproxy-56546c5467-bgmld 1/1 Running 0 49margocd-redis-ha-haproxy-56546c5467-ttccs 1/1 Running 0 48margocd-redis-ha-server-0 3/3 Running 0 44margocd-redis-ha-server-1 3/3 Running 0 46margocd-redis-ha-server-2 3/3 Running 0 48margocd-repo-server-5646948fd4-lvhl2 1/1 Running 0 50margocd-repo-server-5646948fd4-pklbb 1/1 Running 0 50margocd-repo-server-5646948fd4-xdt8h 1/1 Running 0 50margocd-server-7b7744ff5d-dtmn4 1/1 Running 0 48margocd-server-7b7744ff5d-t7t4q 1/1 Running 0 49m
# 查看密码kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d2 argocd-server 配置与使用
2.1 配置项目
命名空间可以使用简单对正则,比如
!xxx,表示不能部署到xxx命名空间

2.2 添加 git 仓库

没问题会显示 Successful

2.3 添加集群
2.3.1 查看添加的集群信息
集群添加 kubeconfig 参考[[Kubernetes自定义权限]],如果不想自定义权限也可以拷贝
/root/.kube/config比较重要的是 name
# 获取集群名称kubectl config get-contextsCURRENT NAME CLUSTER AUTHINFO NAMESPACE* kubernetes kubernetes admin2.3.2 argocd 添加集群
# 拷贝刚才对kubeconfigkubectl cp tstconfig -n argocd $(kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o jsonpath='{.items[0].metadata.name}'):/home/argocd
# 查看密码kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
# 进入argo容器添加集群# 进入容器kubectl exec -it -n argocd $(kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o jsonpath='{.items[0].metadata.name}') bash# 登陆argocdargocd login 127.0.0.1:8080 --username admin --password qweasd123 (查看密码结果)WARNING: server certificate had error: x509: cannot validate certificate for 127.0.0.1 because it doesn't contain any IP SANs. Proceed insecurely (y/n)? y'admin:login' logged in successfullyContext '127.0.0.1:8080' updated
# 添加集群argocd cluster add kubernetes --kubeconfig tstconfig --name test-env
# 查看集群信息# 没有配置app.所以集群状态Unknownargocd cluster listSERVER NAME VERSION STATUS MESSAGE PROJECThttps://kubernetes.default.svc ceph-tst-cluster 1.22 Successfulhttps://10.1.1.1:443 test-env Unknown Cluster has no applications and is not being monitored.2.3.3 查看集群

2.4 添加应用

2.5 配置权限
这里创建了俩账户,一个管理员权限,一个只读应用权限
kubectl edit configmap argocd-cm -n argocd
data: accounts.argocd: login accounts.argocd.enabled: "true" accounts.argocd-admin: login accounts.argocd-admin.enabled: "true" admin.enabled: "true"kubectl edit configmap argocd-rbac-cm -n argocd
data: # 定义默认用户是只读用户角色 policy.default: role:readonly # 定义管理员角色 policy.csv: | g, argocd-admin, role:admin2.5.1 登录 argo 服务
argocd login 127.0.0.1:8080 --username admin --password qweasd123 (查看密码结果)# 查看用户argocd account listNAME ENABLED CAPABILITIESadmin true loginargocd true loginargocd-admin true login2.5.2 修改密码
argocd account update-password --account admin --new-password qweasd
回车后输入上面步骤查到的root密码
2.5.3 测试
普通账户同步会报错

管理员账户不会

2.6 备份与恢复
kubectl exec -it -n argocd $(kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o jsonpath='{.items[0].metadata.name}') bash# 备份argocd admin export > backup.yaml# 恢复argocd admin import - < backup.yaml详细文档参考
3 web 使用
3.1 这里可以选择不同的展示

3.2 查看服务的所有日志,不同的实例会有不同的颜色标记


3.3 看某个实例的日志


4 监控
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章 智能推荐
1
ArgoCD+Jenkins持续集成
💨DevOps Argo 与 Jenkins 结合 CI/CD 快速入门
2
OpenClaw安装
💻Linux 龙虾安装笔记
3
Jenkins-pipeline进阶使用
💨DevOps jenkins文章分为三部分,此文章是第三部分
4
Jenkins pipeline使用
💨DevOps jenkins文章分为三部分,此文章是第二部分
5
Jenkins安装
💨DevOps jenkins文章分为三部分,此文章是第一部分
随机文章 随机推荐