腾讯aeraki / dubbo servicemesh示例运行

  1. 安装docker和k8s

k8s的安装由于镜像外网无法访问,可以使用阿里的工具 k8s安装后可以通过如下命令验证版本信息

kubectl version

配置registry-mirrors提高国内源镜像的访问速度 “registry-mirrors”: [ " ]

  1. 下载istio二进制包,示例采用的是1.10.4版本

下载解压到磁盘目录,并配置环境变量

vim ~/.bash_profile

export PATH=$PATH:/Users/xxx/istio/istio-1.10.4/bin

source ~/.bash_profile

可以通过如下命令验证版本信息

istioctl version
  1. 将istio和aerraki安装到k8s中

dubbo2istio示例工程需要k8s中的istio配置参数开启smartDns,aerraki已经提供了对应的安装脚本 下载aerraki源码

打开工程源码可以看到{projectPath}/aeraki/demo/install-demo.sh 但是该脚本还在k8s安装了其他的pod,如果想安装最基础pod,可以在同目录下新建一个instal-istio.sh脚本编写如下内容:

BASEDIR=$(dirname "$0")/..

SCRIPTS_DIR=$BASEDIR/test/e2e/scripts
COMMON_DIR=$BASEDIR/test/e2e/common
export ISTIO_VERSION=1.10.0
export BUILD_TAG=latest

bash ${SCRIPTS_DIR}/aeraki.sh
bash ${SCRIPTS_DIR}/istio.sh -y -f ${COMMON_DIR}/istio-config.yaml

在docker和k8s运行的状态下,执行该脚本

执行结果如下: 在终端查看k8s中多了一个istio-system命名空间,查看该namespace下的pod状态READY和STATUS如下为成功.

kubectl get ns                   #查看k8s中的namespace

kubectl get pod -n istio-system  #查看namespace下pod的状态
  1. 下载dubbo2istio源码,部署到k8s
kubectl create ns dubbo  //创建dubbo命名空间,应用部署在该namespace下
# TCM
kubectl label namespace dubbo istio.io/rev=1-8-1
# Istio 1.9
# kubectl label namespace dubbo istio-injection=enabled
cd dubbo2istio
kubectl apply -f demo/k8s/zk/ -n dubbo

脚本可能执行失败,可以尝试增大docker内存配置来解决 在终端查看dubbo命令空间下pod的状态

查看dubbo消费端调用日志

kubectl logs --tail 100 dubbo-sample-consumer-555b7bdd6c-f5q8l -c dubbo-sample-consumer -n dubbo

如下则为调用成功

更多: 参考dubbo2istio中的

经验分享 程序员 微信小程序 职场和发展