需要部署 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
我也有同样的问题,使用内网的时候就没有问题了。我使用亚马逊 alb 我怀疑我的两个 VPCS 以及 ingress-NGINX 有问题