一、gitlab仓库配置
创建一个名为Argo Demo的仓库,在manifests目录下仅包含应用的yaml文件,文件内容如下
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
namespace: default
spec:
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: myapp
namespace: default
spec:
type: ClusterIP
selector:
app: myapp
ports:
- port: 80
targetPort: 80
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: myapp
namespace: default
spec:
entryPoints:
- web
routes:
- match: Host(`myapp.test.com`)
kind: Rule
services:
- name: myapp
port: 80
gitlab仓库如下:
二、vargocd配置
2.1添加仓库地址
添加仓库地址,Settings → Repositories,点击 CONNECT REPO 按钮添加仓库,填写以下信息
验证通过后显示如下,点击创建应用
创建应用
创建完后如下所示
三、访问验证
3.1验证应用部署状态
查看k8s创建的资源信息,发现已经成功创建了对应的资源
root@k8s-01:~/argocd# kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp-fd4fd598f-kkrck 1/1 Running 0 113s
root@k8s-01:~/argocd# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 19d
myapp ClusterIP 10.101.17.194 <none> 80/TCP 2m2s
root@k8s-01:~/argocd# kubectl get ingressroute
NAME AGE
myapp 2m13s
访问web页面验证
3.2版本更新
接下来模拟配置变更,将镜像版本从v1改为v2
Argo CD默认每180秒同步一次,查看argocd信息,发现已经自动同步了yaml文件,并且正在进行发布
访问web页面状态,发现已经完成了发布工作。
此时整个应用关联关系如下
3.3版本回退
点击history and rollback即可看到整个应用的所有发布记录,并且可以选择指定版本进行回退操作。
再次访问发现已经回退到v1版本
评论 (0)