Dubbo Admin
Dubbo Admin 是一个控制台,为 Dubbo 集群提供更好可视化服务。Admin 支持 Dubbo3 并很好的兼容 2.7.x、2.6.x 和 2.5.x。
Dubbo Admin的部署方式
接下来我们主要会介绍有四种Dubbo Admin部署到生产环境的方式
- 基于 Helm 运行 Admin
- 基于 Kubernetes 运行 Admin
- 基于 Docker 运行 Admin
- 基于源码打包运行 Admin
基于 Helm 运行 Admin
通过 Helm运行Admin有两种方式,它们起到相同的效果,因此可以选择以下任意一种。
基于 Chart 源文件运行 Admin
下载 chart 源文件
克隆 Dubbo Admin仓库源码:
shell
复制代码
$ git clone https://github.com/apache/dubbo-admin.git
从仓库根目录切换到以下目录 deploy/helm/dubbo-admin
shell
复制代码
$ cd dubbo-admin/deploy/helm/dubbo-admin
安装 helm chart
ruby
复制代码
$ helm install dubbo-admin .
如果你想定制 Admin 的启动参数,以便让 Admin 连接到真实的生产环境注册中心或配置中心,可以通过以下 -f helm
参数指定自定义配置文件:
properties.xml
properties
复制代码
properties: | admin.registry.address=zookeeper://30.221.144.85:2181 admin.config-center=zookeeper://30.221.144.85:2181 admin.metadata-report.address=zookeeper://30.221.144.85:2181
zookeeper://30.221.144.85:2181 是可以在 Kubernetes 集群内被访问到的真实地址。
properties
复制代码
$ helm install dubbo-admin -f properties.yaml .
properties字段指定的内容将会覆盖 Admin 镜像中application.properties 指定的默认配置,除了properties之外,还可以定制 Admin helm chart 定义的其他属性,这里是可供使用的完整参数。
application.properties的配置信息
properties
复制代码
server.port=38080 dubbo.protocol.port=30880 dubbo.application.qos-port=32222 # centers in dubbo2.7, if you want to add parameters, please add them to the url admin.registry.address=zookeeper://127.0.0.1:2181 admin.config-center=zookeeper://127.0.0.1:2181 admin.metadata-report.address=zookeeper://127.0.0.1:2181 # nacos config, add parameters to url like username=nacos&password=nacos #admin.registry.address=nacos://127.0.0.1:8848?group=DEFAULT_GROUP&namespace=public #admin.config-center=nacos://127.0.0.1:8848?group=dubbo #admin.metadata-report.address=nacos://127.0.0.1:8848?group=dubbo #group (Deprecated it is recommended to use URL to add parameters,will be removed in the future) #admin.registry.group=dubbo #admin.config-center.group=dubbo #admin.metadata-report.group=dubbo #namespace used by nacos. (Deprecated it is recommended to use URL to add parameters,will be removed in the future) #admin.registry.namespace=public #admin.config-center.namespace=public #admin.metadata-report.namespace=public admin.root.user.name=root admin.root.user.password=root #session timeout, default is one hour admin.check.sessionTimeoutMilli=3600000 # apollo config # admin.config-center = apollo://localhost:8070?token=e16e5cd903fd0c97a116c873b448544b9d086de9&app.id=test&env=dev&cluster=default&namespace=dubbo # (Deprecated it is recommended to use URL to add parameters,will be removed in the future) #admin.apollo.token=e16e5cd903fd0c97a116c873b448544b9d086de9 #admin.apollo.appId=test #admin.apollo.env=dev #admin.apollo.cluster=default #admin.apollo.namespace=dubbo #compress server.compression.enabled=true server.compression.mime-types=text/css,text/javascript,application/javascript server.compression.min-response-size=10240 #token timeout, default is one hour admin.check.tokenTimeoutMilli=3600000 #Jwt signingKey admin.check.signSecret=86295dd0c4ef69a1036b0b0c15158d77 #dubbo config dubbo.application.name=dubbo-admin dubbo.registry.address=${admin.registry.address} # mysql #spring.datasource.driver-class-name=com.mysql.jdbc.Driver #spring.datasource.url=jdbc:mysql://localhost:3306/dubbo-admin?characterEncoding=utf8&connectTimeout=1000&socketTimeout=10000&autoReconnect=true #spring.datasource.username=root #spring.datasource.password=mysql # h2 spring.datasource.url=jdbc:h2:mem:~/dubbo-admin;MODE=MYSQL; spring.datasource.username=sa spring.datasource.password= # id generate type mybatis-plus.global-config.db-config.id-type=none dubbo.application.logger=slf4j
访问 Admin
Dubbo Admin现在应该已经成功安装,运行以下命令获得访问地址:
arduino
复制代码
$ kubectl --namespace default port-forward service/dubbo-admin 38080:38080
或者,你可以参考执行 helm 安装后给出的提示命令,类似如下:
arduino
复制代码
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=dubbo-admin,app.kubernetes.io/instance=dubbo-admin" -o jsonpath="{.items[0].metadata.name}") export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") echo "Visit http://127.0.0.1:38080 to use your application" kubectl --namespace default port-forward $POD_NAME 38080:$CONTAINER_PORT
打开浏览器并访问 http://127.0.0.1:38080,默认的 username 和 password 是 root。
基于 Chart 仓库运行 Admin
添加 helm chart 仓库 (暂时不可用)
ruby
复制代码
$ helm repo add dubbo-charts https://dubbo.apache.org/dubbo-charts $ helm repo update
安装 helm chart
shell
复制代码
$ helm install dubbo-admin dubbo-charts/dubbo-admin
基于 Chart 源文件运行 Admin 中相应环节了解如何定制安装参数
shell
复制代码
$ helm install dubbo-admin -f properties.yaml dubbo-charts/dubbo-admin
访问 Dubbo Admin
Dubbo Admin 现在应该已经成功安装,运行以下命令获得访问地址:
arduino
复制代码
$ kubectl --namespace default port-forward service/dubbo-admin 38080:38080
打开浏览器并访问 http://127.0.0.1:38080,默认的 username 和 password 是 root
使用 Kubernetes 运行
克隆 Dubbo Admin仓库源码:
shell
复制代码
$ git clone https://github.com/apache/dubbo-admin.git
切换到 deploy/k8s 目录可以看到Admin kubernetes资源文件
shell
复制代码
$ cd /dubbo-admin/deploy/k8s
部署 Dubbo Admin
首先,请参照application.properties修改configmap.yml 中的参数配置,只定义要覆盖参数即可,如下图所示。
ini
复制代码
application.properties: | admin.registry.address=zookeeper://127.0.0.1:2181 admin.config-center=zookeeper://127.0.0.1:2181 admin.metadata-report.address=zookeeper://127.0.0.1:2181
- 修改admin.registry.address
- 修改admin.config-center
- 修改admin.metadata-report.address
执行以下命令:
ruby
复制代码
$ kubectl apply -f ./
访问 Admin
ruby
复制代码
$ kubectl port-forward service dubbo-admin 38080:38080
打开浏览器并访问 http://localhost:38080, 默认 username 和 password 是 root。
使用 Docker 运行
预先定义的 Admin 镜像托管在:
可以直接运行镜像来部署 Admin,并通过绑定宿主机上的 application.properties 文件定制镜像默认参数,如注册中心、配置中心地址等。
shell
复制代码
$ docker run -it --rm -v /the/host/path/containing/properties:/config -p 38080:38080 apache/dubbo-admin
将 /the/host/path/containing/properties 替换为宿主机上包含 application.properties 文件的实际路径(必须是一个有效目录的绝对路径)。
打开浏览器并访问 http://localhost:38080, 默认 username 和 password 是 root
通过源码打包运行
下载代码: git clone github.com/apache/dubb…
在 dubbo-admin-server/src/main/resources/application.properties中指定注册中心地址
构建
ini
复制代码
mvn clean package -Dmaven.test.skip=true
启动
bash
复制代码
mvn --projects dubbo-admin-server spring-boot:run 或者 cd dubbo-admin-distribution/target; java -jar dubbo-admin-${project.version}.jar
核心重点配置
application.properties配置项说明
admin.config-center
推荐使用,配置中心地址,比如:admin.config-center="zookeeper://127.0.0.1:2181"
需要在配置中心中,配置注册中心和元数据中心地址配置格式如下:
ini
复制代码
zookeeper: path: /dubbo/config/dubbo/dubbo.properties content: dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
admin.registry.address
不推荐使用,老版本的配置中心地址,比如:
ini
复制代码
admin.registry.address="zookeeper://127.0.0.1:2181"
如使用该配置,Dubbo Admin会将其作为注册中心和配置中心使用,元数据中心将无法使用,会影响服务测试等功能。