Я создал кластер AKS с Terraform.Я хочу, чтобы кластер имел LoadBalancer и статический общедоступный IP-адрес, и я хочу, чтобы они уже существовали в моих определениях Ingress Controller / LoadBalancer Service, поскольку я не хочу, чтобы они динамически создавались / удалялись манифестами Kubernetes.
Поэтому я также создал с помощью Terraform LoadBalancer и статического общедоступного IP-адреса в группе ресурсов узла и с базовым SKU в соответствии с рекомендациями документации и подключил общедоступный IP-адрес к LB.
Затем я создал службу типа LoadBalancer:
---
kind: Service
apiVersion: v1
metadata:
name: my-service
spec:
type: LoadBalancer
loadBalancerIP: 8.8.8.8 (the public static IP allocated by Terraform)
selector:
name: my-pods-selector
ports:
- name: my-port
protocol: TCP
port: 1234
targetPort: 1234
Затем служба застревает в состоянии ОЖИДАНИЯ, и describe
дает мне следующее:
$ kubectl describe svc my-service
[...]
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal EnsuringLoadBalancer 5s (x9 over 15m) service-controller Ensuring load balancer
Warning CreatingLoadBalancerFailed 4s (x9 over 15m) service-controller Error creating load balancer (will retry): failed to ensure load balancer for service my-service: timed out waiting for the condition
Мне не удается найти дополнительную информацию об ошибке в выводе команды describe
:
Error creating load balancer (will retry): failed to ensure load balancer for service my-service: timed out waiting for the condition
Кроме того, если не создается предварительно LoadBalancer, а только общедоступный IP-адрес, создается LoadBalancer.динамически, и все идет хорошо.
Вопрос: Как успешно сделать Azure (какой параметр конфигурации мне не хватает?) использовать tон уже существовал LB?
- Kubernetes версия: 1.13.5