WebHU - Programozási kérdések és válaszok

Kubernetes egyéni típusok erőforrásainak modellezése

A Kubernetes ökoszisztéma tetején egy véleménynyilvánító PaaS-szerű szolgáltatást építek.

Szeretnék egy SSHService-t és SSHUser-t modellezni, vagy kiterjesztem a Kubernetes API-szervert új típusok/sémák regisztrálásával (elég egyszerűnek tűnik), vagy egyéni erőforrások felhasználásával a ThirdPartyResource-on keresztül http://kubernetes.io/v1.1/docs/design/extending-api.html

Korábban saját API szerveremet építettem nem kubernetes infrastruktúrára. A modellezés módja az alábbiak szerint történt, tehát az adminisztrátor pihentető műveletekkel tegye:

1) SSH szolgáltatás létrehozása 2) SSh felhasználó létrehozása 3) Felhasználó hozzáadása az SSH szolgáltatáshoz

A harmadik művelet az SSH-szolgáltatás erőforrásán futna, amely ellenőrzi az univerzumot, hogy megbizonyosodjon arról, hogy létezik ref nevű SSH-felhasználó az univerzumban, mielőtt hozzáadná az engedélyezett felhasználói tömb attribútumához.

A Kubernetesben nem hiszem, hogy támogatott a kereszt-erőforrás-tranzakció, vagy szándékosan más dolgok modellezése** (például létrehozhatok egy pod-ot titkos kötettel, amely egy nem létező titkos névre hivatkozik, és ez elfogadott).

Tehát a Kubernetes világban szándékomban áll 1) SSh szolgáltatást létrehozni a .Spec.AllowedGroups [str] használatával 2) SSH-felhasználót létrehozni a .Spec.BelongToGroups [str] paranccsal, ahol a csoportok csak csoportnevek tömbje karakterláncként

A kubernetes kliens figyeli az ssh szolgáltatás és az ssh felhasználók változásait, amikor a készletek megváltoznak, és visszafrissítenek egy titkos kötetet (később configmap kötetet) az SSH-tárolóban használható passwd/shadow számára.

Ez egy ésszerű megközelítés az egyéni erőforrások modellezésére?

02.03.2016

Válaszok:


1

Az első reakció az, hogy ha már van saját API szerver, és működik, akkor nem kell átírni az API-t kubernetes stílusban. Csak megpróbálnám újra felhasználni azt, ami működik.

Ha át akarod írni, itt vannak a véleményeim:

Ha sok SSHS-szolgáltatásra van szüksége, és sok emberre van szüksége ahhoz, hogy az API-ját használja az SSHS-szolgáltatások létrehozásához, akkor célszerű az ssh-szolgáltatás paramétereit harmadik fél erőforrásként megjeleníteni.

De ha csak 1 vagy néhány SSHS-szolgáltatásod van, és ritkán frissíted, akkor nem hoznék létre hozzá harmadik fél erőforrást. Csak írnék egy RC-t, amely az SSH szolgáltatást futtatja. A Pod egy titkos (később configMap) kötetet tartalmaz, amely egy konfigurációs fájlt tartalmaz, az Ön által választott formátumban. A konfigurációs fájl tartalmazza az AllowedGroups-t. Ha megvan a v1.2 konfigurációs térképpel, ami egy hónap múlva lesz, akkor frissítheti a konfigurációt úgy, hogy elküld egy új konfigurációs térképet az apiserverre anélkül, hogy az SSH szolgáltatást újra kellene indítania. (Meg kell néznie a konfigurációs fájlt a változásokért). Alapvetően a configMap a ThirdParty erőforrás egyszerűbb változataként képzelhető el.

Ami az SSHU-felhasználókat illeti, használhat egy harmadik féltől származó erőforrást, és az SSH-vezérlő figyelheti az SSHU-felhasználók végpontját a változásokra. (Ha jobban belegondolok, nem tudom, hogyan nézel egy harmadik féltől származó forrást.)

Vagy talán csak a BelongToGroups információkat szeretné ugyanabba a ConfigMap-be helyezni. Ez megadja a kívánt "tranzakcionalitást". Ez csak azt jelenti, hogy a konfiguráció frissítései sorozatosak, és operátor vagy cron feladatra van szükség a konfiguráció leküldéséhez. Talán nem is olyan rossz?

02.03.2016
  • Köszönöm a felvilágosítást. Arra is kíváncsi voltam, hogy tudja-e, mi volt az inspiráció a Kubernetes api szerver API-tervezéséhez (erőforrásVerzió, metaadatok, specifikációk/állapot, címkék/annotációk, figyelési felület, feltételek...), mivel ez egy modellnek tűnik. ami a használat szempontjából agnosztikusabb lehet (nem csak a konténerkezelés) 03.03.2016
  • Egyetért azzal, hogy a K8s API modell lehet más json API-k számára. Nézze meg a kubernetes.github.io/docs/api és a github.com/kubernetes/kubernetes/blob/release-1.2/docs/devel / a részletes magyarázatért. 10.03.2016
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..