Auf OpenShift ist es möglich eine IP zu hinterlegen, welche für den kompletten Outgoing Traffic eine Projektes genutzt wird. Hierzu wurde ein Range definiert, aus dem bei Bedarf eine IP einem Projekt zugewiesen werden kann. (Achtung: Diese Lösung ist nicht HA und sollte nicht für produktiven Workload genutzt werden)
Es gibt grundsätzlich zwei Möglichkeiten, den Outgoing Traffic auf OpenShift zu managen
Damit ein Egress Router deployed werden kann, müssen die securitycontextconstraints.security.openshift.io
angepasst werden. Dadurch wird ermöglicht, dass der Pod ipfailover machen kann und die IP auf dem entsprechenden Pod/Node anhängt wird. Das bedeutet aber auch, dass dieser Pod als Root Container läuft und direkt von den Projekt Admins gemanaged werden muss. Dies ist gemäss unserer Richtlinien (Keine Container unter Root für nicht Infrastruktur Komponenten) untersagt.
# oc get netnamespace > egress_ips_namespace.txt # oc get hostsubnet > egress_ips_hosts.txt
Reservierter Range:
172.18.184.129-172.18.184.247 (IP_AUS_EH_RANGE)
172.28.184.129-172.28.184.247 (IP_AUS_ZF_RANGE)
# oc get hostsubnet NAME HOST HOST IP SUBNET EGRESS IPS vosie1.pnet.ch vosie1.pnet.ch 172.18.184.15 10.127.68.0/25 [172.18.184.129] vosie2.pnet.ch vosie2.pnet.ch 172.18.184.17 10.127.69.0/25 [] vosiz1.pnet.ch vosiz1.pnet.ch 172.28.184.17 10.127.70.0/25 [172.28.184.129] vosiz2.pnet.ch vosiz2.pnet.ch 172.28.184.11 10.127.71.0/25 [] vosme1.pnet.ch vosme1.pnet.ch 172.27.148.13 10.127.66.0/25 [] vosme2.pnet.ch vosme2.pnet.ch 172.27.148.12 10.127.65.0/25 [] vosmz1.pnet.ch vosmz1.pnet.ch 172.31.148.12 10.127.64.0/25 [] vosne1.pnet.ch vosne1.pnet.ch 172.18.184.14 10.127.67.0/25 [] vosne2.pnet.ch vosne2.pnet.ch 172.18.184.13 10.127.73.0/25 [] vosne3.pnet.ch vosne3.pnet.ch 172.18.184.11 10.127.74.0/25 [] vosne4.pnet.ch vosne4.pnet.ch 172.18.184.12 10.127.78.0/25 [] vosnz1.pnet.ch vosnz1.pnet.ch 172.28.184.12 10.127.76.0/25 [] vosnz2.pnet.ch vosnz2.pnet.ch 172.28.184.15 10.127.72.0/25 [] vosnz3.pnet.ch vosnz3.pnet.ch 172.28.184.16 10.127.75.0/25 [] vosnz4.pnet.ch vosnz4.pnet.ch 172.28.184.14 10.127.77.0/25 []
# oc patch hostsubnet vosie1.pnet.ch -p '{"egressIPs": ["ALLE BISHER DEFINIERTEN IPs!!!!","IP_AUS_EH_RANGE"]}'
# oc patch hostsubnet vosiz1.pnet.ch -p '{"egressIPs": ["ALLE BISHER DEFINIERTEN IPs!!!!","IP_AUS_ZF_RANGE"]}'
# oc patch netnamespace egress-test -p '{"egressIPs": ["RESERVIERTE_IP_EH","RESERVIERTE_IP_ZF"]}'
oc patch hostsubnet vosie1.pnet.ch -p '{"egressIPs": ["172.18.184.129", "172.18.184.130", "172.18.184.131", "172.18.184.132"]}' oc patch hostsubnet vosiz1.pnet.ch -p '{"egressIPs": ["172.28.184.129", "172.28.184.130", "172.28.184.131", "172.28.184.132"]}' oc patch netnamespace abegglenma-test-egress -p '{"egressIPs": ["172.18.184.129","172.28.184.129"]}'