库伯内斯 (AKS) : Expose multiple ports of different service to common load balancer

标签 kubernetes kubernetes-ingress azure-aks

我正在 Azure 上设置 Kubernetes 集群(使用 AKS)来托管 Elasticsearch、Kibana、自定义 api、UI、nginx 等。

因为我不希望每个服务都有单独的公共(public) IP,所以我需要一种方法来设置通用负载均衡器/Ingress,然后只需将端口号添加到那里并设置路由。

我尝试使用这个 stackoverflow 问题中提到的方法 - How to expose multiple port using a load balancer services in kubernetes但没有成功。

由于有技术客户端连接到我的集群,我需要为每种技术提供服务。

基本上我需要公开 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

有什么想法吗?

最佳答案

对于你的问题,入口就是你想要的。您可以根据需要创建所有服务。并公开您的服务的端口。然后使用公共(public) IP 创建入口,并创建入口路由,将访问从入口路由到后端服务。

看看Create an ingress controller in Azure Kubernetes Service (AKS)中的例子.它会告诉你需要完成哪些步骤。如果您有更多问题,请告诉我。

关于库伯内斯 (AKS) : Expose multiple ports of different service to common load balancer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55700029/

相关文章:

azure - 让 nginx-ingress 在 Azure 中使用 UDP

kubernetes - 让 KubeDNS 工作的问题

amazon-web-services - 无法通过 SSH EKS 工作节点

kubernetes 创建有状态集,pod 未启动

docker - 如何修复 'container runtime is down,PLEG is not healthy'

azure - kubectl错误: You must be logged in to the server (Unauthorized) after some time in AKS

azure - 可执行 kubelogin 失败,退出代码为 1

Kubernetes/Kubectl打印所有 secret

kubernetes - 如何使用Spring Cloud Netflix容器在GKE中定义Ingress

nginx - 使用 nginx ingress 时是否有 pod 级 nginx 的意义?