Azure AKS 中的入口 IP

3

我正在使用az aks实现这个示例。 我想使用ingress来轻松地使用反向代理,就像示例中一个容器重定向到/tea,另一个容器基于简单规则重定向到/coffee

  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /tea
        backend:
          serviceName: tea-svc
          servicePort: 80
      - path: /coffee
        backend:
          serviceName: coffee-svc
          servicePort: 80

我按照步骤操作,但是Azure不会给我的入口分配IP地址,您可以看到。
$ kubectl get ingress
NAME           HOSTS                  ADDRESS   PORTS     AGE
demo-ingress   demo.mydomain.com             80, 443   17h

我认为Azure只会给负载均衡器提供IP地址。是否有一些解决方法或工具可以绕过这个问题?我能否以某种方式让azure给我的入口分配一个IP地址?
作为额外的信息,我也尝试使用`helm:`。
helm install stable/nginx-ingress --set controller.publishService.enabled=true

然而,我是一个完全的新手,似乎什么也做不了。


嗨@Silgon,据我所知,Ingressing是第7层的一部分,它根据路径或名称路由流量。如果您想获取外部IP地址,则需要使用type = LoadBlalancer,这是第3和第4层的一部分。 - Suresh Vishnoi
1
你好,你可以使用 type=loadbalancer 来暴露你的内部入口控制器。我在你提供的链接ingress-loadbalancer中找到了一个例子。 - Suresh Vishnoi
1
嗨,很高兴它起作用了。我可以理解有很多隐藏的功能需要发掘。我发现下面这篇文章非常全面,可以帮助你理解一些目的和功能。现代负载均衡。好好阅读吧。 - Suresh Vishnoi
嗨Silgon,问题已经解决了。你可以发布带有解决方案的答案。我们可以关闭这个问题了。 - Suresh Vishnoi
谢谢提醒,@SureshVishnoi,我明天会做的,今天有很多事情要处理 =) - silgon
显示剩余3条评论
1个回答

3
我花了一些时间才发布答案。我想更好地理解容器中发生了什么。
无论如何,我测试的实现存在问题,即必须安装与 Azure 兼容的 Ingress 控制器(这是我的最佳猜测,但我并不是专家)。安装 Ingress 控制器的步骤在此处
所有相关文档都在/install文件夹中。最终我创建了一个包含以下指令的makefile
kubectl apply -f install/common/ns-and-sa.yaml
kubectl apply -f install/common/default-server-secret.yaml
kubectl apply -f install/common/nginx-config.yaml
kubectl apply -f install/rbac/rbac.yaml
kubectl apply -f install/deployment/nginx-ingress.yaml
kubectl apply -f install/daemon-set/nginx-ingress.yaml
kubectl create -f install/service/nodeport.yaml
kubectl apply -f install/service/loadbalancer.yaml
kubectl get svc nginx-ingress --namespace=nginx-ingress

虽然有点麻烦,但只要在我的Makefile中只有一个命令,那就可以了。

我希望这对于遇到相同问题的人有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接