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 仓库源码:
$ git clone https://github.com/apache/dubbo-admin.git
复制代码
从仓库根目录切换到以下目录 deploy/helm/dubbo-admin
$ cd dubbo-admin/deploy/helm/dubbo-admin
复制代码
安装 helm chart
$ helm install dubbo-admin .
复制代码
如果你想定制 Admin 的启动参数,以便让 Admin 连接到真实的生产环境注册中心或配置中心,可以通过以下 -f helm
参数指定自定义配置文件:
properties.xml
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 集群内被访问到的真实地址。
$ helm install dubbo-admin -f properties.yaml .
复制代码
properties 字段指定的内容将会覆盖 Admin 镜像中 application.properties 指定的默认配置,除了 properties 之外,还可以定制 Admin helm chart 定义的其他属性,这里是可供使用的完整参数。
application.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 现在应该已经成功安装,运行以下命令获得访问地址:
$ kubectl --namespace default port-forward service/dubbo-admin 38080:38080
复制代码
或者,你可以参考执行 helm 安装后给出的提示命令,类似如下:
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 仓库 (暂时不可用)
$ helm repo add dubbo-charts https://dubbo.apache.org/dubbo-charts
$ helm repo update
复制代码
安装 helm chart
$ helm install dubbo-admin dubbo-charts/dubbo-admin
复制代码
基于 Chart 源文件运行 Admin 中相应环节了解如何定制安装参数
$ helm install dubbo-admin -f properties.yaml dubbo-charts/dubbo-admin
复制代码
访问 Dubbo Admin
Dubbo Admin 现在应该已经成功安装,运行以下命令获得访问地址:
$ kubectl --namespace default port-forward service/dubbo-admin 38080:38080
复制代码
打开浏览器并访问 http://127.0.0.1:38080,默认的 username 和 password 是 root
使用 Kubernetes 运行
克隆 Dubbo Admin 仓库源码:
$ git clone https://github.com/apache/dubbo-admin.git
复制代码
切换到 deploy/k8s 目录可以看到 Admin kubernetes 资源文件
$ cd /dubbo-admin/deploy/k8s
复制代码
部署 Dubbo Admin
首先,请参照 application.properties 修改 configmap.yml 中的参数配置,只定义要覆盖参数即可,如下图所示。
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
$ kubectl port-forward service dubbo-admin 38080:38080
复制代码
打开浏览器并访问 http://localhost:38080, 默认 username 和 password 是 root。
使用 Docker 运行
预先定义的 Admin 镜像托管在:
https://hub.docker.com/repository/docker/apache/dubbo-admin
可以直接运行镜像来部署 Admin,并通过绑定宿主机上的 application.properties 文件定制镜像默认参数,如注册中心、配置中心地址等。
$ 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 https://github.com/apache/dubbo-admin.git
在 dubbo-admin-server/src/main/resources/application.properties 中指定注册中心地址
构建
mvn clean package -Dmaven.test.skip=true
复制代码
启动
mvn --projects dubbo-admin-server spring-boot:run 或者
cd dubbo-admin-distribution/target; java -jar dubbo-admin-${project.version}.jar
复制代码
访问 http://localhost:38080
核心重点配置
application.properties 配置项说明
admin.config-center
推荐使用,配置中心地址,比如:admin.config-center="zookeeper://127.0.0.1:2181"
需要在配置中心中,配置注册中心和元数据中心地址配置格式如下:
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
不推荐使用,老版本的配置中心地址,比如:
admin.registry.address="zookeeper://127.0.0.1:2181"
复制代码
如使用该配置,Dubbo Admin 会将其作为注册中心和配置中心使用,元数据中心将无法使用,会影响服务测试等功能。
评论