腾讯aeraki / dubbo servicemesh示例运行
- 安装docker和k8s
k8s的安装由于镜像外网无法访问,可以使用阿里的工具 k8s安装后可以通过如下命令验证版本信息
kubectl version
配置registry-mirrors提高国内源镜像的访问速度 “registry-mirrors”: [ " ]
- 下载istio二进制包,示例采用的是1.10.4版本
下载解压到磁盘目录,并配置环境变量
vim ~/.bash_profile export PATH=$PATH:/Users/xxx/istio/istio-1.10.4/bin source ~/.bash_profile
可以通过如下命令验证版本信息
istioctl version
- 将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的状态
- 下载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中的