Open zhangzujian opened 4 weeks ago
Do you mean to run DaemonSet pod on each node?
Would running a deployment not be lighter? In any case, we need to have the content of the netfilter synced to avoid disruption when a node/nat gw pod crashes. If not possible, it will still be "HA", but there's gonna be TCP connection breakages on node/pod failures.
My use case is a NAT GW that can be "migrated" between nodes, the same way you'd migrate a VM. This is useful to drain a node for maintenance for example. Also right now, if a node crashes with a natgw on it, the nat gw will never come back because of statefulset mechanics in Kubernetes.
In any case, we need to have the content of the netfilter synced to avoid distruption when a node/nat gw pod crashes. If not possible, it will still be "HA", but there's gonna be TCP connection breakages on node/pod failures.
Currently we have no ability to sync conntrack entries between pods, so after a node/pod failure existing, connections will be broken and reconnection is needed.
Could we use a tool like conntrackd and only enable it on "handovers" when we want to switch traffic from one nat-gw to another? This mode could work great for migrations. Another mode could be implemented with permanent synchronization for very-HA usages where random crashes of nodes/pods should not cause any breakage.
Could we use a tool like conntrackd and only enable it on "handovers" when we want to switch traffic from one nat-gw to another? This mode could work great for migrations. Another mode could be implemented with permanent synchronization for very-HA usages where random crashes of nodes/pods should not cause any breakage.
conntrackd
seems ok.
How do we ensure compatibility with "old" gateways? Rollout a new API version?
Description
Implement high availability for vpc nat gateway, including iptables snat and eip.
We can:
requested-chassis
to change port binding.Who will benefit from this feature?
No response
Anything else?
No response