您的位置:首页 > 其它

dubbo服务在kubernetes中对外暴露服务

2019-03-20 21:34 246 查看

精选30+云产品,助力企业轻松上云!>>>

一些场景下,在开发时可能存在dubbo consumer需要访问k8s中部署的dubbo provider,尤其是对于自建的kubernetes集群环境,tcp的端口很难代理,这就导致了开发发链接集群内的服务比较麻烦,这里可以利用service将dubbo服务使用nodeport暴露出去,但是由于dubbo默认注册的ip地址是自动获取服务的ip地址来注册的,ip地址是pod的ip地址,集群外是无法访问的。幸运的是dubbo提供了自动义指定注册ip的配置,我们可以在部署开发联调服务时指定ip地址为宿主机的ip地址。部署例子如下:

# -------------------Service ---------------------- #
apiVersion: v1
kind: Service
metadata:
name: java-test-svc
namespace: default
spec:
type: NodePort
ports:
- port: 30011
targetPort: 30011
nodePort: 30011
selector:
app: java-test
tier: backend
---
# ------------------- Deployment ------------------- #
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: java-test-deployment
namespace: default
spec:
selector:
matchLabels:
app: java-test
tier: backend
replicas: 1
template:
metadata:
labels:
app: java-test
tier: backend
spec:
nodeSelector:
dubbo_provder: dubbo_provider
containers:
- name: java-test
image: [your image]
imagePullPolicy: Always
#          resources:
#            requests:
#              cpu: 100m
#              memory: 100Mi
#            limits:
#              cpu: 100m
#              memory: 100Mi
env:
- name:  APOLLO_META
val
1000
ue: http://172.31.205.22:8080
- name: DUBBO_IP_TO_REGISTRY
value: 172.31.205.23
- name: DUBBO_PORT_TO_REGISTRY
value: "30011"
- name: DUBBO_PORT_TO_BIND
value: "30011"
ports:
- containerPort: 30011
imagePullSecrets:
- name: harbor-key
---
# ------------------- ingress ---------------------- #
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: java-test-ingress
namespace: default
spec:
rules:
- host: javatest.com
http:
#port: 80
paths:
- path: /
backend:
serviceName: java-test-svc
servicePort: 30011
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Dubbo Kubernetes