由于无法解析 AWS EKS 的 ingress-nginx 上的至少一个子网,构建模型失败

问题描述 投票:0回答:1

需要部署 ingress-nginx,因为 AWS ALB LB 不允许 ssl 直通,我部署如下 https://kubernetes.github.io/ingress-nginx/deploy/#aws

我的入口控制器上出现以下错误:

Failed build model due to unable to resolve at least one subnet (0 match VPC and tags)

在我的 AWS LB 入口资源上,我有以下注释来指定哪个子网、安全组,我是否需要类似的 ingress-nginx 的东西,还是我遗漏了一些东西?

      alb.ingress.kubernetes.io/subnets: APP-SUB-US-EAST-1A, APP-SUB-US-EAST-1B
      alb.ingress.kubernetes.io/backend-protocol: HTTPS
      alb.ingress.kubernetes.io/security-groups: sg-0fce858099

入口课程详情:

$ kubectl describe ingressclass
Name:         alb
Labels:       app.kubernetes.io/instance=aws-load-balancer-controller
              app.kubernetes.io/managed-by=Helm
              app.kubernetes.io/name=aws-load-balancer-controller
              app.kubernetes.io/version=v2.6.1
              helm.sh/chart=aws-load-balancer-controller-1.6.1
Annotations:  meta.helm.sh/release-name: aws-load-balancer-controller
              meta.helm.sh/release-namespace: kube-system
Controller:   ingress.k8s.aws/alb
Events:       <none>


Name:         nginx
Labels:       app.kubernetes.io/component=controller
              app.kubernetes.io/instance=ingress-nginx
              app.kubernetes.io/name=ingress-nginx
              app.kubernetes.io/part-of=ingress-nginx
              app.kubernetes.io/version=1.8.2
Annotations:  <none>
Controller:   k8s.io/ingress-nginx
Events:       <none>
Same issue if installing via helm with default ingress true:
Name:         nginx
Labels:       app.kubernetes.io/component=controller
              app.kubernetes.io/instance=ingress-nginx
              app.kubernetes.io/managed-by=Helm
              app.kubernetes.io/name=ingress-nginx
              app.kubernetes.io/part-of=ingress-nginx
              app.kubernetes.io/version=1.9.5
              helm.sh/chart=ingress-nginx-4.9.0
Annotations:  ingressclass.kubernetes.io/is-default-class: true
              meta.helm.sh/release-name: ingress-nginx
              meta.helm.sh/release-namespace: ingress-nginx
Controller:   k8s.io/ingress-nginx
Events:       <none>

入口-nginx-控制器错误:

$ kubectl describe svc ingress-nginx-controller -n=ingress-nginx
Name:                     ingress-nginx-controller
Namespace:                ingress-nginx
Labels:                   app.kubernetes.io/component=controller
                          app.kubernetes.io/instance=ingress-nginx
                          app.kubernetes.io/managed-by=Helm
                          app.kubernetes.io/name=ingress-nginx
                          app.kubernetes.io/part-of=ingress-nginx
                          app.kubernetes.io/version=1.9.5
                          helm.sh/chart=ingress-nginx-4.9.0
Annotations:              meta.helm.sh/release-name: ingress-nginx
                          meta.helm.sh/release-namespace: ingress-nginx
Selector:                 app.kubernetes.io/component=controller,app.kubernetes.io/instance=ingress-nginx,app.kubernetes.io/name=ingress-nginx
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       172.20.34.107
IPs:                      172.20.34.107
Port:                     http  80/TCP
TargetPort:               http/TCP
NodePort:                 http  32519/TCP
Endpoints:                10.134.242.144:80
Port:                     https  443/TCP
TargetPort:               https/TCP
NodePort:                 https  31233/TCP
Endpoints:                10.134.242.144:443
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type     Reason            Age                 From     Message
  ----     ------            ----                ----     -------
  Warning  FailedBuildModel  3m (x11 over 154m)  service  Failed build model due to unable to resolve at least one subnet (0 match VPC and tags)

使用

controller.ingressClassResource.default=true
安装,因为我也有 AWS ALB 控制器。

$ helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace --set controller.ingressClassResource.default=true

我还标记了我的公共子网:

kubernetes.io/role/elb  1
kubernetes.io/cluster/my-cluster    owned
kubernetes-ingress amazon-eks nginx-ingress
1个回答
0
投票

我也有同样的问题,使用内网的时候就没有问题了。我使用亚马逊 alb 我怀疑我的两个 VPCS 以及 ingress-NGINX 有问题

© www.soinside.com 2019 - 2024. All rights reserved.