赞
踩
要在k8s中使用dubbo服务,需要将dubbo端口注册为k8s对外访问的地址与端口。具体实现步骤如下:
dubbo 提供对外地址暴露配置项:
- DUBBO_IP_TO_REGISTRY=192.168.10.190
- DUBBO_PORT_TO_REGISTRY=30006
这两个配置不能从yml配置中获取,只能通过
system.getProperty("DUBBO_IP_TO_REGISTRY")
方式获取,属于环境变量级别。
java -jar -DDUBBO_IP_TO_REGISTRY=192.168.10.190 -DDUBBO_PORT_TO_REGISTRY=30006 xxx.jar
- env:
- - name: DUBBO_IP_TO_REGISTRY
- value: "192.168.10.190"
- - name: DUBBO_PORT_TO_REGISTRY
- value: "30006"
k8s 对外暴露service服务,通过设置service服务网络信息完成端口暴露
- apiVersion: v1
- kind: Service
- metadata:
- name: dat-servicexxx
- namespace: pm-dat
- spec:
- type: NodePort
- selector:
- app: dat-servicexxx
- ports:
- - name: dubbo
- port: 29080
- targetPort: 29080
- nodePort: 30006
这里端口 29080 是dubbo 实际启动的 tcp监听端口,一般在 yml 配置文件中配置。对应配置如下:
- dubbo:
- protocol:
- name: dubbo
- port: 29080
修改 tomcat启动命令脚本 catalina.sh
JAVA_OPTS="$JAVA_OPTS -DDUBBO_IP_TO_REGISTRY=192.168.10.190 -DDUBBO_PORT_TO_REGISTRY=30006"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。