GKEだとデフォルトでIngress Controller(=GLBC)がいる
おまえ、そこにいたのか
kubernetesでIngressでやる場合、Ingress Controllerが必要なんだけど、GKEの場合はマスターノード、つまりGCPのマネージドな領域でクラスター作成時に一緒に作られるようになってた。
で、これをGLBC(GCE Load-Balancer Controller) Cluster Addonという。
Ingress Controllerを作るときはgceかnginxのclassが標準で用意されてたけど、このgceっていうやつはGLBCのことで、ただ、GLBCはGKEだと最初からaddonされるから作らなくてよいということだった。
自分で作りたい場合は、cluster作成時に、コマンドとかAPI経由でのみ、外せる。GUIコンソールからだと無理だった。
GLBCとは
なんとなく、GCPにおいてあるロードバランサーのことだろって思ってたけど違う
これはkubernetes側が勝手に名前をつけたやつで、GCPのリソースを組み合わせてL7のロードバランサー相当のものを作る命令のあつまりみたいなもの。まさにcontroller。あと、ルーティングしたときにどこにもあてはまらないリクエストがきたときにデフォルトの404ページを出してくれるだけのバックエンドのセット。
Ingressを作ると、GLBCがたたかれて、GLBCがGCPのAPIをたたいて、L7のロードバランサーを実現するために、GCPでL7ロードバランサーをするための設定をしてくれる。
で、そのGLBCはどこにいるかっていうとGKEの場合は、cluster作成時にマスターノード
に作られていたって話でした。kube-systemっていうnamespaceが基本的にcluster作成時にできるものなんだけど、ここにGLBC相当のものがいないのではまった。ただ、さっき言った404出してくれるl7-default-backend
はNodeの方にいるのでこの管理画面に表示されてるのが分かる。