• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    ARXIE
    ARXIE --- ---
    RAINBOF: nedavno jsem objevil https://www.manning.com/livevideo/docker-in-motion

    ... ale jeste jsem se k tomu samozrejme nedostal ;x
    JINX
    JINX --- ---
    Tak to s Wine jsem teda prehlidl, sorry. Takze si raky nejsem moc jist zda to je ten pravy use case pro docker, zvlast kdyz si ty appky budou chtit nekam sahnout. Ve Windows existuje aplikace ktera se jmenuje Sandbox, na Linuxu nic takoveho neznam, napada me jen QubeOS, ktery jsem pochopil tak ze kazda aplikace jako napr. Firefox bezi v nejake oddelene virtualizaci - zde je to ale kvuli bezpecnosti, ne kvuli rozbijeni os kvuli instalaci ruzneho sw.
    SUK
    SUK --- ---
    Nebude problem. I Xkovy veci bezi v pohode, jen je potreba protunelovat socket.
    MARTEN
    MARTEN --- ---
    RAINBOF: mozna se pletu, ale zrovna wine v dockeru asi nebude to prave. problem tam vidim v tom, ze budes muset pristupovat pres vnc. treba to pujde obejit, ale nikdy jsem nic takoveho nepotreboval. uprimne jsem nikdy nespoustel bic co by melo graficky vystup a pokud ano, vzdy jsem videl moznost jen pripojeni pres vnc, nebo nejakou alternativu.
    JINX
    JINX --- ---
    RAINBOF: Ok, chapu problem s dokumentaci. Co treba knizky od Oreilly apod? Kazdopadne ted Pluralslight by mel mit videa kde se to probira vic obecne...
    RAINBOF
    RAINBOF --- ---
    JINX: Tak v oficialni dokumentaci jsem se ztratil nepobral jsem z toho ten ekosystem nastroju takze mi to desne drhne. jsem na slepym bode proto takhle volam o pomoc :) YT videa jsem zkousel ale casto jsou to veci "how to make XYZ" a bud je to bez vysvetleni coz je na cocku protoze rad bych porozumel, nebo je to vysvetlovany vuci nejakymu kontextu problemu kterej autor resi.
    JINX
    JINX --- ---
    RAINBOF: Co treba Pluralslight nebo alespon YT? Pripadne oficialni dokumentace? Obavam se ze v cestine toho moc nebude.
    RAINBOF
    RAINBOF --- ---
    Potřeboval bych nějaký zdroj pro naučení se dockeru.
    Ideálně česky ale anglicky bych to taky dal. je jedno zda text či video. Potřeboval bych něco co se zabývá i základy zdá se že mám mezery na každém kroku a tak bych si to potřeboval nějak povšechně doplnit.

    Prvním větším cílem je spouštění některých programů v konťáku. Jako první bude Wine (mam 64bit systém a nehodlam si ho zašvihat 32bit architekturou a bordelem z Wine)

    Následuje možná trošku naivní myšlenka, kdy bych si některé aplikace spouštěl v kontejnerech protože si je sám modifikuji a některé používají tak staré obsolete knihovny že jsem si je pro své účely vykuchal a spojil s aplikací. Tenhle krok by mi nikdy do upstreamu neprošel protože je to prasokód ale mě to takhle vyhovuje. Pro představu jsou to úpravy Pascal IDE, úpravy ve výstupu starého GDB, prehistorické GCC. Aktuálně to jedu ve virtuálu v debianu woody ale to mi velice nevyhovuje a rád bych to konsolidoval do něčeho udržitelnějšího.
    DRUDRIGER2
    DRUDRIGER2 --- ---
    kdyz si dam docker images
    tak nejvetsi ma 500MB logy jsem kontroloval a nic zvlastniho, nejvetsi log mnel 15MB
    ale je jasne videt ze ty dva adresare ktere jeste k tomu maji oznacene tmp maji kazdy po 20G.
    DRUDRIGER2
    DRUDRIGER2 --- ---
    ja sem to kontroloval, nejsou to logy ale je tam vice jakoby diff a merge containeru..... moc se v tom nevyznam , ale kdyz dam
    sudo du -h /var/lib/docker/ |grep [0-9][0-9]G

    tak mi to vypise tyto

    20G /var/lib/docker/overlay2/cd29fdd129aad96eea8fa26f4b56010c98c36b9a1cd2fbe4e522115644fd1602/diff/tmp
    20G /var/lib/docker/overlay2/cd29fdd129aad96eea8fa26f4b56010c98c36b9a1cd2fbe4e522115644fd1602/diff
    20G /var/lib/docker/overlay2/cd29fdd129aad96eea8fa26f4b56010c98c36b9a1cd2fbe4e522115644fd1602/merged/tmp
    21G /var/lib/docker/overlay2/cd29fdd129aad96eea8fa26f4b56010c98c36b9a1cd2fbe4e522115644fd1602/merged
    41G /var/lib/docker/overlay2/cd29fdd129aad96eea8fa26f4b56010c98c36b9a1cd2fbe4e522115644fd1602
    51G /var/lib/docker/overlay2
    52G /var/lib/docker/


    a ty dva soubory..? nejak sem nenasel jestli to muzu smaznout a nebo ne...?


    RUDOLF
    RUDOLF --- ---
    DRUDRIGER2: Nerostou ti logy? Kdyby hej, buď omez velikost logů parametrem pro danej kontejner nebo je směruj do syslogu a rotuj. Většinou se dívám do /var/lib/docker - tam je divět co ti vlastně tak roste.
    DRUDRIGER2
    DRUDRIGER2 --- ---
    zdravim, potrebuji poradit s nafukovanim dockeru... delam ve vyvojovim prostredi od firmy, je to asi 5 kontaineru dohromady. mysql, nginx a nejake firemne sluzby, cele se to ale strans nafukuje. kdyz to postavim tak to ma tak 1G cele, ale do vecera mi to naroste na 25GB. jako jo delam to ze to jednou za par dny cele zhodim a necham postavit znovu, ale neprisel sem na to co s tim, aby to takhle nebobtnalo. strycek G toho sice narikal hodne ale nic funkcniho sem nenasel. dik za rady
    RUDOLF
    RUDOLF --- ---
    ADM: je to nějaká AWS versus K8s čudnost.. teď mi ta nette appka běží v pohodě, ale když se snažím do stejnýho namespace narvat nginx, AWS healthcheck selhávat..

    jen podotku že z AWS access logu nedostaneš error co z dostane backed služby - takže se to debuguje pekelně..

    imho se to z nějakýho důvodu ztrácí někde v Kubernetes, protože Host TCP SYNC dostane, ale už nikdy nedoputuje do kontejneru..
    ADM
    ADM --- ---
    RUDOLF: pokud jenom prohodis image, tak rozdil musi byt v tom nette, co logy toho nette, jak loguji loadbalancer? (mimochodem nette mluvi http, to neni nejaky fastcgi?)
    RUDOLF
    RUDOLF --- ---
    ADM: jj, základ chápeš správně. Použuji komplet stejné definice, když v deploymentu jedné dám image nginx, vše fachá jak má, když v ní ale dám image nette aplikace - tak to se to přestane chovat podle očekávání - tj. Load Balancer přestaně vnímat službu na daném portu jako zdravou, ačkoliv, když obejdu load balancer - služba vrací 200 ať je image nette nebo nginx..

    komp je stroj, který má otevřenou díru na k8s node - takže si zkontroluji, jestli se na portu, kam Service exportuje službu, funguje služba korektně - ale přistupuji přes veřejnou IP na daný port.

    Z vnitrní sítě znamená, je instance co běží ve stejným regionu jako k8s node - všechny dotazy směřuji přes privání IP. Tady ale dojde k tomu, že v obou případech k8s node zachytí sync z instance, ale v případě nette image už to nedoputuje do kontejneru. Pak jsem večer zjistil, že už ani, když ten image vrátím zpátky na nginx. Přičemž ta služba z kompu a přes veřejnou IP stále vrací 200 OK.

    Ty služby jsou celou dobu na stejným portu např. 36867, měním je pomocí kubectl appy -f neco.yaml, kde v yaml nahrazuji jen řádek s image..

    Load Balancer Classic - je AWS legacy LB, kubernetes/aws.go pro service typu LoadBalancer, vytváří právě tenhe typ Load Balanceru.. Je možné použít ještě novější Network Load Balancer (umí SMTP apod), ale radši bych použil Aplikační Load Balancer - jenže ještě není napsanej - jsou nějaké alternativy, ale musám to prozkoumat.
    ADM
    ADM --- ---
    RUDOLF: takze jestli to chapu spravne, tak se klient nedostane na sluzbu nette, ale dostane se na sluzbu (ve stejny docker overlay network, nebo kubernetes project), ktera dela LB pro stejnou sluzbu? to moc nedava smysl, nevim co je LB-classic (v openshiftu je default haproxy, ktery rikaji openshift router), ale to by vypadalo ze mas pravidlo jen pro ten vlastni LB nginx, ale uz ne pro tu nette sluzbu (co je u tebe pripojeni z kompu?). nerozumim tomu "z pohledu vnitrni site' ze nepreda kontejneru s nette, nemas to nakonec v ruznych sitich, kubernetes projektech?
    RUDOLF
    RUDOLF --- ---
    hele, pozoruji teď s k8s na AWS s LB-Classic takovou frustrující situaci:-)

    mám v jednom soubor definovaé dva deploymenty a dvě služby. Jedna z nich vytváří LB nad web deploymentem.

    Pokud použji image nginx - tak to fachá a LB považuje službu za zdravou..
    Pokud použiji náš image s prezentací v nette, tak LB nikdy nepovažuje instanci za zdravou..

    Vtipný je, že pokud se připojím na port kde ta služba běží na kubernetes nodu (a kde ji i healthchecku load balancer) tak vrací 200 v obou případech.

    Nahodil jsem instanci a zjištuji, jak se to chová, z pohledu vnitnřní sítě..
    tcpdump na k8s workeru vidí sync z interní instance ale nepředá to kontejneru s nette.
    pokud se připojím z kompu tak k8s worker sync kontejneru předá a on vrátí obsah.

    teď jsem zkusil znovu vrátit image nginx, ale probém zůstává stejne.. jako pořeším to přes LB>ingress, snad to bude leší, ale je to kapku frustrující zkušenst.. nenapadá někho něco?
    RUDOLF
    RUDOLF --- ---
    ADM: kdybys to nechtěl nativně před docker, používám logspout. Posílí stdout/err z kontejnerů. Ale na mým swarm se dost často restartuje a navíc byli trable, že pokud byl corrupted docker logs, zahltil docker engine. Jde tam filtrovat, který kontejnery chceš posílat podle env. https://github.com/gliderlabs/logspout -- takže se asi radši podívám na ten filebeat:-)
    KING
    KING --- ---
    ADM: s dockerem jsem resil logovani jen pres bud filebeat a nebo pres ten jejich docker logging driver pres logstash do ES v Gelf formatu (je mozny samozrejme psat i na disk z logstashe)

    Kdyz jsem to resil pres filebeat tak, na zadost klienta, jsme vse napred presunuli na centralni server opet pres docker logging driver a syslog - https://docs.docker.com/config/containers/logging/syslog/ - na centralnim serveru pak staci mit syslog server
    ADM
    ADM --- ---
    INDIAN: ja do ES nic posilat nechci, ja si vystacim pokud mozno se starym dobrym syslog serverem. v openshiftu je jako hotovy logovaci reseni EFK vicemene dany (a je to teda pekny shit), na nejaky vlastni bastleni to neni
    Kliknutím sem můžete změnit nastavení reklam