Kubernetes (AKS):将不同服务的多个端口暴露给公共负载均衡器
Kubernetes (AKS) : Expose multiple ports of different service to common load balancer
我正在 Azure 上设置 Kubernetes 集群(使用 AKS)来托管 Elasticsearch、Kibana、自定义 api、UI、nginx 等
因为我不想为每个服务单独 public IP,我需要一种设置公共负载的方法 balancer/Ingress 然后只需将端口号添加到那里并设置路由。
我尝试使用这个 Whosebug 问题中提到的方法 - 但没有成功。
由于有技术客户端连接到我的集群,我需要为每种技术提供服务。
基本上我需要公开 9200、5601、80 - 都在同一个 IP 上,但在使用端口访问 IP 时,必须将用户重定向到适当的技术服务。
下面是我正在寻找的示例配置。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myingress
spec:
rules:
- host: myurl.domain.com
http:
paths:
- path: /
backend:
serviceName: elasticsearch
servicePort: 9200
- path: /
backend:
serviceName: kibana
servicePort: 5602
有什么想法吗?
我刚刚在使用 HAProxy 入口控制器的邮件服务器项目上完成了这项工作(https://github.com/helm/charts/tree/master/incubator/haproxy-ingress) in TCP mode. Works a treat. Working config can be found at https://github.com/funkypenguin/docker-mailserver/blob/fa9bd9c9ed9b66aa6ee1c36ca19a73c558682f24/helm-chart/docker-mailserver/values.yaml#L300
D
对于你的问题,入口就是你想要的。您可以根据需要创建所有服务。并公开您的服务的端口。然后使用 public IP 创建入口,并创建入口路由,将访问从入口路由到后端服务。
看看Create an ingress controller in Azure Kubernetes Service (AKS)中的例子。它会告诉你需要完成哪些步骤。如果您还有其他问题,请告诉我。
抱歉,我 post 提出了另一个类似的问题。终于能够通过简单的标记解决问题。
不需要额外的 tools/code。
请参考我的post回答:
我正在 Azure 上设置 Kubernetes 集群(使用 AKS)来托管 Elasticsearch、Kibana、自定义 api、UI、nginx 等
因为我不想为每个服务单独 public IP,我需要一种设置公共负载的方法 balancer/Ingress 然后只需将端口号添加到那里并设置路由。
我尝试使用这个 Whosebug 问题中提到的方法 -
由于有技术客户端连接到我的集群,我需要为每种技术提供服务。
基本上我需要公开 9200、5601、80 - 都在同一个 IP 上,但在使用端口访问 IP 时,必须将用户重定向到适当的技术服务。
下面是我正在寻找的示例配置。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myingress
spec:
rules:
- host: myurl.domain.com
http:
paths:
- path: /
backend:
serviceName: elasticsearch
servicePort: 9200
- path: /
backend:
serviceName: kibana
servicePort: 5602
有什么想法吗?
我刚刚在使用 HAProxy 入口控制器的邮件服务器项目上完成了这项工作(https://github.com/helm/charts/tree/master/incubator/haproxy-ingress) in TCP mode. Works a treat. Working config can be found at https://github.com/funkypenguin/docker-mailserver/blob/fa9bd9c9ed9b66aa6ee1c36ca19a73c558682f24/helm-chart/docker-mailserver/values.yaml#L300
D
对于你的问题,入口就是你想要的。您可以根据需要创建所有服务。并公开您的服务的端口。然后使用 public IP 创建入口,并创建入口路由,将访问从入口路由到后端服务。
看看Create an ingress controller in Azure Kubernetes Service (AKS)中的例子。它会告诉你需要完成哪些步骤。如果您还有其他问题,请告诉我。
抱歉,我 post 提出了另一个类似的问题。终于能够通过简单的标记解决问题。
不需要额外的 tools/code。
请参考我的post回答: