通过kubernetes群集的入口公开多个服务
我使用几个独立的服务运行Kubernetes单节点开发集群—使用端口80的Nginx proxy和使用端口9200的elasticsearch。有没有办法通过入口公开这些服务,让入口点具有一个LoadBalancer IP?(x.x.x.x:80和x.x.x.x:9200) 我读过关于入口限制的文章,它只能通过80和443端口访问。但是,也许存在一些变通办法 谢谢你的建议 更新 我通过创建几个入口来解决问题,并使用相同的负载平衡器。但是面对Nginx入口的一些问题,这花费了我很多时间。 使用我的方法最简单的方法是安装带有helm的入口控制器,并使用公开的服务和端口对其进行参数化通过kubernetes群集的入口公开多个服务,kubernetes,kubernetes-ingress,nginx-ingress,traefik-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,Traefik Ingress,我使用几个独立的服务运行Kubernetes单节点开发集群—使用端口80的Nginx proxy和使用端口9200的elasticsearch。有没有办法通过入口公开这些服务,让入口点具有一个LoadBalancer IP?(x.x.x.x:80和x.x.x.x:9200) 我读过关于入口限制的文章,它只能通过80和443端口访问。但是,也许存在一些变通办法 谢谢你的建议 更新 我通过创建几个入口来解决问题,并使用相同的负载平衡器。但是面对Nginx入口的一些问题,这花费了我很多时间。 使用我的
helm install ingres stable/nginx ingres--set tcp.4445=“default/nginx proxy:4445”--set tcp.8888=“default/demo:8888”--set tcp.19200=“default/elasticsearch:19200”
您可以创建任意数量的入口资源,但所有这些资源都将使用用于公开入口控制器的相同负载平衡器
您需要有kubernetes群集IP类型的服务。在服务中,您可以将端口
设置为80
和targetPort
设置为9200
。在入口之后,您可以说servicePort
为80
或者将端口
和目标端口
作为9200
放在集群式服务中,并在服务端口
中提及入口的9200
您是对的,像nginx这样的入口只能接受端口
80
和443
上的流量,但nginx是反向代理,这意味着它将终止该客户端连接并创建到servicePort
的新连接,servicePort
不一定需要80
或443
即它可以是9200
您可以创建任意数量的入口资源,但所有这些资源都将使用用于公开入口控制器的相同负载平衡器
您需要有kubernetes群集IP类型的服务。在服务中,您可以将端口
设置为80
和targetPort
设置为9200
。在入口之后,您可以说servicePort
为80
或者将端口
和目标端口
作为9200
放在集群式服务中,并在服务端口
中提及入口的9200
您是对的,像nginx这样的入口只能接受端口
80
和443
上的流量,但nginx是反向代理,这意味着它将终止该客户端连接并创建到servicePort
的新连接,servicePort
不一定需要80
或443
即它可以是9200
您只需要设置入口规则,将流量引导到正确的服务
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx
spec:
rules:
- host: nginx.example.com
http:
paths:
- backend:
serviceName: nginx
servicePort: 80
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: elasticsearch
spec:
rules:
- host: elasticsearch.example.com
http:
paths:
- backend:
serviceName: elasticsearch
servicePort: 9200
您只需要设置入口规则,将流量引导到正确的服务
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx
spec:
rules:
- host: nginx.example.com
http:
paths:
- backend:
serviceName: nginx
servicePort: 80
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: elasticsearch
spec:
rules:
- host: elasticsearch.example.com
http:
paths:
- backend:
serviceName: elasticsearch
servicePort: 9200
要知道,您有一个dev服务器,它没有云集群应有的那么多酷的功能。但有办法让它看起来像一个 **ngress限制,只能通过80和443端口访问 是的,但您可以覆盖它,我不建议您这样做,因为每次您需要添加/删除端口时都需要大量的手动工作 **有没有办法通过入口公开这些服务 有一个更好的解决办法。。你为什么不使用自己的域名,比如elasticsearch.Dehimb.host/grafana.Dehimb.host等等
或者,您可以使用metallb(但不容易判断它是否损坏)了解您有一个开发服务器,它没有云集群所具有的许多很酷的功能。但有办法让它看起来像一个 **ngress限制,只能通过80和443端口访问 是的,但您可以覆盖它,我不建议您这样做,因为每次您需要添加/删除端口时都需要大量的手动工作 **有没有办法通过入口公开这些服务 有一个更好的解决办法。。你为什么不使用自己的域名,比如elasticsearch.Dehimb.host/grafana.Dehimb.host等等