跳到主要内容

argocd示例应用

argocd示例应用github

以下是argocd官方提供的示例应用

应用说明
guestbook用纯 YAML 格式编写一个简单的 Hello World 留言板应用
helm-guestbook使用 Helm Chart 部署的示例
jsonnet-guestbook使用 jsonnet 部署的示例
jsonnet-guestbook-tla使用 jsonnet 部署的示例,并支持通过顶层参数(top-level arguments)动态配置应用行为(如调整副本数、镜像版本、服务端口等)
kustomize-guestbook使用 Kustomize(版本 2+)部署的示例
pre-post-sync演示 Argo CD PreSync 和 PostSync 钩子
sync-waves演示利用 Argo CD 的同步波浪(Sync Waves)和钩子(Hooks)功能,实现分阶段、有依赖关系的应用部署
helm-dependency对来自上游仓库的现成 Helm Chart(即开箱即用的标准化 Chart)进行自定义配置
sock-shop一个微服务demo(https://microservices-demo.github.io)
plugins演示如何在 Argo CD 中使用配置管理插件(Config Management Plugins, CMP)的示例应用
blue-green使用 Argo Rollouts 完成蓝绿部署
apps其他应用程序组成的应用

创建应用

UI页面

创建应用

Applications -> + NEW APP

iShot_2025-05-21_17.02.41

GENERAL(一般) 配置

iShot_2025-05-23_10.58.56

SOURCE(git仓库) 配置

iShot_2025-05-23_11.06.54

DESTINATION(目标部署集群) 配置

iShot_2025-05-23_11.11.55

CLI命令行

登录argocd

$ argocd login argocd.ops.com --insecure --grpc-web         
Username: admin
Password:
'admin:login' logged in successfully
Context 'argocd.ops.com' updated

查看当前集群

$ argocd cluster list
SERVER NAME VERSION STATUS MESSAGE PROJECT
https://kubernetes.default.svc in-cluster Unknown Cluster has no applications and is not being monitored.

设置当前命名空间为 argocd

kubectl config set-context --current --namespace=argocd

创建应用程序

说明

使用 argocd 命令创建应用程序的语法如下

argocd app create 应用程序名称 \
--repo git仓库地址 \
--path git仓库子目录 \
--dest-server 目标k8s集群地址 \
--dest-namespace 应用部署的命名空间
export APP_NAME='guestbook'
export GIT_REPO='https://gitee.com/pptfz/argocd-example-apps'
export GIT_REPO_PATH='guestbook'
export DEST_CLUSTER='https://kubernetes.default.svc'
export DEST_CLUSTER_NAMESPACE='default'

argocd app create ${APP_NAME} \
--repo ${GIT_REPO} \
--path ${GIT_REPO_PATH} \
--dest-server ${DEST_CLUSTER} \
--dest-namespace ${DEST_CLUSTER_NAMESPACE}

查看应用

应用创建完成后就可以开始同步了

iShot_2025-05-23_11.18.17

在配置的目标命名空间 default 中查看,可以看到pod已经成功运行了

查看pod

$ k -n default get pods
NAME READY STATUS RESTARTS AGE
guestbook-ui-7cf4fd7cb9-c29kb 1/1 Running 0 119s

查看svc

$ k -n default get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
guestbook-ui ClusterIP 10.96.68.1 <none> 80/TCP 2m15s

在官方示例应用 argocd-example-apps 中,我们部署的是示例应用 guestbook ,以下为yaml文件

guestbook/guestbook-ui-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: guestbook-ui
spec:
replicas: 1
revisionHistoryLimit: 3
selector:
matchLabels:
app: guestbook-ui
template:
metadata:
labels:
app: guestbook-ui
spec:
containers:
- image: quay.io/argoprojlabs/argocd-e2e-container:0.2
name: guestbook-ui
ports:
- containerPort: 80

guestbook/guestbook-ui-svc.yaml

apiVersion: v1
kind: Service
metadata:
name: guestbook-ui
spec:
ports:
- port: 80
targetPort: 80
selector:
app: guestbook-ui
Right Bottom Gif
Right Top GIF