• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    Docker aneb přístupný provoz kontejnerizovaných aplikací
    Docker(Hub), Compose, Swarm, boot2docker, DevOps, LXC, ECS, TumTum a jiné buzzwordy
    Bezpečnost v prostředí kontejnerů
    Related: automatizace [ Centralizovaná správa stanic a ostatních prvků v síti konfigurace/inventarizace/instalace/aktualizace/zalohovani ]
    rozbalit záhlaví
    GIOMIKY
    GIOMIKY --- ---
    INDIAN: no vidis, zapomnel jsem to nejdulezitejsi...
    $ cat ~/.ssh/config
    Host dokrhost
      HostName 172.17.0.1
      User user
      Port 22
      ServerAliveInterval 60
      LocalForward 127.0.0.1:8080 127.0.0.1:8080
    ... Diky
    INDIAN
    INDIAN --- ---
    GIOMIKY: mozna bych ti pro zacatek odpovedel otazkou - k cemu potrebujes ssh v kontejneru ?
    GIOMIKY
    GIOMIKY --- ---
    Dalsi z cyklu, jak nepouzivat Docker. Tedy mejme Dockerfile. A predpokladejme, ze nechci pouzit presmerovani portu, protoze mi to zasahne do iptables a to se mi nelibit. Tak jsem dosel k reseni, kdyz si presmeruju pres ssh port a potom, napriklad, pristupuju na svuj pypi server.
    Neco jako:
    ...
    RUN nohup bash -c "/usr/bin/autossh -o "StrictHostKeyChecking=no" -M 0 -N -q dokrhost &" && pip3 install --force-reinstall --trusted-host 127.0.0.1 --index-url http://127.0.0.1:8080 myfancypkg
    JON
    JON --- ---
    Mam dotaz k ArgoCD - nevite nekdo o tom, jak/jestli tam jde udelat nejaky transformacni krok mezi repositarem podle ktereho syncuje a tim podle ceho syncuje?
    Treba slej helmcharty z N adresaru v tom repu dohromady, naaplikuj na to nejake templatovani apod.

    Samozrejme to jde udelat stylem: push do repositare A -> tam se pusti CI job, ktery provede ty transformace a pushne to do repositare B -> a podle repositare B to Argo vydeployuje. Ale moc se mi to takhle nelibi.
    JON
    JON --- ---
    MAJA: coz vo to, docker to ma zmaknuty dost dobre, ale lidi jsou kreativni :-)
    MAJA
    MAJA --- ---
    MLEKAR_STEIN: díky za postřehy ...

    čekal jsem, že to má docker nějak zmáknutý - nějaký docker backup/docker restore ale nic moc
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    MAJA: zkontroloval bych

    1. jestli někdo neudělal symlink na
    /var/lib/docker případně na některé adresáře v něm. typicky jsem viděl symlink na /var/lib/docker/volumes kterej ukazoval někam na nějaký ssd disk
    2. podíval bych se do /etc/fstab, jestli není na.výše uvedené adresáře udělaný bind
    3. podíval bych se do lokální konfigurace systemd, která je někde v /etc jestli tam někdo néco vesele nepřenastavil.

    specielně bod 3 je docela zákeřný a umí potrápit stylem "jaktožesetopouštístímdleparametrem"

    ještě bych zkontroloval, jestli nějaký kontejner si nevyrábí nepojmenovaný volume pomocí direktivy v dockerfile. a nepoužívá to někdo jako že v tom má data
    viděl jsem takhle provozovaný postgres, kde po restartu se vývoj divil, kam jim zmizely data a že to musej pořád obnovovat.
    VELDRANE
    VELDRANE --- ---
    MAJA: jaky je problem si udelat male PoCko, kde vezmu images, prekopiruju je na cilovyc stroj, udelam kopii volumes za zaloh a predhodim to par testovacim uzivatelum pod jinou ip at mi otestuji zakladni funkce ?
    MAJA
    MAJA --- ---
    INDIAN: něco takového mám v plánu (myslím, že ani lidi vývojáři co to používají neví 100% co tam jak má být/je :-)

    ve /var/lib/docker jsou všechna data ? vč. volumes a sítování ?
    INDIAN
    INDIAN --- ---
    mno vono pokud clovek prijde k serveru kde bezi nezavisle na sobe nahodile nekolik kontejneru bez jakykoli spolecny deklarace, tak je prekopirovani natvrdo /var/lib/docker asi nejspolehlevejsi volba... jak sdelje zde MAJA - je treba na novym serveru nainstalovat stejnou verzi, nastavit pripadne dodatecny personalizace v daemon.json, stopnout vsechny kontejnery, zastavit na obou strojich docker.service a prekopirovat ze staryho zminenej obsah + samozrejme i veskery volumes ...

    ale samozrejme souhlasim, takhle by se to delat nemelo a pro budouci upravy by to melo bejt na novym stroji nainstalovany nejlip pomoci nakyho centralniho CI nastroje nebo orchestratoru.
    MAJA
    MAJA --- ---
    SH_PANDA: díky, vyzkouším ...
    MARTEN
    MARTEN --- ---
    HOUMLES: Jasne. Jako 99% procent volume mam v adresari projektu, aby se dobre kopirovalo. Ale historicky neco zustalo takhle blbe. Ale co jsem presouval ted, tak jen tarnul adresar s projektama, prekopirovat a vsude jen up. Jinak /var/lib/docker/volumes stejne ma jen ty. Ostatni adresare nepocitam, pokud existuje aspon compose.
    Ten mam rozchozeny kubernetes, tak jsem zvedav jak to pujde tam, az se budu zbavovat jednoho zeleza
    HOUMLES
    HOUMLES --- ---
    uff, presouvat kotejnery zpusobem, ze prekopiruju /var/lib/docker? to snad ne :) podstata dockeru je v tom, ze staci slozky s datama a k tomu docker-compose, popr. Dockerfile
    MAJA
    MAJA --- ---
    MARTEN: taky mám nutkání sladit přesně verze dockeru, na jednom stroji to poschazovat, zkopírovat na druhý stroj a nahodit ... bohužel tam něco běží a není to moje a nemám k tomu moc dokumentace :-)
    MARTEN
    MARTEN --- ---
    MAJA: Ja kdyz to resil, tak vetsinu veci jsem mel jako volume s cestou, takze jen prekopiroval. Co byly named, tak vpodstate taky cely /var/lib/docker
    Nechtelo se mi resit treba dump/restore u db. Presun souboru to prezilo. Ale zbytek jsem mel v docker-compose, tak si to vytvorilo vsechny site apod.
    MAJA
    MAJA --- ---
    Mám na jednom stroji rozběhaných několik docker containerů vč. volume a nějakého prosíťování.

    Potřeboval bych to celé přesunout na jiný stroj - jak to nejlépe provést ?
    MORTAELTH
    MORTAELTH --- ---
    JON: sice pozde, ale presne tohle delame. nase aplikace je takova super statefull :) backend aplikace ma embedovanou lokalni databazi, kterou si pri startu nahraje z blob storage do lokalni cache (stav shodny na vsech replikach se udrzuje pres Kafka eventy)

    Takze to reseni vubec neni na urovni statefulsetu, ale podu. Pod kdyz startuje tak si musi zaridit, ze je synchronizovany s blob storagi. Tu lokalni cache si nahraje do PVC, takze s restartem nestahuje vse.
    VELDRANE
    VELDRANE --- ---
    MARTEN: okd nejsou jen ostravsko-karvinske doly ale tez comunity edition openshiftu :)

    OKD.io - OKD.io
    https://www.okd.io/
    MARTEN
    MARTEN --- ---
    VELDRANE: to neznam. Chtel sem na to pouzit rancher, ktery je trochu flexibilnejsi nez OS pro mne.
    Pripadne napisu, nejak sesumarizuju. Rancher prave dokaze vyresit hodne veci sam a ma vlastni installator k8s, takze tohle jde relativne rychle.
    VELDRANE
    VELDRANE --- ---
    MARTEN: Pokud mas nejakou zkusenost s Openshiftem, proc nezkusit okd, kde uz je spousta veci vyresena. Priznam se ze teda nevim jakej je soucasnej stav toho projektu ale 3.x verze byly vcelku slusne. Obecne radim to stavet nad nakejma virtualkama a ne barematalu (par lidi melo tento chorej napad a je z toho akorat mrzeni). Co budes resit je jak dostat trafic dovnitr a ven, jak spolu budou ty ci ony sluzby komuňikovat, kde a jak deplojnout statefull komponenty jak databaze atd.
    Hele je to na nakou delsi debatu, jestli chces posli mi sz a muzem to po telefonu nebo whatsappu probrat.

    Svoje k8s si muzes postavit taky ale zabere Ti to vic casu protoze spoustu veci si musis poresit po vlastni ose (sdnku - je jich mabiliarda, registry, autentizaci, ingress, egress, monitoring, deployment atd apod). Ne ze by to neslo, je to dokonce moc hezka prace kde se hodne veci naucis ale docela casove narocna i pro cloveka co o tom trochu vi.

    Obecne to neni blbej napad, protoze pokud budes mit pak vyresenej deployment do takovyho prostredi, pak je vcelku burt jestli ho budes hostovat u sebe v on-premu nebo treba v azure v aks.
    Kliknutím sem můžete změnit nastavení reklam