argocd示例应用
以下是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
GENERAL(一般)
配置
SOURCE(git仓库)
配置
DESTINATION(目标部署集群)
配置
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}
查看应用
应用创建完成后就可以开始同步了
在配置的目标命名空间 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