Dev Ops A rendszerfejleszts s zemeltets kapcsoldsa VIMIAV
- Slides: 28
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 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ú 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 é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 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 (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 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 § 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 á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: 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 12
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 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 § 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 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 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
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 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é 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, 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 § Volume o Fizikai fájlrendszer kötetek definíciója § Secrets 24
POD és deployment menedzsment 25
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 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. io/ https: //aws. amazon. com/eks/ https: //kubernetes. io/docs/setup/learningenvironment/minikube/ 28
- Dev ops sec
- Capato dev ops
- Cug card
- Ad monsters
- Field scout mobile app
- Ops student transportation
- Declinazione os ossis
- North ops weather
- Ops operating system
- Invoice opstechnology
- Gcaa car ops
- Advanced ops idaho
- Riss ops
- Pansops
- Fedbizz
- Fin ops
- Ops o cps
- Patrol base ops
- Cp ops betekenis
- Ops
- Pans ops circling radius
- Ops 2005
- Ops 2014
- Glast tm
- Waukesha airport code
- Struktur organisasi bareskrim polri
- Ops technology invoicing
- Ops jyu
- Susunan pejabat polda metro jaya 2021