Files
ihk-ausbildung/2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-03-Virtualisierung.md
Jan-Marlon Leibl 7df533c7a2 Add practical examples to multiple files
- LF9-03 Virtualisierung: Docker Compose + Volume examples
- LF6-02 Frontend: To-Do list practical example
- LF8-04 ETL: Complete ETL pipeline example
- LF6-04 Sicherheit: Express.js security headers
- LF2-04 Nutzwertanalyse: Cloud provider selection example
- LF9-04 Monitoring: Prometheus alerts + Python logging
2026-03-13 12:01:15 +01:00

229 lines
3.6 KiB
Markdown

# 9.3 Virtualisierung
## Virtualisierung - Grundlagen
### Was ist Virtualisierung?
```
Virtualisierung
Mehrere virtuelle Maschinen auf einer
physischen Hardware betreiben
```
### Vorteile
| Vorteil | Beschreibung |
|---------|-------------|
| Kosteneinsparung | Weniger Hardware |
| Flexibilität | Schnell bereitgestellt |
| Isolation | Getrennte Umgebungen |
| Skalierung | Leicht erweiterbar |
| Testumgebung | Schnell aufgesetzt |
---
## Virtualisierungstypen
### Full Virtualization
```
Gast-OS läuft unverändert
├── VMware Workstation
├── VirtualBox
└── Hyper-V
```
### Para-Virtualization
```
Gast-OS weiß von Virtualisierung
├── Xen
└── Citrix XenServer
```
### Container-Virtualisierung
```
Leichtgewichtige Virtualisierung
├── Docker
├── Podman
└── Kubernetes
```
---
## Docker
### Grundlagen
```
Docker - Begriffe
├── Image: Vorlage (Template)
├── Container: Laufende Instanz
├── Dockerfile: Image-Beschreibung
├── Registry: Image-Speicher
└── Volume: Persistenter Speicher
```
### Docker-Befehle
```bash
# Container starten
docker run -d -p 8080:80 nginx
# Container auflisten
docker ps
docker ps -a
# Container stoppen
docker stop container_id
# Image bauen
docker build -t mein-image .
# Container entfernen
docker rm container_id
```
### Dockerfile
```dockerfile
# Basis-Image
FROM node:18-alpine
# Arbeitsverzeichnis
WORKDIR /app
# Dateien kopieren
COPY package*.json ./
COPY . .
# Abhängigkeiten installieren
RUN npm install
# Port freigeben
EXPOSE 3000
# Startbefehl
CMD ["node", "server.js"]
```
### Praktisches Beispiel: Docker Compose
```yaml
# docker-compose.yml
version: '3.8'
services:
# Webanwendung
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://db:5432/webapp
depends_on:
- db
- redis
# Datenbank
db:
image: postgres:15-alpine
volumes:
- db_data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=geheim
- POSTGRES_DB=webapp
# Cache
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
db_data:
```
### Praktisches Beispiel: Docker Volume
```bash
# Volume erstellen
docker volume create mydata
# Volume einhängen
docker run -v mydata:/data ubuntu
# Volumes auflisten
docker volume ls
# Unbenutzte Volumes löschen
docker volume prune
```
---
## Kubernetes
### Architektur
```
Kubernetes - Komponenten
├── Master Node
│ ├── API Server
│ ├── Scheduler
│ ├── Controller Manager
│ └── etcd
├── Worker Nodes
│ ├── Kubelet
│ ├── Kube Proxy
│ └── Container Runtime
└── Add-ons (DNS, Dashboard)
```
### Kubernetes-Objekte
| Objekt | Beschreibung |
|--------|-------------|
| Pod | Kleinste Einheit (1+ Container) |
| Deployment | Replikate, Updates |
| Service | Netzwerkzugriff |
| Ingress | HTTP-Routing |
| ConfigMap | Konfiguration |
| Secret | Sensitive Daten |
---
## Cloud-Computing
### Service-Modelle
```
Cloud - Modelle
├── IaaS: Infrastructure as a Service
│ └── Virtuelle Maschinen, Netzwerk
├── PaaS: Platform as a Service
│ └── Laufzeitumgebung
└── SaaS: Software as a Service
└── Fertige Anwendung
```
### Anbieter
| Anbieter | Service |
|----------|----------|
| AWS | EC2, S3, Lambda |
| Azure | VMs, Blob, Functions |
| Google Cloud | Compute Engine, Cloud Storage |
---
## Querverweise
- [[LF9-02-Server|Zurück: Server]]
- [[LF9-04-Monitoring|Nächstes Thema: Monitoring]]
---
*Stand: 2024*