如何解决kubernetes入口-将neo4j端点暴露于内部网络
当尝试从另一个群集到达内部 neo4j端点时,我遇到错误
neobolt.exceptions.ServiceUnavailable:尝试建立与('xx.xxx.xx.xx',7687)的连接超时
通过浏览器访问此端点时,它会显示
不是WebSocket握手请求:缺少升级
我从事GCP工作。这就是我所拥有的:
- 具有运行气流的Composer的集群A
- 使用我的应用程序的K8集群B
- 我确定两个集群都可以通信
集群B的neo4j入口定义如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
field.cattle.io/publicEndpoints: '[{"addresses":["xx.xxx.xx.xx"],"port":443,"protocol":"HTTPS","serviceName":"dev:neo4j","ingressName":"dev:neo4j-dev-ing","hostname":"neo4j-dev.host_name","allNodes":false}]'
generation: 6
name: neo4j-dev-ing
spec:
rules:
- host: neo4j-dev.host_name
http:
paths:
- backend:
serviceName: neo4j
servicePort: neo4j-dev-bolt
tls:
- hosts:
- neo4j-dev.host_name
status:
loadBalancer:
ingress:
- ip: xx.xxx.xx.xx
我的neo4j服务如下:
apiVersion: v1
kind: Service
metadata:
name: neo4j
spec:
type: ClusterIP
selector:
app: neo4j
component: neo4j
ports:
- port: 7473
name: neo4j-dev-https
targetPort: 7473
- port: 7474
name: neo4j-dev-http
targetPort: 7474
- port: 7687
name: neo4j-dev-bolt
targetPort: 7687
- port: 1337
name: neo4j-dev-shell
targetPort: 1337
我看到了一些相关的问题,但没有具体的问题,并且有很多矛盾的信息。
有什么想法甚至可以奏效吗?能够对网络有一定了解的人可以向我解释为什么这种方法不起作用,或者提出我需要研究的概念以了解正在发生的事情吗?卡住了
解决方法
在kubernetes之外访问neo4j是一个已知问题,没有简单的解决方法
此处已描述了使用多个静态IP的复杂解决方法 https://neo4j.com/labs/neo4j-helm/1.0.0/externalexposure/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。