Description
Kube-OVN Version
v1.13
Kubernetes Version
v1.30
Operation-system/Kernel Version
"Rocky Linux 8.10 (Green Obsidian)"
Description
vnode-103-177, vnode-117-46 are the external gw nodes and also worker nodes and vnode-103-176 is the master node and I deleted taint
NAME STATUS ROLES AGE VERSION
vnode-103-176 Ready control-plane 3d20h v1.30.10
vnode-103-177 Ready 3d20h v1.30.10
vnode-117-46 Ready 3d20h v1.30.10
vnode-103-177 ovn.kubernetes.io/external-gw=true
vnode-117-46 ovn.kubernetes.io/external-gw=true
vpc1 starter-backend-7ff5f85b46-8d9gh 1/1 Running 0 16m 192.168.0.4 vnode-103-176
starter-backend-7ff5f85b46-8d9gh is the pod which is running on the master node and non-external gw node.
my question is that I reboot two external gw nodes(vnode-103-177, vnode-117-46) but starter-backend-7ff5f85b46-8d9gh is still communicated, and I also checked ofctl of master node(non-external gw node vnode-103-176). I found some nat rule in there.
cookie=0x8f0de392, duration=1176.940s, table=15, n_packets=64, n_bytes=4994, idle_age=466, priority=100,ip,reg14=0x1,metadata=0x5,nw_dst=10.9.101.9 actions=ct(commit,table=16,zone=NXM_NX_REG11[0..15],nat(dst=192.168.0.4))
I thought that if all external gw is down, I should not be communicated by OEIP.
these are my configuration.
apiVersion: kubeovn.io/v1
kind: ProviderNetwork
metadata:
name: external0
spec:
defaultInterface: eth0
---
apiVersion: kubeovn.io/v1
kind: Vlan
metadata:
name: vlan0
spec:
id: 0
provider: external0
---
apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
name: external0
spec:
protocol: IPv4
cidrBlock: 10.9.0.0/16
gateway: 10.9.0.1
vlan: vlan0
excludeIps:
- 10.9.0.1..10.9.101.1
---
apiVersion: v1
kind: Namespace
metadata:
name: vpc1
---
kind: Vpc
apiVersion: kubeovn.io/v1
metadata:
name: vpc1
spec:
namespaces:
- vpc1
enableExternal: true
---
apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
name: vpc1-subnet1
spec:
cidrBlock: 192.168.0.0/24
default: false
disableGatewayCheck: false
disableInterConnection: true
enableEcmp: true
gatewayNode: ""
gatewayType: distributed
#gatewayType: centralized
natOutgoing: false
private: false
protocol: IPv4
provider: ovn
vpc: vpc1
namespaces:
- vpc1
---
kind: OvnEip
apiVersion: kubeovn.io/v1
metadata:
name: eip-static
spec:
externalSubnet: external0
type: nat
---
kind: OvnFip
apiVersion: kubeovn.io/v1
metadata:
name: eip-static
spec:
ovnEip: eip-static
ipName: starter-backend-7ff5f85b46-8d9gh.vpc1
Steps To Reproduce
- I referenced this page and configuration is same as https://kubeovn.github.io/docs/stable/en/advance/ovn-eip-fip-snat/
- oeip, ofip is confiugured.
Current Behavior
If two external gw nodes are rebooted, communicated by OEIP
curl 10.9.101.9
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Expected Behavior
If two external gw nodes are rebooted, I should not be communicated by OEIP