Amazon-Web-Services

Kube 入口和 elb

  • October 23, 2018

我在 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。這是我的入口防禦…

   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

問題出在我的 Kops 配置中。我通過為我的 kube 主/工作節點所在的每個私有子網創建實用子網來糾正它。

引用自:https://serverfault.com/questions/933875