Kube Ingress 和 elb

Kube Ingress 和 elb

我在 AWS 上运行我的 (kops) kube 集群。该集群位于私有子网中。我无法创建外部(面向互联网)负载均衡器,因为我的集群位于私有空间中。有没有办法让我的集群位于私有空间中,从而创建面向互联网的负载均衡器?如果这不是可行的解决方案,我该如何将运行在 kube 内的服务公开给外界?

我正在使用以下注释为我的服务创建

    kind: Service
    metadata:
    name: helloweb
    annotations:
      service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0

如果我不在注释中使用“-internal”,服务将进入待处理状态

     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 无法创建外部 elb。这是我的 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

答案1

问题出在我的 Kops 配置中。我通过为我的 kube 主节点/工作节点所在的每个私有子网创建实用程序子网来纠正它。

相关内容