Repository navigation
v0.4.4
追加
- fleet の rproxy の Pod が VIP を直接持てるようになりました(#43・#44)。chart の
fleet.vip(既定は off)。- Pod ごとの
vipコンテナ(rproxy-gateway vip)が、VIP ごとに Kubernetes の Lease でリーダーを選び、自分のノードに VIP を付けて gratuitous ARP(IPv6 は unsolicited NA)で知らせます。 - VIP を持つのは、rproxy が準備を終え(
/readyz)、コントローラがルールを当て終えた Pod だけです。rproxy が止まり始めたとき・Pod の終了・ノードの cordon では、先に VIP を外してから Lease を空けます。計画した移動(Pod の削除・入れ替え・drain)は 1 秒未満で移ります(受け入れテストで 0.1〜1.2 秒の途切れ)。 - Kubernetes の API サーバに届かないときは、既定で VIP を持ち続けます(
hold、releaseも選べます)。ほかの機械が同じ VIP を告げたら手放します。 - Lease の既定:期限 3 秒・更新 1 秒・やり直し 0.5 秒。
- VIP は管理者が
fleet.vip.addressesに並べたものだけで、Gateway のspec.addressesはその中から選びます(addressCIDRsの外や、Service・ノードと重なるものは使いません)。持ち主のいない VIP を使う Gateway はProgrammed: False(AddressNotUsable)。 - Kustomize の例
config/samples/fleet-vip。
- Pod ごとの
- rproxy を rproxy-api v0.4.2 にしました(イメージ
ghcr.io/max3584/rproxy-gateway/rproxy:0.4.2)(#45)。
変更
- rproxy v0.4.2 はトークンファイルを自分で読み直すので、UI を有効・無効にしても Pod を入れ替えません。fleet でも手での
rollout restartは要りません。UI の一覧には、UI のトークンを受け付けると確かめた Pod だけを載せます。 - VIP を使うとき、
vipコンテナはNET_ADMIN・NET_RAWと、自分の Pod・ノードを読む権限、Lease の権限を持ちます。fleet の namespace の PodSecurity はprivilegedが要ります(docs/SECURITY.md)。VIP を使わない入れ方は変わりません。
rproxy: rproxy-api v0.4.2 · UI: TCP-UDP-rproxy-ui v0.4.2
Added
- fleet rproxy pods can hold VIPs directly (#43, #44), chart
fleet.vip(off by default).- A
vipcontainer per pod (rproxy-gateway vip) elects a leader per VIP with a Kubernetes Lease, adds the VIP on its node and announces it with gratuitous ARP (unsolicited NA for IPv6). - Only a pod whose rproxy is ready (
/readyz) and has its rule sets applied holds a VIP. When rproxy starts stopping, the pod terminates or the node is cordoned, the VIP is removed first and then the Lease released. Planned moves (pod deletion, rollout, drain) hand over in under a second (0.1–1.2 s gaps in the acceptance test). - If the Kubernetes API server is unreachable the VIP is kept by default (
hold;releaseis available). Another machine announcing the same VIP makes it let go. - Lease defaults: duration 3 s, renew 1 s, retry 0.5 s.
- VIPs are only those an admin lists in
fleet.vip.addresses; a Gateway'sspec.addressespicks from them (never outsideaddressCIDRs, nor overlapping Services or nodes). A Gateway on a VIP without a holder getsProgrammed: False(AddressNotUsable). - Kustomize example
config/samples/fleet-vip.
- A
- rproxy is now rproxy-api v0.4.2 (image
ghcr.io/max3584/rproxy-gateway/rproxy:0.4.2) (#45).
Changed
- rproxy v0.4.2 re-reads its token file, so enabling or disabling the UI no longer rolls pods, and fleet no longer needs a manual
rollout restart. The UI list only includes pods confirmed to accept the UI token. - With VIPs, the
vipcontainer hasNET_ADMIN,NET_RAW, read access to its own pod and node, and Lease permissions; the fleet namespace needs theprivilegedPodSecurity level (docs/en/SECURITY.md). Installs without VIPs are unchanged.
rproxy: rproxy-api v0.4.2 · UI: TCP-UDP-rproxy-ui v0.4.2