我有一个aks集群,里面有两个neo4j数据库镜像(db-1和db-2),为这些提供服务。使用nginx ingress控制器,我想根据用户请求的URL将用户路由到特定的数据库,例如,如果用户想转到db-1,我的neo4j URL将是http://<external-ip>/db1
我想使用一个内部IP,并将我的aks集群链接到它。
我已经使用以下步骤创建了数据库和nginx控制器。但是我的数据库没有连接。Neo4j说Service Unavailable
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
个helm repo update
个helm install ingress-nginx ingress-nginx/ingress-nginx --create-namespace --namespace ingress-test --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz --set-string controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-internal"="true" --tcp-services-configmap=ingress-test/tcp-services
个
应用下面的yaml kubectl apply -f ingress.yaml
kind: Deployment
metadata:
name: aks-neo4j-one
spec:
replicas: 1
selector:
matchLabels:
app: aks-neo4j-one
template:
metadata:
labels:
app: aks-neo4j-one
spec:
containers:
- name: neo4j
image: neo4j:latest
env:
- name: NEO4J_AUTH
value: neo4j/<mypassword>
ports:
- containerPort: 7474
name: http
- containerPort: 7687
name: tcp
---
apiVersion: v1
kind: Service
metadata:
name: aks-neo4j-one
spec:
type: ClusterIP
ports:
- protocol: TCP
port: 80
targetPort: 7687
selector:
app: aks-neo4j-one
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: neo4j-ingress
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /neo4jone
pathType: Prefix
backend:
service:
name: aks-neo4j-one
port:
number: 80
---
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-test
data:
7687: "ingress-test/aks-neo4j-one:80"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ingress-nginx-controller
namespace: ingress-test
spec:
template:
spec:
containers:
- name: controller
args:
- /nginx-ingress-controller
- --tcp-services-configmap=ingress-test/tcp-services
字符串
有没有尝试过它与配置Map以及neo4j需要7687螺栓端口
将服务端口更改为7474,并浏览外部IP会弹出用户名和密码,并且不会继续进行任何输入。
1条答案
按热度按时间kpbwa7wx1#
要在AKS集群中配置两个独立的Neo4j示例,并使用Nginx Ingress基于URL路径将流量定向到它们,请按照以下说明操作:
第一步:安装Nginx Ingress Controller
首先,添加Nginx Ingress的Helm仓库并安装:
字符串
的数据
第二步:部署Neo4j集群
为每个Neo4j示例创建Kubernetes部署文件。对于第一个数据库(
db-1
):型
对于第二个数据库(
db-2
):型
使用以下命令部署这些配置:
型
的
第三步:公开Neo4j服务
现在,为每个Neo4j部署定义服务。对于
db-1
:型
对于
db-2
:型
应用它们:
型
的
第四步:配置Ingress路由
设置一个Ingress资源来路由外部请求:
型
使用
kubectl apply -f neo4j-ingress.yaml
应用它的
应用上述配置后,为TCP路由创建一个ConfigMap:
型
应用配置Map:
kubectl apply -f tcp-routing-configmap.yaml
然后,更新Nginx Ingress Controller部署以使用TCP服务的ConfigMap:
kubectl edit deployment ingress-nginx-controller -n ingress-nginx
在
spec.template.spec.containers[0].args
下添加--tcp-services-configmap=default/nginx-ingress-tcp
参数。型
应用上述配置后,您应该可以在
http://<external-ip>/db1
(HTTP)和<external-ip>:7687
(Bolt)访问您的Neo4j示例。通过以下方式查找Nginx ingress控制器的外部IP:型
型