Я запускаю свой кластер (kops) kube на AWS. Кластер находится в частной подсети. Я не могу создать внешний (выходящий в Интернет) балансировщик нагрузки, потому что мой кластер находится в частном пространстве. Есть ли способ создать балансировщик нагрузки с выходом в Интернет с моим кластером, находящимся в частном пространстве, если это не возможное решение, как мне предоставить внешнему миру мою службу, работающую внутри моего куба?
Я создаю с помощью аннотации ниже для моей службы
kind: Service
metadata:
name: helloweb
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
Если я не использую "-внутренний" в аннотации, служба переходит в состояние ожидания.
Normal EnsuringLoadBalancer 9s (x3 over 24s) service-
controller Ensuring load balancer
Warning CreatingLoadBalancerFailed 8s (x3 over 24s) service-
controller Error creating load balancer (will retry): failed to
ensure load balancer for service default/helloweb: could not find
any suitable subnets for creating the ELB
Я тоже пробовал ingress, даже ingress не может создать внешний эльб. Вот моя входная защита ...
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
kubectl get ing
NAME HOSTS ADDRESS PORTS AGE
ingress-rules exampleapp1.kubexpress.cloud,exampleapp2.kubexpress.cloud internal-
l0adbalancer.eu-central-1.elb.amazonaws.com 80 10d
Проблема была в моей конфигурации Копса. Я исправил это, создав служебную подсеть для каждой частной подсети, в которой будут находиться мои мастер / рабочие узлы kube.