AWSは、Application Load Balancer(ALB)IngressコントローラーのブランドをAWS Load Balancer Controllerに変更し、Application Load BalancerとNetworkLoadBalancerの両方のサポートを追加した。パブリックベンダーであるAWSは最近、新しいコントローラー、つまりAWS ALB Ingress Controller v2としてラベル付けされたこのロードバランサーコントローラーの名前変更と更新を発表した。
数年前から利用可能な既存のAWS Application Load Balancer Ingress Controller(v1)がある。これは、アプリケーションロードバランサーを使って入力リソースを管理するものである。新しいAWS Load Balancer Controllerはより汎用的で、アプリケーションの負荷分散とネットワークの負荷分散を行う。さらに、AWSは、下に記載の新しい機能を新しいロードバランサーコントローラーに追加した。
- Kubernetesサービス用のネットワークロードバランサー(NLB)
- 複数のKubernetes入力ルールを使ってALBを共有する機能
- 新しいTargetGroupBinding
新しいコントローラーの利点の1つは、ユーザがサービスに簡単なアノテーションを付けてFargateポッド用のNLBを作成できることである。
kind: Service
apiVersion: v1
metadata:
name: nlb-ip-svc
annotations:
# route traffic directly to pod IPs
service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
AWSのブログ投稿によると、NLB IPターゲティングモードは、Fargateのコンテキスト外でも、NLBへのポッド登録を最適化するのに役立つ可能性があることに注意してください。さらに、ブログ投稿の寄稿者であるAWSのシニアディベロッパーアドボケートであるJustin Garrison氏は次のように書いている。
IPターゲティングモードを使用すると、各サービスに属する特定のポッドのみがターゲットとして追加されます。これにより、NLBがトラフィックをポッドに直接分散できるようになり、遅延が減少し、スケーラビリティが向上します。これにより、大規模なクラスター内のターゲットグループが小さくなり、管理の複雑さを軽減することができます。
さらに、新しいALBコントローラーのその他の利点の1つは、AWSのコンテナーサービスの開発者であるNathan Peck氏のツイートは次のとおりである。
Kubernetes向けのALB入力コントローラーは、異なるルーティングルールを使用して、複数の入力間で単一のALBを共有できるようになりました。小さなワークロードとマイクロサービスのコストを節約するための優れた方法です。
最後に、新しいAWS Load Balancer Controllerで、ユーザはTargetGroupBindingと呼ばれるカスタムリソース(CR)を使用して、既存のターゲットグループを使用してポッドを公開できるようになった。TargetGroupBindingを使用すると、ユーザは完全にKubernetesの外部でロードバランサーを管理できる。それにも関わらず、Kubernetesオブジェクトに存在する構成でそのロードバランサーを使用できる。
apiVersion: elbv2.k8s.aws/v1alpha1
kind: TargetGroupBinding
metadata:
name: SearchFilterApp # create a new TargetGroupBinding called SearchFilterApp
spec:
serviceRef:
name: search-svc # route traffic to the search-svc
port: 80
targetGroupARN: <arn-to-targetGroup>
現在、顧客はすべてのEKSクラスターにAWS Load Balancerをインストールできる。そして、ドキュメントウェブサイトのガイダンスとバージョン1から2に移行するためのオープンソース移行ガイドが提供される。さらに、NLB IPモードはKubernetesバージョン1.18を実行しているEKSクラスターでサポートされることに注意してください。そして、AWSは、古いクラスターのサポートがまもなく提供されることを示した。