読者です 読者をやめる 読者になる 読者になる

GKEだとデフォルトでIngress Controller(=GLBC)がいる

おまえ、そこにいたのか

kubernetesでIngressでやる場合、Ingress Controllerが必要なんだけど、GKEの場合はマスターノード、つまりGCPのマネージドな領域でクラスター作成時に一緒に作られるようになってた。

で、これをGLBC(GCE Load-Balancer Controller) Cluster Addonという。

Ingress Controllerを作るときはgcenginxのclassが標準で用意されてたけど、このgceっていうやつはGLBCのことで、ただ、GLBCGKEだと最初からaddonされるから作らなくてよいということだった。

自分で作りたい場合は、cluster作成時に、コマンドとかAPI経由でのみ、外せる。GUIコンソールからだと無理だった。

GLBCとは

なんとなく、GCPにおいてあるロードバランサーのことだろって思ってたけど違う

これはkubernetes側が勝手に名前をつけたやつで、GCPのリソースを組み合わせてL7のロードバランサー相当のものを作る命令のあつまりみたいなもの。まさにcontroller。あと、ルーティングしたときにどこにもあてはまらないリクエストがきたときにデフォルトの404ページを出してくれるだけのバックエンドのセット。

Ingressを作ると、GLBCがたたかれて、GLBCがGCPAPIをたたいて、L7のロードバランサーを実現するために、GCPでL7ロードバランサーをするための設定をしてくれる。

f:id:masato47744:20170422023108p:plain

で、そのGLBCはどこにいるかっていうとGKEの場合は、cluster作成時にマスターノードに作られていたって話でした。kube-systemっていうnamespaceが基本的にcluster作成時にできるものなんだけど、ここにGLBC相当のものがいないのではまった。ただ、さっき言った404出してくれるl7-default-backendはNodeの方にいるのでこの管理画面に表示されてるのが分かる。

f:id:masato47744:20170422023135p:plain