yuntan_t@:rice: is a user on mstdn.harusamex.com. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.
yuntan_t@:rice: @yuntan_t

@okumin こんばんは.mastodon on GKE についてお聞きしたいことがあるのですがよろしいでしょうか?load balancingにはk8sのIngressをお使いですか?もし使っておられるなら,railsとnodeのPodのreadinessProbeはどのように設定されていますか?

@yuntan_t Ingress を使っています。
probe は次のような感じで設定してます。
```
readinessProbe:
failureThreshold: 5
httpGet:
path: /healthz
port: 3000
scheme: HTTP
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 5
```

お気づきだと思いますが、mastodon はヘルスチェックに使えるエンドポイントがありません。
Rails の方は非 TLS 通信をリダイレクトしますし、node の方はそもそも全エンドポイントに認証が必要です。
そのため、パッチを当ててヘルスチェックエンドポイントを用意しました。
github.com/okumin/mastodon/com

@yuntan_t ただこれは自分もあとで気づいたのですが、Ingress で作成される L7 ロードバランサーは WebSocket に対応していないようです。
cloud.google.com/compute/docs/

使ってる感じ、L7 LB でもそんなに機能的におかしな点は感じていないのですが、余裕があれば K8S の Service を使って L4 LB を立てたほうがよいかもしれません。

@okumin 貴重な知見を共有していただきありがとうございます.readnessProbeとしてtcpSocketを設定してもIngressにunhealthyと判定されてしまうので,他の方はどうされているのかと思いお聞きしました.現時点のGKEでIngressを使うにはご回答いただいたようにパッチを当てるしかなさそうですね.

mastodonでGCSを使う方法についての記事もとても参考になります.ありがとうございます.

@yuntan_t
ExecAction は試したのですが、設定しても「/」への HTTP アクセスで LB のヘルスチェックが行われちゃったので諦めました。
でも何かミスってるだけで、実は HTTP じゃなくてもうまくいく可能性はあります……

kubernetes.io/docs/concepts/wo

@yuntan_t ウラル指定しろって書いてあるので、やはり http でヘルスチェックするしかないのかもしれません。
github.com/kubernetes/ingress/