Version 4 · Migration
OpenShift-Manifeste und Betrieb
Aus der Anwendung wird ein betreibbares OpenShift-Artefakt mit Deployment, Service, Route, Ressourcen, Probes, Volumes und Betriebsregeln.
Was ein vollständiges Manifest leisten muss
Ein Manifest ist mehr als ein Deployment. Für Enterprise-Betrieb gehören Service, Route/Ingress, Config, Secret, Ressourcenlimits, Probes, Volumes, ServiceAccount, NetworkPolicy, RBAC und gegebenenfalls HPA oder CronJob dazu.
Manifest-Bausteine
| Baustein | Rolle |
|---|---|
| Deployment | ReplicaSet, Rolling Update, Pod Template, Ressourcen, Probes. |
| Service | Stabile interne Adresse für Pods. |
| Route | OpenShift-spezifischer externer Zugriff mit TLS-Termination. |
| ConfigMap/Secret | Umgebungsspezifische Parameter und geheime Werte. |
| NetworkPolicy | Kommunikationsgrenzen explizit machen. |
| HPA | Skalierung nach Metriken, wenn Anwendung horizontal skalierbar ist. |
| CronJob | Batch-/Scheduler-Modernisierung für zeitgesteuerte Jobs. |
Deployment-Beispiel
OpenShift YAML - zentraler Betriebsbaustein
apiVersion: apps/v1
kind: Deployment
metadata:
name: billing-modern-api
labels:
app: billing-modern-api
spec:
replicas: 2
selector:
matchLabels:
app: billing-modern-api
template:
metadata:
labels:
app: billing-modern-api
spec:
containers:
- name: app
image: image-registry.openshift-image-registry.svc:5000/legacy-v4/billing-modern-api:1.0.0
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: billing-config
- secretRef:
name: billing-secrets
readinessProbe:
httpGet:
path: /q/health/ready
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
livenessProbe:
httpGet:
path: /q/health/live
port: 8080
initialDelaySeconds: 30
periodSeconds: 20
---
apiVersion: v1
kind: Service
metadata:
name: billing-modern-api
spec:
selector:
app: billing-modern-api
ports:
- name: http
port: 8080
targetPort: 8080
---
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: billing-modern-api
spec:
to:
kind: Service
name: billing-modern-api
port:
targetPort: http
tls:
termination: edge