Official documentation: https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/ovn-kubernetes_network_plugin/configuring-egress-ips-ovn
Tested with:
| Component |
Version |
| OpenShift |
v4.19.14 |
Prepare cluster
| % oc get nodes -l node-role.kubernetes.io/worker
NAME STATUS ROLES AGE VERSION
ocp1-worker-0 Ready worker 79d v1.32.5
ocp1-worker-1 Ready worker 79d v1.32.5
ocp1-worker-2 Ready worker 79d v1.32.5
% oc label node/ocp1-worker-0 k8s.ovn.org/egress-assignable=""
node/ocp1-worker-0 labeled
% oc label node/ocp1-worker-1 k8s.ovn.org/egress-assignable=""
node/ocp1-worker-1 labeled
% oc label node/ocp1-worker-2 k8s.ovn.org/egress-assignable=""
node/ocp1-worker-2 labeled
oc apply -f - <<EOF
heredoc> apiVersion: k8s.ovn.org/v1
kind: EgressIP
metadata:
name: egress-coe
spec:
egressIPs:
- 10.32.105.72
- 10.32.105.73
namespaceSelector:
matchLabels:
egress: coe
heredoc> EOF
egressip.k8s.ovn.org/egress-coe created
|
Deployment
| oc new-project rbohne-egress
oc deploy -k simple-nginx...
oc rsh deployment/simple-nginx
curl $WEBSERVER
oc label namespace/rbohne-egress egress=coe
|
| 10.32.96.44 - - [31/Aug/2025:11:54:00 +0200] "GET / HTTP/1.1" 301 247 "-" "curl/7.76.1"
10.32.105.72 - - [31/Aug/2025:11:56:31 +0200] "GET / HTTP/1.1" 301 247 "-" "curl/7.76.1"
|
Check IP on the node
| sh-5.1# ip -br a show dev br-ex
br-ex UNKNOWN 10.32.105.69/20 169.254.0.2/17 10.32.105.72/32
sh-5.1#
|
2025-09-24
2025-08-31
Contributors: