Dev Ops A rendszerfejleszts s zemeltets kapcsoldsa VIMIAV

  • Slides: 28
Download presentation
Dev. Ops: A rendszerfejlesztés és üzemeltetés kapcsolódása (VIMIAV 21) Dev. Ops – Konténer virtualizációs

Dev. Ops: A rendszerfejlesztés és üzemeltetés kapcsolódása (VIMIAV 21) Dev. Ops – Konténer virtualizációs technológiák Szatmári Zoltán Méréstechnika és Információs Rendszerek Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1

Operációs rendszer szintű virtualizáció § Eddig platform virtualizációval foglalkoztunk App. OS Virt. App. OS

Operációs rendszer szintű virtualizáció § Eddig platform virtualizációval foglalkoztunk App. OS Virt. App. OS OS Virt. szoftver Hardver Konténer App. OS Hardver -Ha megfelel, hogy azonos az OS kernel a vendég gépek között -Ha csak izoláció, erőforrás-korlátozás kell -> nem kell VMM, elég az OS alkalmazás szétválasztása

Operációs rendszer szintű virtualizáció § Operációs rendszer szintű virtualizáció – más néven konténer alapú

Operációs rendszer szintű virtualizáció § Operációs rendszer szintű virtualizáció – más néven konténer alapú virtualizáció o BSD-ken: Jail o Solaris: Containers, Zones o Linux alatt: Open. VZ (Parallels Virtuozzoból a Linux kernel módú részei), Linux Vserver, LXC, Docker o AIX: WPAR (workload partitions) o Windows: Parallels Virtuozzo

Operációs rendszer szintű virtualizáció § nagyon kis költségű o elvileg nem 0 – csak

Operációs rendszer szintű virtualizáció § nagyon kis költségű o elvileg nem 0 – csak éppen nem lehet kimérni olyan kicsi o konténerenként nincsenek további vendég kernelek § erőforrás virtualizációs és § erőforrás gazdálkodási szempontból problémamentes o nincs fixen lefoglalt memória, nem kell trükközés ballonozással stb. o nincs fixen lefoglalt háttértár – a hoszt fájlrendszere fájl szinten elérhető § biztonsági szempontból kevésbé jó izoláció § közös kernellel kell élni (azonos verzió, fordítási paraméterek)

OS szintű virtualizáció vs. Platform virtualizáció § Hypervisor o Egy fizikai, számos virtuális hardver

OS szintű virtualizáció vs. Platform virtualizáció § Hypervisor o Egy fizikai, számos virtuális hardver o Vegyes operációs rendszerek o Kisebb sűrűség o Kisebb teljesítmény § OS szintű virtualizáció o Egy fizikai hardver, nincs virtuális o Egy kernel, userspace példányok o Nagy sűrűség o Közel natív teljesítmény

Control Groups (cgroups) § Linux kernel funkció, mely izolálja és kontrollálja az egyes folyamatok

Control Groups (cgroups) § Linux kernel funkció, mely izolálja és kontrollálja az egyes folyamatok (process) erőforráshasználatát. § Namespace – az izoláció alapja o Process o Mount o Network o User 6

Linux containers - LXC § Az első cgroups-alapú konténer virtualizációs implementáció § Virtuális környezet

Linux containers - LXC § Az első cgroups-alapú konténer virtualizációs implementáció § Virtuális környezet kialakítása o Izolált process tér o Izolált hálózati tér § Jellemző: init folyamat és teljes Linux „user space” 7

Docker § Docker: egy platform alkalmazások fejlesztésére, csomagolására és publikálására konténer virtualizációs technológiára alapozva

Docker § Docker: egy platform alkalmazások fejlesztésére, csomagolására és publikálására konténer virtualizációs technológiára alapozva § Szintén cgroups-alapú implementáció o Eredetileg Linux o Ma már Windows környezetben is § Jellemző: könnyűsúlyú konténerek, tipikusan egy folyamat futtatására 8

Docker Image, Container § A virtualizációnál tárgyalt „sablon” – „példány” viszony (statikus – dinamikus

Docker Image, Container § A virtualizációnál tárgyalt „sablon” – „példány” viszony (statikus – dinamikus állapot). § A Docker Image „tartalmazza” a futó konténer létrehozásához szükséges összes információt: o Lemezkép rétegek o Metaadatok • Környezeti változók • Belépési pont és paraméterek • … § Elnevezési konvenció: repository/image: tag Demo: PHP docker image repository 9

Docker registry § Publikus, vagy privát tároló Docker Image-ek megosztására, tárolására § Docker Hub:

Docker registry § Publikus, vagy privát tároló Docker Image-ek megosztására, tárolására § Docker Hub: o az „alapértelmezett” registry o szabadon használható alap image-ek gyűjteménye, pl: • • Java, PHP, Node. JS, … Ubuntu, Cent. OS, Debian, … My. SQL, Postgre. SQL, … Rapid. Miner Server, … § Léteznek privát registry implementációk o Nexus, Portus, … 10

Rétegezett fájlrendszer 11

Rétegezett fájlrendszer 11

Rétegezett fájlrendszer 12

Rétegezett fájlrendszer 12

Dockerfile § A Docker Image létrehozásához szükséges lépések szöveges leírása § Tartalma lehet pl:

Dockerfile § A Docker Image létrehozásához szükséges lépések szöveges leírása § Tartalma lehet pl: o FROM – alapul vett Docker Image o RUN – Futtatandó parancs megadása o ADD – fájlok, mappák hozzáadása a fájlrendszerhez o ENV – Környezeti változó beállítása o ARG – Fordítási paraméter definiálása o CMD – Konténer indítási parancs definiálása o ENTRYPOINT – Konténer belépési pont megadása 13

Docker környezet – Docker Engine § Menedzsment réteg § Főbb feladatai: o Futó és

Docker környezet – Docker Engine § Menedzsment réteg § Főbb feladatai: o Futó és megállított konténerek kezelése o Image-ek • Fordítása • Letöltése • Publikálása o Logikai hálózatok kezelése o Lemezkötetek kezelése 14

Fontosabb Docker parancsok § docker run –it –e ENV 1=value image: tag command §

Fontosabb Docker parancsok § docker run –it –e ENV 1=value image: tag command § docker build –f path/Dockerfile –t image: tag path 2 § docker tag image 1: tag 1 image 2: tag 2 § docker push image: tag § docker pull image: tag 15

Docker előnyei § § § Jól szeparált/izolált infrastruktúra építőelemek Függőségekkel együtt való csomagolás, szállítás

Docker előnyei § § § Jól szeparált/izolált infrastruktúra építőelemek Függőségekkel együtt való csomagolás, szállítás Portabilitás Skálázhatóság Rugalmas hálózati konfiguráció 16

Orchestartion § Multi-container alkalmazások definiálása, telepítése kihívás a hagyományos eszközökkel: o Konténerek paraméterezése o

Orchestartion § Multi-container alkalmazások definiálása, telepítése kihívás a hagyományos eszközökkel: o Konténerek paraméterezése o Speciális hálózatok megadása o Hálózati címek átadása o Fájlrendszeri kötetek medzselése § Szükséges egy leírónyelv ilyen célokra ØDocker-compose technológia 17

Docker-compose 18

Docker-compose 18

Kubernetes § „Container management/orchestration system” § Konténer-alapú alkalmazások telepítése többszerveres (cluster) környezetben o Konténerek

Kubernetes § „Container management/orchestration system” § Konténer-alapú alkalmazások telepítése többszerveres (cluster) környezetben o Konténerek elosztása o Erőforrások kezelése o Megosztott fájlrendszeri kötetek kezelése o Virtuális hálózat kialakítása 19

Kubernetes architektúra 20

Kubernetes architektúra 20

Kubernetes felhasználási folyamata 21

Kubernetes felhasználási folyamata 21

Felhasználási példák § Indítsunk 4 példányt a mycompany/api: 1. 2 imageből o Tegyünk elé

Felhasználási példák § Indítsunk 4 példányt a mycompany/api: 1. 2 imageből o Tegyünk elé egy terheléselosztót és publikáljuk § Új release van, publikáljunk belőle 4 konténert és lassan tereljük át a felhasználókat az új verzióra § Black Friday közeledik, skálázzuk fel az infrastruktúrát a várható terhelés kezelésére 22

Kubernetes alapfogalmak § POD o Az oszthatatlan építőelem, mely egy hosztra kerül telepítése. Egy,

Kubernetes alapfogalmak § POD o Az oszthatatlan építőelem, mely egy hosztra kerül telepítése. Egy, vagy több konténer és konfigurációjuk összessége. § Label o Címkék, melyekkel erőforrásokat megjelölve később hivatkozhatunk rájuk (Selector) § Replica. Set / Daemon. Set / Deployment o POD-ok csoportosítása, mely garantálja a típusnak megfelelő replikációt 23

Kubernetes alapfogalmak § Service o Fix hálózati elérése a POD-oknak, vagy egy halmazuknak §

Kubernetes alapfogalmak § Service o Fix hálózati elérése a POD-oknak, vagy egy halmazuknak § Volume o Fizikai fájlrendszer kötetek definíciója § Secrets 24

POD és deployment menedzsment 25

POD és deployment menedzsment 25

Kubernetes – speciális funkciók § Autoscaling § Blue/green deployment § Overcommit o Alacsony prioritású

Kubernetes – speciális funkciók § Autoscaling § Blue/green deployment § Overcommit o Alacsony prioritású feladatok indítása § Erőforrás gazdálkodás o Minimum és maximum erőforrások definiálása 26

Kubernetes megoldások § § § AWS (Elastic Kubernetes service) Azure (Azure Kubernetes Service) Google

Kubernetes megoldások § § § AWS (Elastic Kubernetes service) Azure (Azure Kubernetes Service) Google Cloud (Kubernetes service) On premise deployment Single node installations o Windows: Mini. Kube o Linux: Micro. K 8 S 27

Hivatkozások § § § https: //hub. docker. com/ https: //docs. docker. com/compose/ https: //kubernetes.

Hivatkozások § § § https: //hub. docker. com/ https: //docs. docker. com/compose/ https: //kubernetes. io/ https: //aws. amazon. com/eks/ https: //kubernetes. io/docs/setup/learningenvironment/minikube/ 28