【发布时间】:2019-02-09 08:12:38
【问题描述】:
我正在尝试向内部负载平衡器添加入口规则。根据码头,它可以被重定向到服务。只要服务是“ClusterIP”,它就可以工作,但当它的“LoadBalancer”时会无限重定向
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- demo.azure.com
secretName: aks-ingress-tls
rules:
- host: demo.azure.com
http:
paths:
- path: /
backend:
serviceName: aks-helloworld
servicePort: 80
- path: /demo
backend:
serviceName: demo-backend
servicePort: 80
https://demo.azure.com 有效,但 https://demo.azure.com/demo 无效。区别在于 aks-helloworld 是 ClusterIP 而 demo-backend 是 LoadBalancer
13:33 $ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
aks-helloworld ClusterIP 10.0.204.168 <none> 80/TCP 15m
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 16h
demo-backend LoadBalancer 10.0.198.251 23.99.128.86 80:30332/TCP 15h
【问题讨论】:
-
虽然我不知道你关于 LB 问题的具体答案,因为我不能说我已经尝试过那个特定的设置,但不要忘记你总是可以创建一个 @987654327 @
Service使用相同的ports:和selector:并将您的 Ingress 指向 那个,如果没有其他原因,只是作为一个有趣的故障排除练习 -
根据the fine manual,确实看起来
rewrite-target在您的设置中没有做任何积极的事情;你试过删除它吗?更好的是,您试图用它做什么? -
您的演示后端 LoadBalancer 服务上是否有此注释 `service.beta.kubernetes.io/azure-load-balancer-internal: "true"`?
-
@MatthewLDaniel 我尝试使用 ClusterIP 创建 demo-backend2 并指出入口仍然无法正常工作。也删除了 rewrite-target 。它只是说“页面没有正确重定向”我正在关注docs.microsoft.com/en-us/azure/aks/ingress-own-tls
-
@Alex 我添加了 annonation ,似乎没有任何区别。这是为了什么,
标签: azure kubernetes kubernetes-helm kubernetes-ingress azure-aks