• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    FALLENANGEL
    FALLENANGEL --- ---
    JON: :P 'jako jo, no...'
    FALLENANGEL
    FALLENANGEL --- ---
    REFLEX: Jako jo, Kubernetes zvlada orchestrovat opravdu velky prostredi, takze pokud mas jednu malou appku v par kontejnerech, je to trochu overkill. Na druhou stranu kdyz tomu venujes cas a naucis se to, tak s nim muzes delat opravdu zajimavy veci. Nemluve o tom, o kolik stoupne tvoje cena na trhu prace ;)

    Jenom si ted nejsem jistej, jestli porad podporujou Docker jako container runtime.
    JON
    JON --- ---
    REFLEX: jako jo, a ne - kdyz chces jen pustit par apek v kontejnerech je to nesmysl.
    Ale jakmile nad tim chces nejake blue-green, canary deploymenty, nebo rolling update / zero downtime, pripadne testy celeho deploymentu usetri to fakt hrozne moc prcani.
    Proste to tam uz je vymysleny a udelany, a kdyz to budes chtit zorchestrovat nejak jinak, tak to budes muset napsat nejak sam.
    REFLEX
    REFLEX --- ---
    FALLENANGEL: ale kubernetes zas je takovej kanon na vrabce :)
    FALLENANGEL
    FALLENANGEL --- ---
    REFLEX: Asi jdu s krizkem po funuse, ale tohle velmi dobre zvlada Kubernetes, jak psal MUXX.

    Deployments | Kubernetes
    https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

    Pokud by te zajimaly blue/green nebo canary deploymenty, tak si mysli, ze bys potreboval ke Kubernetu nasadit Istio, ktery to zvlada velmi dobre.
    JON
    JON --- ---
    A este jeden dotaz - na fyzickem stroji si spoustim LXD container, uvnitr nainstaluju docker, v docker neco spustim - potud krasa nadhere, presne to co jsem hledal. ALE:
    Pokud je LXD container ubuntu/18.04, ubuntu/20.10 nebo debian/9 (z ofiko image repa) tak to bezi OK.
    Kdyz je ale LXD container debian/10, tak sam se na internet dostane, uvnitr nej bezici docker kontejnery se ale na internet dostanou jen kdyz jsou privileged. Hazi to (pro me) dost nezvyklou hlasku:

    root@test-lxc-d10:~# docker run --rm busybox ping -c 4 8.8.8.8
    ping: can't create raw socket: Permission denied
    PING 8.8.8.8 (8.8.8.8): 56 data bytes
    


    K internetu se nedostane ani ping, ani wget, ani nic jinyho (jako ze to neni problem s pingem).
    Nenapada vas, cim to muze bejt?
    Pripadne jak nejak low-level debugovat networking?
    JON
    JON --- ---
    Nevite o nejakem lightweight nastroji, ktery by mi usnadnil startovani N LXC kpntejneru a nejaky sitovani kolem toho? Neco jako docker-compose.
    Vsechno co jsem nasel je bud kanon na vrabce, nebo dyl jak rok neudrzovany.
    MUXX
    MUXX --- ---
    REFLEX: Docker-compose umi scale ne? Zvednes na dva, pockas, snizis na jeden. Samozrejme kubernetes ti to udela samo, ale to nechces pro jeden docker-compose
    DWICH
    DWICH --- ---
    REFLEX: Záleží, kde to provozuješ a jak moc ten systém řídí raketoplány nebo ne :)

    Je třeba dobrý mít možnost se okamžitě vrátit zpátky. Nebo když si to představíš jako šavli na mixáku, kde necháš hrát tu původní písničku a trochu už tu novou. Když se ti to začne srát, tak šavli stáhneš zpátky. Např. tím, že sleduješ nějaký error rate, kterej je běžně třeba ve tvym případě 2 %, dáš split traffic na pár procent a novej release hlásí 5 % error rate, tak to stáhneš. To stejný můžeš sledovat i se zátěží. Novější release nemá vyšší chybovost, ale z nějakýho důvodu ti ta nová super featura zatěžuje systémy násobně, než jsi očekával.

    Různý prostředí pro provoz kontejnerů na to mají různý metodiky a nástroje, ale nejdřív si rozmysli, jak moc sofistikovaný to _ne_potřebuješ :)

    blue green deployment - Google Search
    https://www.google.com/search?q=blue+green+deployment&hl=en
    canary deployment - Google Search
    https://www.google.com/search?q=canary+deployment&hl=en
    zero downtime deployment - Google Search
    https://www.google.com/search?q=zero+downtime+deployment&hl=en
    REFLEX
    REFLEX --- ---
    Mam dalsi dotaz :D aspon to tu zije

    Jak resite 0 downtime releasy?

    Mam docker-compose - container na front end (nodejs) a back (php) a cele to "routuje" nginx, ktery expouje 80 a 443 port.

    Vite o nejakem clanku/tutorialu? :)

    Mozna to nepoustet pres docker-compose?
    HVJ3R
    HVJ3R --- ---
    REFLEX: By default nejsou (host ip muze bejt verejna a dockery muzou brat adresy z privatniho rozsahu, exponujic jen explicitne recene porty). Samozrejme kolize muze nastavat na tom stroji, tj. kdyz dockerum das privatni rozsah, tak provoz ku 192.168.0.1 pujde z toho stroje na bezici docker s touto adresou, ne na jiny stroj s touhle adresou.
    REFLEX
    REFLEX --- ---
    Ahoj, mam dotaz na docker-compose, mam server, ktery je v nejake vnitrni siti, na servery jede docker-compose a 4 kontejnery, ted se stalo ze ty kontejnery sezrali IP 192.168.0.1 (nebo neco podobneho) co zaclo kolidovat s tou vnitrni siti.

    Je tam asi default docker co jede network v bridge modu.

    Jestli to teda chapu tak v ramci vnitrni site jsou kontejnery dostupne z ostatnich pocitacu? :)

    Realne nemam moznost to vyzkouset, zkousel jsem procitat dokumentaci a jeste budu :)
    FONTAN
    FONTAN --- ---
    Ahoj

    nepotuluje se tu zkuseny devopsak se zamerenim na azure & aks ekosystem na par (placenych) konzultaci?
    RAGNAROK
    RAGNAROK --- ---
    MARTEN:
    to jsem zkousel pokud neni v image/vytvorenej user tak kdyz das jenom parameter user a spustis v conteineru interaktivni shell tak mi to napise neco jako i don't know user name a pak kdyz das vytvorit file tak ho vytvori jako root. (docker 18.09.5)
    MARTEN
    MARTEN --- ---
    RAGNAROK: Docker by soubory mel vytvaret pod uid uzivatele, ktery je uvnitr containeru. Container by nemel bezet jako root. Zkus jestli by ti nestacilo spustit container s parametrem --user 1000:1000. Mozna by ti to mohlo stacit, pokud chapu dobre tvuj problem.
    Omezeni na host filessytem je tezsi. Docker daemon defaultne snad vsude bezi jako root, takze kdo se bude snazit, dostane se na jakykoliv soubor v systemu jen s pouzitim hello-world containeru. Ale jestli to neni sdileny server, asi te to nemusi trapit.
    RAGNAROK
    RAGNAROK --- ---
    MARTEN:
    Potrebuju mit nastroj kterej mi pujde vsude a nechi resit porad naky zavislosti treba (ruzny tooly treba lsp) mezi ruznejma distribucema a verzema.
    Potrebuju spoustet emacs pod ruznejma userama s ruzne omezenym pristupem k hostovymu filesystemu, ale aby byl zachovana zvolenych casti fs moznast rw, owner/group. Dokcer ma tendenci vytvaret soubory na hostovym fs jako root. Je to ciste pro moji potrebu, nemam ambic, ze by to pouzival nekdo mimo me.

    Mozna je treba lepsi alternativa snap akorat o tom nic moc nevim a znalost snapu nevyuziju/nemam cas resit.
    SH_PANDA
    SH_PANDA --- ---
    Dockerizovat nastroje je skvele reseni jak je sprovoznit i na windows/macos ale i linuxu. Delali jsme to na jednem projektu (cca 6let zpatky), kde jsme tak balili nejake tooly pro windows vyvojare
    MARTEN
    MARTEN --- ---
    RAGNAROK: Proc to potrebujes? Tohle je trochu zvlastni a nezda se mi, ze zrovna build je spravna faze. To by melo byt spis pri run, jestli chces aktualniho uzivatele. V buildu to vytvori jednoho uzivatele, ale spustit to pak muze nekdo jiny.
    Dal bych do run, v containeru mel bash script, ktery prida uzivatele predaneho v run a bude pro aktualniho uzivatele v povolenych sudo commands. Ale spis proc to potrebujes? Mozna se najde lepsi reseni
    INDIAN
    INDIAN --- ---
    RAGNAROK: v dockerfile si vytvoris jednoduse
    ARG MY_USER
    ARG MY_UID
    RUN useradd $MY_UID $MY_USER

    a v behem buildu mu je predas:
    $ docker build --build-arg MY_UID=1234 --build-arg MY_USER=me . 
    Kliknutím sem můžete změnit nastavení reklam