Closed4
aws-load-balancer-controllerがサブネットを検知できるようにする
概要
以下のようにエラーが出てALBのデプロイが出来ませんでした
使っているのはaws-load-balancer-controllerです
Warning FailedBuildModel 4s (x12 over 16s) ingress Failed build model due to couldn't auto-discover subnets: unable to resolve at least one subnet (0 match VPC and tags: [kubernetes.io/role/elb])
サブネットが見つけられない、とあるので原因は明白です。
以下を参考にいろいろ試してみます。
バージョン
aws-load-balancer-controller 2.8.1
① 直接サブネットを指定する
サブネットIDをingressのマニフェストに追加
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: apps-ingress
namespace: apps
annotations:
alb.ingress.kubernetes.io/subnets: subnet-1xxxxxxxx, subnet-2xxxxxxxx
すると問題なくデプロイされました
Warning FailedBuildModel 5m53s (x17 over 11m) ingress Failed build model due to couldn't auto-discover subnets: unable to resolve at least one subnet (0 match VPC and tags: [kubernetes.io/role/elb])
Normal SuccessfullyReconciled 24s (x2 over 47s) ingress Successfully reconciled
② サブネットにタグをつける
サブネットにタグをつけ、それを自動で検知してもらう方法です。
検証にはパブリックサブネットを利用しているため
タグキー:kubernetes.io/role/elb
タグバリュー:1
とします。
こちらも問題なくデプロイ出来ます。
まとめ
サブネットを指定/タグ付けすることでALBを召喚できました。
前者はk8s、後者はAWS側で管理出来るため、運用に優しいほうを選ぶのがいいと思いました。
このスクラップは5ヶ月前にクローズされました