Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kontajnery v produkcii na vlastnej infraštruktúre - LinuxDays 2019

Fero Volar
October 06, 2019

Kontajnery v produkcii na vlastnej infraštruktúre - LinuxDays 2019

Ako náročné a bezpečné je prevádzkovať kontajnery v produkcii? Krátke rozprávanie o tom, čo všetko znamená návrh on-premise riešenia a z akých komponentov sa skladá. Prihliadajúc najmä na obľúbený Docker a Kubernetes.

Fero Volar

October 06, 2019
Tweet

More Decks by Fero Volar

Other Decks in Technology

Transcript

  1. Kontajnery v produkcii
    na vlastnej infraštruktúre
    Fero Volár

    View Slide

  2. Fero Volár
    H E A D O F S E R V E R P R O D U C T S
    Pôsobím v ! spoločnosti WebSupport,
    kde už 5 rokov spravujem ☁ cloudové
    produktové portfólio a vediem
    obchodný B2B team.
    Mám 15+ ročné skúsenosti ako senior
    admin, solution architect a konzultant.
    I ❤ containers.
    Zdravím
    #linuxdays
    @websupport_tech
    2

    View Slide

  3. 3
    websupport
    Loopia Group
    @websupport_tech www.websupport.sk

    View Slide

  4. tl;dr
    Ak nemusíte, tak to nerobte
    4
    @websupport_tech www.websupport.sk

    View Slide

  5. View Slide

  6. Prečo on-premise?
    Aké bývajú dôvody na vlastný produkčný setup kontajnerovej
    platformy
    Komponenty
    02.
    Z akých najdôležitejších častí sa kontajnerový cluster skladá +
    nástroje na deployment
    01.
    Poučenia a odporúčania
    03. Najčastejšie úskalia vlastného riešenia
    6
    www.websupport.sk

    View Slide

  7. 7
    1. prečo on-premise?
    @websupport_tech www.websupport.sk

    View Slide

  8. Výhody kontajnerov
    v public cloude
    8
    @websupport_tech www.websupport.sk

    View Slide

  9. nezávislosť na platforme
    efektívna izolácia a zdieľanie zdrojov
    efektivita zdrojov ale aj možnosti škálovania
    rýchlosť: spustenie, vytvorenie, …
    jednoduchá operatíva
    zlepšená produktivita vývojárov a vývojového procesu
    bohatý ekosystém
    automatizácia manuálnych procesov
    nižšie náklady na deployment

    9
    Výhody
    kontajnerov
    v public cloude
    @websupport_tech www.websupport.sk

    View Slide

  10. prečo on-premise
    10
    @websupport_tech www.websupport.sk

    View Slide

  11. nevhodný model prevádzky
    upgrade
    plná kontrola
    sieťové obmedzenia, latencia, traffic do ČR
    bezpečnosť, špeciálne pravidlá a smernice
    HW zdroje vo firme
    vendor lock: sieť, storage, manažment prístupov, …
    11
    najčastejšie
    Dôvody
    Prečo vlastne riešiť vlastný produkčný
    setup kontajnerovej platformy
    namiesto public cloudu
    @websupport_tech www.websupport.sk

    View Slide

  12. “uklepnutie sa” (Mistake that cost thousands)
    nie sú medzi nami: hyper.sh, containership, nanobox
    Kubernetes Failure Stories (k8s.af)
    12
    Ďalšie
    Dôvody
    … lebo ich nikdy nie je dosť
    @websupport_tech www.websupport.sk

    View Slide

  13. Čo je to produkčný
    kontajnerový cluster?
    13
    @websupport_tech www.websupport.sk

    View Slide

  14. cluster, ktorý je rozumne zabezpečený
    komponenty clustera sú vysoko dostupné pre potreby
    používateľov
    zmeny v clusteri sú bezpečné (upgrade & rollback)
    deklaratívny manažment
    akýkoľvek nod môže byť nahradený, akýkoľvek
    kontajner môže byť znovu vytvorený
    14
    Produkcia
    Čo je to produkčný cluster?
    @websupport_tech www.websupport.sk

    View Slide

  15. View Slide

  16. View Slide

  17. 17
    2. komponenty
    @websupport_tech www.websupport.sk

    View Slide

  18. View Slide

  19. Docker
    cri-o
    rkt
    Apache Mesos Containerizer
    LXC
    ...
    19
    engine
    Ten najpopulárnejší či radšej
    alternatívu?
    @websupport_tech www.websupport.sk

    View Slide

  20. Kubernetes
    Docker Swarm
    Apache Mesos
    Hashicorp Nomad
    azk.io
    20
    orchestrácia
    Počet kontajnerov, automatizované
    nasadenie, škálovanie a manažment
    @websupport_tech www.websupport.sk

    View Slide

  21. orchestrácia
    Počet kontajnerov, automatizované
    nasadenie, škálovanie a manažment
    21
    @jano_cifra www.websupport.sk
    Docker Swarm Kubernetes
    jednoduchá a rýchla inštalácia ✅
    krivka učenia ✅
    PoC ✅
    prechod z Dockeru ✅
    pokročilá konfigurácia ✅
    škálovanie ✅
    komunita a ekosystém ✅
    veľké clustre ✅
    veľké teamy ✅
    "handling the unknown" ✅
    GUI ✅

    View Slide

  22. Flannel - menšie a nenáročné setupy
    WeaveNet - ak potrebujete šifrovanie siete
    Calico - BGP features
    Canal (Flannel + Calico ako FW)
    Cilium
    Kube-router
    porovnanie CNI na 10Gbit/s network K8s
    22
    networking
    Jedna z najkritickejších častí
    @websupport_tech www.websupport.sk

    View Slide

  23. Portworx
    Ceph
    Rook
    GlusterFS
    OpenEBS
    Cinder
    NFS
    23
    storage
    Druhá najkritickejšia…
    @websupport_tech www.websupport.sk

    View Slide

  24. Prometheus
    webhook -> Zabbix
    Slack, email
    Monitoring-as-a-service
    Sysdig
    Datadog
    24
    monitoring
    Zdravie vášho clustera
    @websupport_tech www.websupport.sk

    View Slide

  25. EFK - Elasticsearch, Fluentd a Kibana
    Fluentd
    LogTrail
    kubelogs
    25
    logy
    Čím viac zmien robíte, tým dôležitejšie
    sú logy
    @websupport_tech www.websupport.sk

    View Slide

  26. @websupport_tech www.websupport.sk 26

    View Slide

  27. @websupport_tech www.websupport.sk 27
    CI/CD
    Registry
    Service mesh (Istio, Consul, Linkerd, …)
    testovanie (test-infra, kubeval, kube-monkey, …)
    zálohovanie (ETCDCTL_API=3 ./etcdctl snapshot save snapshot.db...
    )
    Čo chýba

    View Slide

  28. pomocníci
    28
    @websupport_tech www.websupport.sk

    View Slide

  29. kops - Kubernetes Operations (AWS ready, GCE and
    OpenStack beta, VMware vSphere alpha)
    kubespray - AWS, GCE, Azure, OpenStack, vSphere,
    Packet (bare metal), Oracle Cloud Infrastructure
    (Experimental) a bare-metal
    tk8 - AWS, OpenStack, Nutanix, bare-metal
    SAP gardener - (GUI); AWS, Azure, GCP, OpenStack
    29
    Inštalátory
    Uľahčujú deployment Kubernetes na
    vašu infraštruktúru a aktualizáciu
    @websupport_tech www.websupport.sk

    View Slide

  30. OKD, RedHat OpenShift
    Canonical Kubernetes
    Mesosphere DC/OS (D2IQ)
    Suse Kubic (cri-o), Suse CaaS platform
    CoreOS, Flatcar Linux
    RancherOS
    OpenStack Magnum
    Docker Kubernetes Service (DKS)
    Kontena Pharos
    Pivotal Container Service (PKS)
    30
    distribúcie
    Celý ekosystém, otvorené aj
    komerčné, aktualizácie
    @websupport_tech www.websupport.sk

    View Slide

  31. View Slide

  32. 32
    Hierarchia potrieb
    pri kontajneroch
    @websupport_tech www.websupport.sk

    View Slide

  33. View Slide

  34. 34
    3. Poučenia
    a odporúčania
    @websupport_tech www.websupport.sk

    View Slide

  35. View Slide

  36. ZMENA
    36
    @websupport_tech www.websupport.sk

    View Slide

  37. GitOps (team)
    “kontajnerizovanie” aplikácie
    bare-metal vs. virtualizácia
    škálovanie, využitie zdrojov
    veľkosť imidžov
    upgrade
    bezpečnosť
    37
    úskalia vlastného
    rieŠenia
    Pain points
    @websupport_tech www.websupport.sk

    View Slide

  38. ako začať?
    38
    @websupport_tech www.websupport.sk

    View Slide

  39. Produkcia
    1 3 4
    Monitoring, bezpečnosť,
    upgrade, CI/CD
    Skoro hotovo
    Prípadne Docker Swarm
    Kubernetes
    Docker
    Konfiguračný
    manažment
    a automatizácia
    39
    @websupport_tech www.websupport.sk
    2
    HA, škálovanie, Git

    View Slide

  40. service discovery
    image management
    vulnerability scanner
    deployment process
    access control
    service mesh
    horizontal autoscaling
    backup
    upgrade infrastructure
    package manager
    40
    Čo Ďalej
    Next steps
    @websupport_tech www.websupport.sk

    View Slide

  41. View Slide

  42. View Slide

  43. nemusíte hneď všetko prerábať na microservices -
    containerize as-is
    vyberte správny image, aktualizujte ho
    nainštalujte potrebné balíčky
    pridajte vaše dáta
    zadefinujte otvorené porty
    43
    kontajnerizácia
    Postupne
    @websupport_tech www.websupport.sk

    View Slide

  44. FROM latest
    špecifikovať verziu kritických balíčkov (apt, yum, …)
    defaultne nakonfigurované aplikácie (DB, PHP, Java, ...) -
    používať ENV, RUN, ENTRYPOINT
    Alpine radšej neskôr - začať s tradičnou distribúciou
    44
    Dockerfile
    Menší imidž je lepší
    @websupport_tech www.websupport.sk

    View Slide

  45. žiadne kontajnery bežiace pod root-om
    šifrovanie komunikácie medzi kontajnermi
    kontajner má prístup len k zdrojom, ktoré potrebuje
    limitujte zdroje (storage, compute, memory, network)
    neukladať prístupové údaje v kontajneroch
    pre Kubernetes zapnúť Role-Based Access Control
    (RBAC)
    Namespaces v Kubernetes
    infraštruktúra (OS, firmware, …)
    45
    Bezpečnosť
    Security, security, security
    @websupport_tech www.websupport.sk

    View Slide

  46. plán B
    46
    @websupport_tech www.websupport.sk

    View Slide

  47. plán B
    47
    @websupport_tech www.websupport.sk

    View Slide

  48. A curated list for awesome Kubernetes sources
    A curated list of Docker resources and projects
    stackshare.io
    bit.ly/kubeweekly newsletter
    Slack: Kubernetes, Docker
    48
    odporúčané zdroje
    Kam ďalej
    @websupport_tech www.websupport.sk

    View Slide

  49. View Slide

  50. Ďekuji!
    @websupport_tech

    View Slide