Closed2
AWS EKSでService(Type: LoadBalancer)を作成すると自動的にLBが生成されるので調査してみた結果
初めに
AWS EKS上でService(Type: LoadBalancer)を作成すると指定に応じたLBが生成されるので「何が」「どのように」動いているのかを調査します。
調査環境
- AWS EKS v1.24の情報を元に調査
手がかり
AWS公式ドキュメント[1]には以下の記載があります。
タイプ LoadBalancer の Kubernetes Service を作成する際、デフォルトでは AWS クラウドプロバイダーロードバランサーコントローラーにより AWS Classic Load Balancer が作成されますが、AWS Network Load Balancer も作成できます。このコントローラーは、将来の重大なバグ修正のみを受けています。
そしてEKSのCloudWatch Logsには「cloud-controller-manager-xxx
」というログが残されており、それをみていくと以下の行を発見。
I0317 07:25:37.371296 11 aws_loadbalancer.go:183] Creating load balancer for <namespace>/<servicename> with name: <loadBalancerName>
どうやらaws_loadbalancer.go
の183行目に行くと該当のソースコードを発見できそうですね。
調べてみる
"aws_loadbalancer.go"
でGoogle検索すると以下のレポジトリを発見。ドンピシャですね。
蛇足
昔はkubernetesレポジトリで管理されてたみたいですが各プロバイダごとにレポジトリを作って管理するようにしたみたいです。
このスクラップは2023/03/17にクローズされました