• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    DANIELSOFT
    DANIELSOFT --- ---
    Já se s Kubernetem poprvé setkal v roce 2016, co se koukám na Wiki, tak je tu od roku 2014, takže nebyl ještě tolik "vyzrálý". Teď jsem teda na jiném místě a dělám něco jiného, ale možná se k němu někdy vrátím, kdo ví.
    FALLENANGEL
    FALLENANGEL --- ---
    RUDOLF, VELDRANE: To je docela zajimavy. Cekal bych, ze Kubernetes uz bude dost proflaknutej. Preci DevOps a kontejnery jsou tady uz cekem dlouho. Ale dobre pro nas. Porad je to zrejme skill, do kteryho se vyplati investovat :)
    VELDRANE
    VELDRANE --- ---
    FALLENANGEL: U nas sme hledali nakoho seniornejsiho na ocp/k8s k nam do tymu s opravdu tucnym referal bonusem (nemuzu rict podrobnosti) a rok ta pozice zustala neobsazena. Nedavno k nam nastoupil sikovnej klucina ale stejne bude trvat nez to do sebe natlaci. Ono uz tohle zkratka neni o tom nainstalovat a zkonfigurovat par linuxovejch serveru. Mluvim o praci na rkzsahlym on-premu
    RUDOLF
    RUDOLF --- ---
    FALLENANGEL: Tak je dost otázka co chtějí. Jestli je to manged EKS od cloudu nebo to K8s si postavili sami. Pak je otázka co tam máš dělat, jestli děláš SRE/DevOps nebo něco jinýho. Obecně Operations nejsou špatně placený, protože spoustu lidí to táhne spíš k dev a pak ti často práce končí mergem do develop a co je dál, už tě moc nezajímá, kromě konzumace stacktrace. V menších firmách si to ošaháš všechno, ve větších musíš být v operations či někde u backendu. A pak je otázka co je přitažený za vlasy:-) Jestli je to US firma nebo česká. Češi maj senior engineering u 120k. US/banky mají rate daleko vyšší. Plus ta hloubka znalostí kolem EKS se dost liší, né každý musí řešit networking mesh, EKS u AWS má svá specifika - tak se ta cenová hladina pohybuje podle potenciál versus aktuální znalosti. A asi bych taky čekal, že spousta firem je ještě ve fázi před K8s a potřebují někoho, kdo to rozjede.
    FALLENANGEL
    FALLENANGEL --- ---
    Narazil jsem ted na jednu takovou zajimavou vec. Vyfiltroval jsem si v Jobsech inzeraty, ktery poptavaji znalost Kubernetu:

    Nabídka práce Praha – Jobs.cz
    https://www.jobs.cz/prace/praha/?q%5B%5D=kubernetes&locality%5Bradius%5D=0

    A priznam se, ze ty rakety co tam nabizi mi prijdou dost pritazeny za vlasy. Skoro to vypada, ze Kubernetes je stale dost okrajova znalost, ale firmy to proste chteji. Mate nekdo nejakej blizsi prehled jak je to na ceskym trhu?
    SADY
    SADY --- ---
    DWICH: aha, v tom muze bejt rozdil no... zajimava cloudova politika
    DWICH
    DWICH --- ---
    SADY: Na to jsem narazil, kdyz jsem vcera hledal ty tokens a to podle vseho nabizi Bitbucket jen v server verzi, ne jeho cloud verze.

    Kdyz jsem to chtel najit pro Bitbucket cloud, tak jsem se dostal sem, kde pisou, ze to v cloud verzi neni
    Personal Access Token for Bitbucket Cloud?
    https://community.atlassian.com/t5/Bitbucket-questions/Personal-Access-Token-for-Bitbucket-Cloud/qaq-p/677663

    Mozna neco prehlizim.

    BESH: Build args predavam, pro secrets me to nenapadlo, dalsi dobrej tip, dikes!
    SADY
    SADY --- ---
    DWICH: proste personal token, kde ta persona je robot co ti buildi appku, tam si expiration nastavis sam

    Personal access tokens | Bitbucket Data Center and Server 7.16 | Atlassian Documentation
    https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html
    BESH
    BESH --- ---
    DWICH: Pokud potrebujes nejakou hodnotu jen pro nejakej build step, tak lze dodat `docker build --build-arg MY_SECRET=abcd`. Ta hodnota pak nebude ve vyslednem image persistovana. Takovyhle args se daji v CI obvykle narvat pres nejaky pipeline variables.
    DWICH
    DWICH --- ---
    Díky všem za rady! Ten ssh klíč je jednoúčelovej, čistě pro čtení z toho repo a na nic dalšího se nepoužívá. Namountovat ho mě nenapadlo, díky za tip.

    S multistage počítám. Nicméně i když půjde o multistage, tak stejně neodpadne ta nutnost dostat ze secret managera ten klíč do image, ať už přes COPY nebo mount. Je to tak?

    Ten balíček z Bitbucketu potřebuju přidat v poslední fázi instalace aplikace (tzn. v posledním kroku multistage). Z toho mi vychází, že bych za tímhle posledním krokem měl udělat ještě jeden opravdu-poslední krok, do kterého přenesu sakum-prdum instalovanou appku (tzn. nezkopíruje se klíč). Je to tak?
    MARTEN
    MARTEN --- ---
    VELDRANE: Tak do multistage bych sel i z duvodu velikosti vysledneho image. I kdybych nepotreboval zadny klic apod., tak stejne by to byla spravna cesta.

    DWICH: Ale jinak pokud ti jde i jen o klic, tak ho muzes pri buildu mountnout do ~/.ssh/.... (podle toho odkud se defaultne bere) a bude ti pak fungovat. Zadne copy. Ale rozhodne je lepsi pouzit multistage. V prvnim si delat co chces a finalni ma jen stazene soubory a pripadne uz i zkompilovane. Finalni image by pak uz nic takoveho nemel delat - v RUN z duvodu velikosti a poctu layers, v CMD kvuli rychlosti startu containeru.
    I kdyby si ho tam dostal pres COPY a pak smaznul, tak pozor, porad tam zustane v jednom z layeru a lze ho z toho bez problemu dostat a zneuzit.
    VELDRANE
    VELDRANE --- ---
    DWICH: obecne nevidim problem mit nekde ssh klic, problem vidim v tom co s tim ssh klicem muzes delat. Jinymi slovy spis zalezi na tom jak silna prava jsou prirazena entite, ktera se autentizuje pomoci toho klice. Totez plati i o tokenu. Navic je ímho v tomhle pripade bezpecnejsi ssh klic nez token, kterej muze obsahovat spoustu readable informaci, ale asi bude zaelzet i na tokenu.

    Zaznel tu i termin “secret” v kubernetes. Secret neni zas tak secret :) protoze je to pouze zakodovana nejaka imformace (klic, cert, heslo atd) v base64 - nic vic nic min. Pokud chces nejakou vyssi formu bezpecnosti, pak je na zvazeni treba nejakej vault, otazka je jak potom dostat automaticky data z toho vaultu.

    Osobne bych sel cestou multistage jak Ti radi King
    JON
    JON --- ---
    DWICH: ja prave nevim jak v bitbucketu - to prostredi nepouzivam a nemam rad.
    DWICH
    DWICH --- ---
    JON: Na to jsem nenarazil a klidně si nechám napovědět. Co jsem v rychlosti prošel, tak mi vyskočilo tohle
    Use OAuth on Bitbucket Cloud | Bitbucket Cloud | Atlassian Support
    https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud/
    kde access token má platnost dvě hodiny a novej získáš přes OAuth2

    Uložit v secret manageru ssh klíč nebo credentials pro získání access tokenu a jeho následný použití mi přijde podobný, možná trochu složitější s tím tokenem. Nebo mi něco uniká?


    RAGNAROK: Díky za tip, nemám vyzkoušeno, mrknu na to.
    RAGNAROK
    RAGNAROK --- ---
    .netrc file
    JON
    JON --- ---
    DWICH: nestaci na ten bitbucket nejaky token pro read-only access misto ssh klice?
    DWICH
    DWICH --- ---
    DANIELSOFT, KING: Obojí mám vyzkoušený, tak snad cílovej setup nebude složitější. Build bude probíhat v GCP v Cloud Buildu, tak to zkusím napojit na tamní secrets (ne na kube secrets).

    Díky!
    KING
    KING --- ---
    DWICH: na tohle bych pouzil multi-stage build (https://docs.docker.com/develop/develop-images/multistage-build/) kde v prvnim kroku se vse sthne a nainstaluje a v druhem pak uz nebudou potreba ty secrets ani veci jako git
    DANIELSOFT
    DANIELSOFT --- ---
    DWICH: v Kubernetes je něco, co se jmenuje "secrets" a je přesně k tomuto: detaily si nepamatuju, protože jsem na tom dělal v roce 2016. možná je něco podobného v Compose či menším orchestrátoru, pokud je Kubernetes overkill, ale můžeš se u nich podívat, jak to mají udělané
    DWICH
    DWICH --- ---
    Zdravíčko vespolek. Mám Dockerfile, v něm pouštím pip install -r requirements.txt a v něm je jeden balíček, co je na na Bitbucketu. pip si zavolá git, ten udělá git clone a balíček nainstaluje. Potud OK. Ten git ale potřebuje ssh klíč, aby se mohl Bitbucketu ověřit.

    Ten ssh klíč můžu do Dockerfile zapsat, nechat proběhnout instalaci a pak ho smazat. Abych ten klíč do dostal do Dockeru, mám COPY, jenže to COPY může číst jen v rámci adresářů, kam může Dockerfile. A tím se dostávám k problému - kde by ten ssh klíč měl být uložený? Resp. jaké máte best practices, jak instalovat balíčky z privátních repos do dockerů?

    Diky za feedback, kritiku snesu :)
    Kliknutím sem můžete změnit nastavení reklam