Привет, у вас есть два способа достичь этого двумя способами ... В зависимости от ваших потребностей (и Azure затрат ...):
1-Используйте Azure Шлюз приложений . Для себя использую Terraform . И здесь вы можете увидеть официальную документацию относительно внутреннего IP-адреса .
Теперь вы можете использовать его в качестве нового Ingress (и избавиться от NGINX), например:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: guestbook
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
rules:
- http:
paths:
- backend:
serviceName: frontend
servicePort: 80
Или вы можете использовать NGINX внутри в качестве входа, как описано в варианте 2.
2- Сначала у вас должен быть IP Publi c с привязанным к нему балансировщиком нагрузки. из этого LB должен соответствовать вашим потребностям.
Но вот трюк ... Не создавайте NGINX с этим publi c IP, но с внутренним IP и внутренним балансировщиком нагрузки, вы можете посмотрите, как это сделать, по следующему URL-адресу:
https://docs.microsoft.com/en-us/azure/aks/ingress-internal-ip
И важная вещь, которую вы должны сделать, это nginx ovveride в параметрах руля:
controller:
service:
loadBalancerIP: 10.240.0.42
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
Конечно, внутренний VNET должен быть создан, а IP-адрес балансировщика нагрузки должен быть правильным.
И последний трюк, теперь у вас есть NGINX прослушивание за частным IP для проверки вашего трафика c с Publi c IP перенаправлен cted на этот внутренний VNET ... Конечно, это зависит от того, как у вас настроена инфраструктура за этим LB, который содержит publi c IP.