需求
开发在本地也可以连接集群中的dubbo provider
分析
provider以nodeport方式部署,把nodeip 和 nodeport注册到zk,consumer从zk拿到的地址就是可以访问的k8s服务地址,搞定。
关键是获取nodeport,因为我们的yaml都是先创建service,所以pod启动的时候能获取到。
实施步骤
1.服务以nodeport方式部署, 并暴露20880端口
- name: '20880'
port: 20880
2.deployment的yaml中设置环境变量DUBBO_IP_TO_REGISTRY为节点ip
- name: DUBBO_IP_TO_REGISTRY
valueFrom:
fieldRef:
fieldPath: status.hostIP
3.修改镜像的entrypoint脚本
... 通过k8s api获取服务的nodeport
echo "export DUBBO_PORT_TO_REGISTRY=$dubboPort" >> ~/.bashrc
4.查看zk的信息
确认provider是nodeip和nodeport,done
网友评论