部署 Dubbo 微服务应用到 Kubernetes 集群

演示如何部署 Dubbo 微服务应用到 Kubernetes 集群

在本示例中,我们会将 上一步开发的 Dubbo 微服务应用 以容器镜像模式部署到 Kubernetes 集群,并使用 dubboctl 简化整个部署过程。

前置条件

dubbo 提供了相应的工具和解决方案来简化整个 Kubernetes 环境的打包与部署过程,所以开始前我们需要先安装相关工具。

  1. 安装 dubboctl(如尚未安装)

    curl -L https://dubbo.apache.org/downloadKube.sh | sh -
    
    cd dubbo-kube-$version
    export PATH=$PWD/bin:$PATH
    
  2. dubboctl 安装完成之后,接下来通过以下命令初始化微服务开发环境。

    dubboctl manifest install --profile=demo
    

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

  3. 检查环境准备就绪

    kubectl get services -n dubbo-system
    

部署应用

接下来我们为之前创建的应用打包镜像,在应用根目录分别运行以下命令:

dubboctl build

build 命令会将源码打包为镜像,并推送到远端仓库,取决于网络情况,可能需要一定时间等待命令执行完成。

dubboctl deploy

deploy 命令会使用刚刚 build 打包的镜像生成 Kubernetes 资源清单。命令执行成功后,在当前目录看到生成的 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 的访问方式……

更多内容

如何在虚拟机环境部署 Dubbo 应用

如果您当前无法使用 Kubernetes,请参考如何在虚拟机环境部署 Dubbo 应用。

Dubbo + Istio 服务网格

如果您计划使用服务网格,可以了解如何让 Dubbo 应用配合 Istio 控制面部署。



最后修改 September 22, 2023: update doc (0a8c9c2257)