ロードバランサー
Run several upstreams behind one public endpoint. Start simple, then add health checks and runtime controls.
2つのアップストリーム
[[vhosts.routes]]
name = "app"
path_prefix = "/"
action = "proxy"
[vhosts.routes.proxy]
upstreams = [
"10.0.0.11:8080",
"10.0.0.12:8080",
]
upstream_weights = [100, 50]
upstream_aliases = ["app-a", "app-b"]
バランシング制御
| 制御 | 使う場面 |
|---|---|
upstream_weights | バックエンドに異なるトラフィック割合を割り当てたい場合。 |
backup_upstreams | 一部のバックエンドを主候補失敗時だけ使いたい場合。 |
drain_upstreams | バックエンドは既存作業を終えるが新規トラフィックを受け取らない状態にしたい場合。 |
disabled_upstreams | バックエンドをローテーションから外したままにする必要がある場合。 |
upstream_max_in_flight | バックエンドにローカル同時実行上限が必要な場合。 |
動的upstreamファイル
[vhosts.routes.proxy]
upstreams_file = "/run/fluxheim/backends/app.txt"
upstreams_file_refresh_secs = 5
重み、別名、backup、drain、disabled stateが必要な場合は静的upstreamsを使います。FileおよびDNS refreshed poolsは意図的に契約を小さくしています。
得られるもの
- Focused load-balancer release images are available.
- ヘルスチェックは壊れたバックエンドをローテーションから外せます。
- ドレインと強制停止操作はメンテナンス時間帯で役立ちます。
- セッションに安定したバックエンドが必要な場合はmanaged-cookie affinityを使えます。