dubboctl 快速开始

dubboctl 快速开始

接下来,我们将跟随文档学习如何使用 dubboctl 完成:

  1. 创建一个 Dubbo 应用
  2. 将应用打包为 Docker 镜像
  3. 部署应用镜像到 Kubernetes 集群

前置条件

Dubbo 提供了相应的工具和解决方案来简化整个微服务开发、打包与部署过程,所以开始前我们需要先安装 dubboctl 工具。

curl -L https://dubbo.apache.org/downloadKube.sh | sh -
cd dubbo-kube-$version
export PATH=$PWD/bin:$PATH

快速创建 Dubbo 应用

在任意目录,运行以下命令即可生成一个基本的 Dubbo 应用。

dubboctl create -l java dubbo-hello
cd dubbo-hello
dubboctl create -l go dubbo-hello
cd dubbo-hello
dubboctl create -l web dubbo-hello
cd dubbo-hello
dubboctl create -l nodejs dubbo-hello
cd dubbo-hello
dubboctl create -l rust dubbo-hello
cd dubbo-hello

以 `java` 为例,项目目录结构如下:

初始化微服务集群

dubboctl 可以帮助我们快速的初始化微服务集群中需要的注册中心、监控系统、服务治理中心等组件,只需要运行以下命令:

dubboctl manifest install --profile=demo

作为示例用途,以上命令会一键安装 Zookeeper、Console、Prometheus、Grafana、Zipkin、Ingress 等组件,关于 --profile=demo 更多解释及可选值请参见文档说明。

运行以下命令检查集群初始化准备就绪

kubectl get services -n dubbo-system

部署应用

在刚刚创建的示例项目根目录,运行以下命令生成 Kubernetes 资源清单,其中,--image 指定了官方预先准备好的示例镜像(镜像与刚刚生成的示例应用源码完全相同)。

dubboctl deploy --image=docker.io/apache/dubbo-java-quickstart:latest
# 如果使用 go 语言项目模板,则请使用 dubbo-go-quickstart:latest,其他语言类推

命令执行成功后,可以在当前目录看到生成的 kube.yaml 文件,其中包括 deployment、service 等 kubernetes 资源定义。

接下来,将应用部署到 Kubernetes 环境。

kubectl apply -f ./kube.yaml

检查部署状态

kubectl get services

访问应用

部署成功后,可以通过以下方式检查应用状态。

  1. 如果使用的本地 Kubernetes 集群,请使用以下方式访问应用验证部署状态,执行以下命令:

    dubboctl dashboard admin
    
  2. 以上命令会自动打开 admin 控制台,如果在您的环境下没有打开,请使用浏览器访问以下地址:

    http://localhost:38080/admin

  3. 通过 triple 协议,可以继续测试 Dubbo 服务,执行以下命令进行端口映射:

    kubectl port-forward <pod-name> 50051:50051
    
  4. 通过 curl 访问服务:

    curl \
        --header "Content-Type: application/json" \
        --data '["Dubbo"]' \
        http://localhost:50051/com.example.demo.dubbo.api.DemoService/sayHello/
    

对于云上托管的哦 Kubernetes 集群,可以使用以下方式验证,这里以阿里云 ACK 集群为例:

ACK ingerss-controller 的访问方式……


最后修改 September 22, 2023: update doc (27872e5bf8)