1:环境
| kubernetes | 1.23.3 |
|---|---|
| ArgoCD | 2.3.3 |
2:ArgoCD介绍
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Argo CD是一个基于Kubernetes的声明式的GitOps工具。 那么,什么是GitOps呢? GitOps是以Git为基础,使用CI/CD来更新运行在云原生环境的应用,它秉承了DevOps的核心理念--“构建它并交付它(you built it you ship it)”。
它的优势总结如下: 1:应用定义、配置和环境信息是声明式的,并且可以进行版本控制; 2:应用部署和生命周期管理是全自动化的,是可审计的,清晰易懂; 3:Argo CD是一个独立的部署工具,支持对多个环境、多个Kubernetes集群上的应用进行统一部署和管理
3:部署ArgoCD
# 安装很简单,不过在实际使用中需要对数据进行持久化。
1:创建一个命名空间存放argocd的Pod
[root@k8s-master ~]# kubectl create ns argocd
namespace/argocd created
2:通过官方命令部署(镜像在国外,需要梯子,或者加速也行)
[root@k8s-master ~]# kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
3:查看部署状态
[root@k8s-master ~]# kubectl get pod,svc -n argocd
NAME READY STATUS RESTARTS AGE
pod/argocd-application-controller-0 1/1 Running 0 60s
pod/argocd-applicationset-controller-79f97597cb-mwzld 1/1 Running 0 62s
pod/argocd-dex-server-6fd8b59f5b-zx76f 1/1 Running 0 62s
pod/argocd-notifications-controller-5549f47758-2rgjk 1/1 Running 0 61s
pod/argocd-redis-79bdbdf78f-xhd8f 1/1 Running 0 61s
pod/argocd-repo-server-5569c7b657-t5ftv 1/1 Running 0 61s
pod/argocd-server-664b7c6878-9tjlh 1/1 Running 0 61s
4:因为需要访问,我们可以通过NodePort或者Ingress暴露 argocd-server
# 我这里使用 NodePort
# 但是我们需要修改一下argocd-server的暴露方式为NodePort
[root@k8s-master argocd]# kubectl edit svc -n argocd argocd-server
......
selector:
app.kubernetes.io/name: argocd-server
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
[root@k8s-master argocd]# kubectl get svc -n argocd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-applicationset-controller ClusterIP 200.1.73.127 <none> 7000/TCP 15m
argocd-dex-server ClusterIP 200.1.77.207 <none> 5556/TCP,5557/TCP,5558/TCP 15m
argocd-metrics ClusterIP 200

本文详细介绍了如何在Kubernetes1.23.3环境中安装和配置ArgoCD2.3.3,包括创建命名空间、部署ArgoCD服务器、设置NodePort暴露、配置用户权限,以及使用GitOps进行应用的声明式定义、部署和生命周期管理。通过示例展示了从代码变更到自动部署的过程,体现了ArgoCD的强大功能。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



