本文介绍如何使用ArgoCD在Kubernetes集群中部署Dubbo的监控中心Dubbo-admin。
Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。
一、环境
- 已经搭建了多个K8S集群,一个集群对应一个环境
- 集群中安装了ArgoCD
二、安装
镜像制作
- 直接用Dockerhub上的现有镜像
docker pull apache/dubbo-admin
- github仓库 dockerfile 自己制作镜像
创建dubbo-admin资源配置清单
service.yaml
apiVersion: v1
kind: Service
metadata:
name: dubbo-admin
labels:
app: dubbo-admin
spec:
selector:
app: dubbo-admin
type: LoadBalancer
ports:
- name: dubbo-admin-8080
port: 8090
targetPort: 8080
deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: dubbo-admin
labels:
app: dubbo-admin
spec:
replicas: 1
selector:
matchLabels:
app: dubbo-admin
template:
metadata:
labels:
app: dubbo-admin
spec:
containers:
- name: dubbo-admin
image: 'harbor.od.com/public/dubbo-admin:v0.2.0'
imagePullPolicy: Always
command: [ "/bin/bash", "-ce", "java -Dadmin.registry.address=zookeeper://zookeeper-xxxxxx:2181 -Dadmin.config-center=zookeeper://zookeeper-xxxxxx:2181 -Dadmin.metadata-report.address=zookeeper://zookeeper-xxxxxx:2181 -jar /app.jar"]
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 60
periodSeconds: 20
zookeeper-xxxxxx:2181 替换成你自己的zookepper的访问地址
ArgoCD纳管
定义Kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./deploy.yaml
- ./service.yaml
定义Application
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: dubbo-admin
namespace: argocd
spec:
destination:
namespace: dubbo
server: https://kubernetes.default.svc
project: devops
source:
path: dubbo-admin
repoURL: https://xxxxxxxx.git
targetRevision: HEAD
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
selfHeal: false
prune: false
- repoURL: xxxxxxxx.git 是配置仓地址
- path: dubbo-admin 改成你dubbo-admin资源文件所在的地址