• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    JON
    JON --- ---
    KING: Tak s downtime do jedné vteřiny, než se ten nginx otočí, funguje drtivá většina všeho co na internetu je - na eshopu to, troufám si říct, nejen nikdo nezaznamená, ale ani nenaměří - to už je větší riziko, že ta VPS vypadne celá.
    My to třeba v HA případech řešíme na loadbalanceru, který je před těmi dockery,
    KING
    KING --- ---
    JON: Pokud nepotrebuju 0 downtime je hodne velky pokud, mozna ziju nekde jinde ale nedokazu si predstavit ze bych to navrhl nejakemu zakaznikovi
    REFLEX
    REFLEX --- ---
    REFLEX: Ted jsem u jednoho eshopu kde maji 329600 hitu za mesic a prumerna odezva je 400ms spocital ze by provoz stal 6000 mesicne, oproti 600 za VPS

    Mozna to furt cele nechapu :]
    REFLEX
    REFLEX --- ---
    RUDOLF: ja si myslim, ze to realne nejde spocitat

    Vim kolik bude mesicni navstevnost, ale uz nedokazu rict za jak dlouho to zpracuje pozadavek a kolik GB ram a kolik vCPU na to bude potreba

    Udelal jsem na to tabulku ted v rychlosti https://docs.google.com/...eadsheets/d/1Krrd5Jm3KH7bz_lvkzuBJkPyMVUf-zGqbn7ecVofHTY/edit?usp=sharing
    JON
    JON --- ---
    KING: kde je problem s docker-compose a upgradama ? Pokud nepotrebuju 0 downtime, tak je to myslim uplne dobry, ne? Nebo mi nekde neco uteklo?
    RUDOLF
    RUDOLF --- ---
    Alternativa VPS pro kontejnery může být Fargate na AWS. Je potřeba se tam ale trochu rozkoukat a spočítat jestli to ve finále nebude dražší jak VPS. Btw a alibaba cloud má myslím managed swarm:-)
    REFLEX
    REFLEX --- ---
    KING: diky, mrknu na docker swarm
    KING
    KING --- ---
    REFLEX: Kubernetes na jeden stroj rozhodne ne. Spravovat se to da v podstate cimkoliv na co si zvykly - supervised, systemd, ... nebo i rucne jen na zaklade nejakych deploy skriptu (ansible, ...)

    Z docker-specific nastroju na to docker-compose neni idealni protoze neresi co se stane potom, co to nahodis, upgrady jsou obtizne atp. Jestli chces neco podobneho tak se muzes podivat na docker swarm ktery tohle resi pomerne hezky.
    REFLEX
    REFLEX --- ---
    A mam dalsi dotaz: Co to bude cele na produkci spravovat? Mam jedno VPS, kde pobezi vse, staci teda pustit docker-compose up -d? A mam vystarano (nastavim ty ruzne restart policies atd)

    Nebo rovnou se ucit kubernetes?
    VELDRANE
    VELDRANE --- ---
    REFLEX: Je dobry si uvedomit co kontejner vlastne je; obycejnej process kterej bezi v nejakejch kernel namespacech, obalenej cgroupama a selinux politikama. A to jsou vsechno veci ktery umi jadro samo. Docker sam zajistuje jen tu omacku kolem jako stahnuti image odnekud a spusteni toho co je v nem obaleny tim co sem psal vejs. Ale porad je kontejner obycejnej process kterej pri trose snahy vytvoris i rucne a z definice nemuze mit velkej overhead. Jinak na kontejnerizaci lze pouzit i jiny nastoje (u nas v praci treba dost frci podman) ktery delaj vicemene to stejny jen trochu jinak :).
    RUDOLF
    RUDOLF --- ---
    REFLEX: Na úrovni OS máme nainstalovaný jen Docker Engine, plus pár monitorovacích nástrojů. Celý business je konetejnerizovaný už roky. Nějaký legacy node.js, tuna pythonu a high-performance věci pro jádro businessu jsou v rustu. Za ty skoro tři roky co to sleduji byl Docker engine za minimem incidentů a spíš kvůli nedůsledné konfiguraci (neomezení paměti, neomezený úložiště pro logy apod.). Když něco leakovala, byl to vždy problém v kódu aplikace. Když se něco takovýho děje u služby, která nemá vliv na zákoše, takže to nemá prioritu, nastavíme ať do docker killne při sežerání nějaký velikosti paměti a nastartuje. Já bych se k řešení závislostí na úrovni OS, už nerad vracel.
    SUK
    SUK --- ---
    REFLEX: Ten overhead je relativne maly, docker jako takovy je jenom maly daemon, co pousti samotne docker-procesy a jejich izolace nejaky overhead urcite vytvari, nicmene nemelo by to byt nic strasneho, dle nekolika malo clanku vyslovene zanedbatelneho. Koneckoncu, ten proces bezi prakticky skoro normalne v systemu, neni tam zadna virtualizace a tak. Dokonce i ten NAT to asi tolik nebrzdi.
    KING
    KING --- ---
    REFLEX: jestli chces mit na jednom serveru vsechny tyhle veci tak docker je to posledni s cim bude problem nebo co by tomu neco pridalo, rozhodne bych docker doporucil
    REFLEX
    REFLEX --- ---
    Pouzivate Docker v produkci? Nema to nejaky zbytecny overhead, resp. kdyz bych to chtel dat na VPS kde je 2x.3.5ghz, 4gb ram a 40gb ssd disk a chci tam provozovat kontainer na php, nginx, nodejs a db, elasticsearch a varnish
    URPUTNIK
    URPUTNIK --- ---
    DWICH: v kubernetes muzes mit vlastni configmapu, do ktere das napr obsah toho souboru .. ktery pak mountnes dovnitr do docker image pres kuberneti volume .. (my tak resime pripojovani do ruznych prostredi, protoze aplikace je parametrizovana soubory, nikoli ENV )
    DWICH
    DWICH --- ---
    Ideálně mi jde o ten celek. Jestli mít EVN, tak kde ho mít zapsanej? Nasazuju do kube přes yaml (kubectl create -f deployment.yaml), kterej osekanej vypadá cca takhle:
    apiVersion: apps/v1
    kind: Deployment
    spec:
      template:
        spec:
          containers:
            - name: app
              image: path/to/docker-image
              ports:
                - containerPort: 80
                - containerPort: 443
    
    TRILOBYTE
    TRILOBYTE --- ---
    DWICH: neslo by mit ten konfigurak na pripojenym volume?
    DWICH
    DWICH --- ---
    Ahoj, mám dotaz. Mám jednoduchej docker image, kde je nginx, kterej servíruje jednu statickou HTML stránku. Ten docker image provozuju přes kubernetes. Aby nebyla přístupná, je vyžadována základní HTTP autentikace (htpasswd), což je nastaveno v nginx confu.

    Jak byste řešili, že ta stránka (nginx) má mít zapnutou autentikaci jen v testovacím prostředí a nemá mít zapnutou autentikaci v produkčním? Ten docker bych ideálně chtěl buildnout jen jednou, ať nebuilduju dva rozdílný. Z toho mi vychází, že by někde měl být "přepínač" a podle toho zvolit nginx conf. Jak byste to v praxi udělali? Díky za názory.
    REFLEX
    REFLEX --- ---
    Ahoj,

    1)
    nemate nejaky pouzitelny docker compose na stack

    nuxt (vue) - front
    symfony - api a backoffice (admin)
    mysql
    cele asi pred to dat nginx jako proxy a mozna traefik

    protoze /api a /admin bude zabrane pro php a zbytek by mel obsluhovat nuxt

    2)
    Kde u nas hostujete docker na produkci? Mam na to vzit nejaky VPS?
    Kliknutím sem můžete změnit nastavení reklam