From a76dbb4ff426d89008520524166dc5d7b573e24b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pomucz=20Tam=C3=A1s?= <pomucz@sch.bme.hu> Date: Sun, 6 Apr 2025 02:31:50 +0200 Subject: [PATCH] Add NetworkPolicy clarifications --- ingress-controller/values.yaml | 4 ++++ readme.md | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ingress-controller/values.yaml b/ingress-controller/values.yaml index 8185845..608bbe8 100644 --- a/ingress-controller/values.yaml +++ b/ingress-controller/values.yaml @@ -21,3 +21,7 @@ controller: labelSelector: matchLabels: app.kubernetes.io/instance: '{{ .Release.Name }}' + +# Create a network policy for the ingress controller. This will make it available from outside the cluster, as it will extend the default ingress restriction. + networkPolicy: + enabled: true \ No newline at end of file diff --git a/readme.md b/readme.md index 138512e..2f9fb6f 100644 --- a/readme.md +++ b/readme.md @@ -77,9 +77,11 @@ A vCluster egy nagy előnye, hogy minden tényleges munka a host klaszterben tö A vCluster-ben lehetőség van LoadBalancer típusú service létrehozására, ekkor egy publikus IP cím kerül allokálása automatikusan. Ha a service-t ellátod a `kszk.bme.hu/IPPool: private` label-el, akkor a 10.44.0.0/16 os tartományból allokált privát címet fog kapni, mely csak kolis hálózaton belül érhető el. Privát címből nagyon sok van, publikusból lényegesen kevesebb, sajnos nincs módunk ezekre külön quota-t helyezni, így csak 2 LoadBalancer címet tudtok allokálni tartománytól függetlenül összesen, viszont ha tudnátok használni többet nyugodtan vegyétel fel velünk a kapcsolatot. +A host klaszter podjai a Schönherz hálózatáról megcímezhető IP címeket kapnak. Ez azt jeleni, hogy nemcsak a saját IP-jét használja a pod amikor kifelé kommunikál, de azt is, hogy kolin belülről a pod IP címét használva el lehet érni azt. A nemkívánatos hozzáférések elkerülése érdekében a vClusterekhez alapértelmezés szerint létrehozásra kerül egy NetworkPolicy, ami korlátozza a forgalmat csak a vClusteren belülre ingress irányban. Ez a policy a host klaszterben kerül létrehozásra, a vClusteren belül nem látszik. Hátránya ennek, hogy a kubernetes network policy-k működése miatt mivel ez a policy engedélyez a vClusteren-en belül minden kommunikációt, és a NetworkPolicy szabályai additívak, ezért ennél szigorúbb korlátozás létrehozása nem lehetséges a vClusteren belül ingress irányban. Ez persze csak ingress irányban érvényes, egress irányban a network policy-k a megszokott módon működnek. Az alapértelmezett ingress korlátozás a service-ekre is vonatkozik, így egy LoadBalancer service is csak a vClusteren belülről lesz alapértelmezés szerint elérhető. Egy megengedőbb ingress network policy létrehozásával feloldható a korlátozás, tehát ha egy podra pl. egy mindent megengedő ingress policy kerül, akkor pod IP-je kolin belülről közvetlenül elérhetővé válik, valamint egy publikus LoadBalancer service mögötti pod globálisan elérhetővé válik. Kérés esetén az alapértelmezett ingress policy kikapcsolható, ekkor a vCluster használójának lesz a felelősége a nemkívánatos külső hozzáférés korlátozása. + # Hogyan tudok ingress-t használni? -Biztonsági okokból nem biztosítunk host clusteren keresztül ingress szolgáltatást a vClustereknek, így ingress erőforrások használatához egy saját ingress kontroller telepítése szükséges, ehhez segítségképpen található egy minta helm konfiguráció az ingress-controller mappában (nem kell azt használni, csak példának van). A telepítés lépései: +Biztonsági okokból nem biztosítunk host clusteren keresztül ingress szolgáltatást a vClustereknek, így ingress erőforrások használatához egy saját ingress kontroller telepítése szükséges, ehhez segítségképpen található egy minta helm konfiguráció az ingress-controller mappában (nem kell azt használni, csak példának van). A helm chart a szükséges network policy-t is létre fogja hozni. A telepítés lépései: - Legyen [helm](https://helm.sh/) a gépeden - Add ki a következő parancsot: ``` -- GitLab