Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
chickenlj authored Aug 30, 2023
1 parent b7a0c6e commit 240ac0e
Showing 1 changed file with 55 additions and 73 deletions.
128 changes: 55 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,103 +1,85 @@
# NOTICE
此分支是 Dubbo Admin 正在基于 Go 语言重构的开发分支,目前仍在开发过程中。
如您正寻求将 Dubbo Admin 用作生产环境,想了解 Admin 的能力及安装方式,请参见 [develop 分支](https://github.com/apache/dubbo-admin/tree/develop#dubbo-admin) 及内部相关使用说明。
<h1 align="center">
The Dubbo Kubernetes Integration
</h1>

# 运行 Admin
## 启动 Zookeeper
首先,你需要在本地启动一个 [zookeeper server](https://zookeeper.apache.org/doc/current/zookeeperStarted.html),用作 Admin 连接的注册/配置中心。
<p align="center" style="color: red; font-weight: bold;">
⚠️ This is still an experimental version. ⚠️
</p>

## 启动 Admin
[![Build](https://github.com/apache/dubbo-kubernetes/actions/workflows/ci.yml/badge.svg)](https://github.com/apache/dubbo-kubernetes/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/apache/dubbo-kubernetes/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-kubernetes)
![license](https://img.shields.io/badge/license-Apache--2.0-green.svg)

### Run with IDE
Once open this project in GoLand, a pre-configured Admin runnable task can be found from "Run Configuration" pop up menu as shown below.
This repository contains libraries and tools for creating and deploying Dubbo applications in any Kubernetes environment, i.e. on Kubernetes, Aliyun ACK, etc.

![image.png](docs/images/ide_configuration.png)
## Prerequisites:
* Ensure you have Go installed, version 1.20 or higher.
* Make sure you install kubectl.
* Ensure you have Dubboctl installed.

Click the `Run` button and you can get the Admin process started locally.

> But before doing that, you might need to change the configuration file located at `/conf/dubboadmin.yml` to make sure `registry.address` is pointed to the zookeeper server you started before.
```yaml
admin:
registry:
address: zookeeper://127.0.0.1:2181
config-center: zookeeper://127.0.0.1:2181
metadata-report:
address: zookeeper://127.0.0.1:2181
```
### Run with command line
## Quick Start
### Create a Dubbo application
Use `dubboctl create` to create a project template.

```shell
$ export ADMIN_CONFIG_PATH=/path/to/your/admin/project/conf/admin.yml
$ cd cmd/admin
$ go run .
dubboctl create -l java
```

Open the browser and visit http://localhost:38080/admin/ to open the console.
This should generate a simple project with a demo service properly configured and is ready to run.

> If you also have the Java version admin running, make sure to use different port to avoid conflict.
> For java developers, it's recommended to use [start.dubbo.apache.org]() or [IntelliJ IDEA plugin]() to generate more complicated templates.
### 一些 Dubbo 客户端示例
为了能在 Admin 控制台看到一些示例数据,可以在本地启动一些示例项目。可参考以下两个链接,务必确保示例使用的注册中心指向你之前启动的 zookeeper server,如果示例中有使用 embeded zookeeper 则应该进行修改并指向你本地起的 zookeeper 集群。
### Deploy application to Kubernetes
Before deploying the application, let's install Nacos, Zookeeper, Prometheus and other components necessary for running a Dubbo application or microservice cluster.

1. https://github.com/apache/dubbo-samples/tree/master/1-basic/dubbo-samples-spring-boot
2. https://dubbo.apache.org/zh-cn/overview/quickstart/java/brief/
```shell
dubboctl install --profile=demo # This will install Nacos, Prometheus, Grafana, Admin, etc.
```

## 前端开发步骤
项目完整前端代码存放在:`[dubbo-admin-ui](./dubbo-admin-ui/README.md)`
Next, build your application as docker image and deploy it into kubernetes cluster with `dubboctl deploy`, it will do the following two steps:

## 贡献代码
开发过程中,可以使用预先定义好的 Makefile 任务来完成代码检查、测试等一系列工作。以下是一些命令说明
1. Build your application from source code into docker image and push the image to remote repository.
2. Generate all the kubernetes configurations (e.g., deployments, services, load balancers) needed to run your application on vanilla Kubernetes.

### 代码格式化
```shell
make fmt #Run gofumpt against code.
dubboctl deploy --out=deployment.yml
```

### 代码检查
To run all code formatting, linting and vetting tools use the target:
Finally, apply manifests into kubernetes cluster.

```shell
make lint #Run golang lint against code
kubectl apply -f deployment.yml
```

### 测试代码
### Monitor and manage your application
We already have the application up and running, now it's time to continuously monitor the status or manage the traffics of our applications.

```shell
make test #Run all tests
make test-dubboctl #Run tests for dubboctl
make test-admin #Run tests for admin
make test-authority #Run tests for authority
```
#### Admin
Run the following command and open `http://localhost:38080/admin/` with your favourite browser.

### Swagger API
```shell
make swagger #Generate dubbo-admin swagger docs in hack/swagger
dubboctl dashboard admin
```

### 打包
```shell
make build #Build binary with the dubbo admin, authority, and dubboctl
make build-admin #Build binary with the dubbo admin.
make build-authority #Build binary with the dubbo authority.
make build-dubboctl #Build binary with the dubbo dubboctl.
make build-ui #Build the distribution of the admin ui pages.
```
### 生成镜像
```shell
make image #Build docker image with the dubbo admin, authority and admin-ui
make image-admin #Build docker image with the dubbo admin.
make image-authority #Build docker image with the dubbo authority.
make image-ui #Build docker image with the dubbo admin ui.
```
### 多平台生成镜像和打包
![Admin Console]()


![Admin Grafana]()

#### Tracing
```shell
make buildx #Build and push docker cross-platform image for the dubbo admin and authority
make buildx-admin #Build and push docker image with the dubbo admin for cross-platform support
make buildx-authority #Build and push docker image with the dubbo authority for cross-platform support
make buildx-dubboctl #Build the dubboctl distribution for cross-platform support
dubboctl dashboard zipkin
```

## 发布指南
正式发布的一些 make 命令...
#### Traffic Management
Please refer to our official website to learn the traffic policies in Dubbo with some well-designed tasks.
* Timeout
* Accesslog
* Region-aware traffic split
* Weight-based traffic split
* Circuit breaking
* Canary release




0 comments on commit 240ac0e

Please sign in to comment.