Röviden: A megosztott klaszter költségallokációja csak címkézéssel és showback-kel válik igazságossá. Hogyan tedd láthatóvá, melyik csapat mennyit fogyaszt a közös klaszteren?
A megosztott Kubernetes-klaszter üzemeltetési szempontból hatékony: több csapat és sok szolgáltatás osztozik ugyanazon az infrastruktúrán, jó kihasználtsággal. Költségszempontból viszont fekete doboz: a klaszter számlája egyetlen tétel, amiről nem derül ki, melyik csapat, melyik szolgáltatás mennyit fogyasztott. A kérdés — „ki fizeti ezt a namespace-t?” — meglepően nehéz megválaszolni, ha nincs mögötte tudatos költségláthatóság.
Miért nehéz a Kubernetes-költség?
A nehézség onnan jön, hogy a klaszter erőforrásai (a mögöttes gépek) meg vannak osztva. A számla a gépekről szól, a fogyasztás viszont a rájuk telepített, sok különböző tulajdonoshoz tartozó workloadoké. A felhő számlázása nem látja ezt a belső felosztást — csak a klasztert, mint egészet. A leképezést a klaszteren belüli fogyasztásról a tulajdonosokra neked kell megoldanod.
Az alap: címkézés és névtér-fegyelem
Mint minden költségallokációnál, itt is a címkézés a fundamentum — csak Kubernetes-specifikus formában. A workloadokat következetes címkékkel (label) kell ellátni: melyik csapat, melyik termék, melyik környezet. A namespace-ek tiszta, tulajdonoshoz köthető felosztása pedig strukturális alapot ad az allokációnak.
- Minden workload kapjon következetes tulajdonos- és termékcímkét.
- A namespace-ek tükrözzék a szervezeti/tulajdonosi felosztást.
- A kényszerítés automatikus legyen — címke nélküli workload ne mehessen élesre.
Request vs. usage: a rejtett igazságtalanság
A Kubernetesben a workloadok erőforrást foglalnak (request) és ténylegesen használnak (usage) — és a kettő gyakran nagyon eltér. Ha csak a tényleges használatot allokálod, akkor a túlfoglaló csapatok „ingyen” blokkolnak kapacitást. Ha csak a foglalást, akkor a hatékonyakat bünteted. A jó allokáció mindkettőt figyelembe veszi, és ösztönzi a reális foglalást.
Showback: a viselkedésváltozás motorja
Amint a fogyasztás láthatóvá válik csapatonként, jön a showback: mindenki látja, mennyit fogyaszt. Ez önmagában elindítja a viselkedésváltozást — a csapatok elkezdik reálisan méretezni a foglalásaikat, leállítják a felesleges workloadokat. A cél nem feltétlenül a valós átterhelés (chargeback), hanem a láthatóság, ami felelősségtudatot teremt.
A közös infrastruktúra felosztása
Marad egy nehéz kérdés: a klaszter közös költségei (a vezérlősík, a megosztott szolgáltatások, a kihasználatlan tartalék kapacitás), amit egyetlen csapat sem birtokol. Ezt valamilyen igazságos kulcs szerint kell szétosztani — például a fogyasztás arányában —, és fontos, hogy a felosztás módja átlátható és elfogadott legyen, különben vita lesz belőle. A tökéletes pontosság itt kevésbé fontos, mint az elfogadott, következetes szabály.
A request vs. usage kérdés
A Kubernetesben a workloadok erőforrást foglalnak (request) és ténylegesen használnak (usage) — és a kettő gyakran nagyon eltér. Ha csak a tényleges használatot allokálod, akkor a túlfoglaló csapatok "ingyen" blokkolnak kapacitást. Ha csak a foglalást, akkor a hatékonyakat bünteted. A jó allokáció mindkettőt figyelembe veszi, és ösztönzi a reális foglalást.
Ez a szétválasztás teszi igazságossá a költségmegosztást: egy csapat, ami sokat foglal, de keveset használ, más beszélgetést érdemel, mint aki a foglalását tényleg kihasználja.
A címkézés és a showback
Mint minden költségallokációnál, itt is a címkézés a fundamentum — Kubernetes-specifikus formában. A workloadokat következetes címkékkel kell ellátni (melyik csapat, termék, környezet), és a namespace-ek tiszta, tulajdonoshoz köthető felosztása strukturális alapot ad. Amint a fogyasztás láthatóvá válik csapatonként, jön a showback: mindenki látja, mennyit fogyaszt.
- Következetes tulajdonos- és termékcímkék minden workloadon.
- Tiszta, tulajdonoshoz köthető namespace-felosztás.
- Automatikus kényszerítés: címke nélküli workload ne mehessen élesre.
A közös költségek felosztása
Marad egy nehéz kérdés: a klaszter közös költségei (a vezérlősík, a megosztott szolgáltatások, a kihasználatlan tartalék kapacitás), amit egyetlen csapat sem birtokol. Ezt valamilyen igazságos kulcs szerint kell szétosztani — például a fogyasztás arányában —, és fontos, hogy a felosztás módja átlátható és elfogadott legyen. A tökéletes pontosság itt kevésbé fontos, mint a következetes, elfogadott szabály, ami nem szül vitát.
Mit jelent ez neked?
A megosztott Kubernetes-klaszter költsége csak akkor válik igazságossá és kezelhetővé, ha láthatóvá teszed, ki mennyit fogyaszt. Az alap a következetes címkézés és a tiszta namespace-felosztás, automatikusan kikényszerítve. Nézd a foglalást és a tényleges használatot is, hogy az allokáció igazságos legyen, és vezess be showbackot — a puszta láthatóság elindítja a reálisabb erőforrás-gazdálkodást. A közös költségeket oszd fel átlátható, elfogadott kulcs szerint. A cél, hogy a „ki fizeti a namespace-t?” kérdésre végre legyen válasz.