176 lines
2.8 KiB
Markdown
176 lines
2.8 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"]
|
|
```
|
|
|
|
---
|
|
|
|
## 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*
|