kontajnery v produkcii na vlastnej infraštruktúre · docker swarm kubernetes ......
TRANSCRIPT
Kontajnery v produkcii na vlastnej infraštruktúreFero Volár
Fero VolárH 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
3
websupportLoopia Group
@websupport_tech w w w.w e b s u p p o r t. s k
tl;dr Ak nemusíte, tak to nerobte
4@websupport_tech w w w.w e b s u p p o r t. s k
Prečo on-premise?Aké bývajú dôvody na vlastný produkčný setup kontajnerovej platformy
Komponenty02. Z akých najdôležitejších častí sa kontajnerový cluster skladá
+ nástroje na deployment
01.
Poučenia a odporúčania03. Najčastejšie úskalia vlastného riešenia
6w w w.w e b s u p p o r t. s k
7
1 . prečo on-premise?
@websupport_tech w w w.w e b s u p p o r t. s k
Výhody kontajnerov v public cloude
8@websupport_tech w w w.w e b s u p p o r t. s k
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 kontajnerovv public cloude
@websupport_tech w w w.w e b s u p p o r t. s k
prečo on-premise
10@websupport_tech w w w.w e b s u p p o r t. s k
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ôvodyPrečo vlastne riešiť vlastný produkčný setup kontajnerovej platformy namiesto public cloudu
@websupport_tech w w w.w e b s u p p o r t. s k
“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 w w w.w e b s u p p o r t. s k
Čo je to produkčný kontajnerový cluster?
13@websupport_tech w w w.w e b s u p p o r t. s k
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 w w w.w e b s u p p o r t. s k
17
2 . komponenty
@websupport_tech w w w.w e b s u p p o r t. s k
Docker
cri-o
rkt
Apache Mesos Containerizer
LXC
...
19
engineTen najpopulárnejší či radšej alternatívu?
@websupport_tech w w w.w e b s u p p o r t. s k
Kubernetes
Docker Swarm
Apache Mesos
Hashicorp Nomad
azk.io
20
orchestráciaPočet kontajnerov, automatizované nasadenie, škálovanie a manažment
@websupport_tech w w w.w e b s u p p o r t. s k
orchestráciaPočet kontajnerov, automatizované nasadenie, škálovanie a manažment
21@jano_cifra w w w.w e b s u p p o r t. s k
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 ✅
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
networkingJedna z najkritickejších častí
@websupport_tech w w w.w e b s u p p o r t. s k
Portworx
Ceph
Rook
GlusterFS
OpenEBS
Cinder
NFS
23
storageDruhá najkritickejšia…
@websupport_tech w w w.w e b s u p p o r t. s k
Prometheus
webhook -> Zabbix
Slack, email
Monitoring-as-a-service
Sysdig
Datadog
24
monitoringZdravie vášho clustera
@websupport_tech w w w.w e b s u p p o r t. s k
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 w w w.w e b s u p p o r t. s k
@websupport_tech w w w.w e b s u p p o r t. s k 26
@websupport_tech w w w.w e b s u p p o r t. s k 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
pomocníci
28@websupport_tech w w w.w e b s u p p o r t. s k
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átoryUľahčujú deployment Kubernetes na vašu infraštruktúru a aktualizáciu
@websupport_tech w w w.w e b s u p p o r t. s k
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úcieCelý ekosystém, otvorené aj komerčné, aktualizácie
@websupport_tech w w w.w e b s u p p o r t. s k
32
Hierarchia potrieb pri kontajneroch
@websupport_tech w w w.w e b s u p p o r t. s k
34
3 . Poučenia a odporúčania
@websupport_tech w w w.w e b s u p p o r t. s k
ZMENA
36@websupport_tech w w w.w e b s u p p o r t. s k
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ŠeniaPain points
@websupport_tech w w w.w e b s u p p o r t. s k
ako začať?
38@websupport_tech w w w.w e b s u p p o r t. s k
Produkcia1 3 4
Monitoring, bezpečnosť, upgrade, CI/CD
Skoro hotovo
Prípadne Docker Swarm
Kubernetes
Docker
Konfiguračný manažmenta automatizácia
39@websupport_tech w w w.w e b s u p p o r t. s k
2
HA, škálovanie, Git
service discovery
image management
vulnerability scanner
deployment process
access control
service mesh
horizontal autoscaling
backup
upgrade infrastructure
package manager
40
Čo ĎalejNext steps
@websupport_tech w w w.w e b s u p p o r t. s k
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áciaPostupne
@websupport_tech w w w.w e b s u p p o r t. s k
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
DockerfileMenší imidž je lepší
@websupport_tech w w w.w e b s u p p o r t. s k
ž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 w w w.w e b s u p p o r t. s k
plán B
46@websupport_tech w w w.w e b s u p p o r t. s k
plán B
47@websupport_tech w w w.w e b s u p p o r t. s k
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é zdrojeKam ďalej
@websupport_tech w w w.w e b s u p p o r t. s k
Ďekuji !
@websupport_tech