手把手带你玩转ArgoCD --- 部署 dubbo-admin

469 阅读1分钟

本文介绍如何使用ArgoCD在Kubernetes集群中部署Dubbo的监控中心Dubbo-admin。

Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。

image.png

一、环境

  1. 已经搭建了多个K8S集群,一个集群对应一个环境
  2. 集群中安装了ArgoCD

二、安装

镜像制作

  • 直接用Dockerhub上的现有镜像
docker pull apache/dubbo-admin

创建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

image.png

定义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资源文件所在的地址