Ressourcen
Startblöcke für Kubernetes- und OpenShift-Ressourcen. Jeder Startblock erzeugt ein YAML-Dokument; mehrere in einer Datei werden mit --- getrennt.
| Block | Art | Platz |
|---|---|---|
| Namespace … | Start | oberste Ebene |
| Deployment … Replicas … | Start | oberste Ebene |
| StatefulSet … Replicas … Service … | Start | oberste Ebene |
| DaemonSet … | Start | oberste Ebene |
| Job … Versuche … | Start | oberste Ebene |
| CronJob … Zeitplan … | Start | oberste Ebene |
| Service … für App … Typ … | Start | oberste Ebene |
| Route … → Service … Port … | Start | oberste Ebene |
| Ingress … Klasse … | Start | oberste Ebene |
| ConfigMap … | Start | oberste Ebene |
| Secret … Typ … | Start | oberste Ebene |
| Speicher (PVC) … Größe … Zugriff … | Start | oberste Ebene |
| Autoscaler … für Deployment … min … max … | Start | oberste Ebene |
| ImageStream … lokaler Lookup … | Start | oberste Ebene |
| BuildConfig … → ImageStreamTag … Ablauf … | Start | oberste Ebene |
| ServiceAccount … | Start | oberste Ebene |
| Eigene Ressource … kind … apiVersion … | Start | oberste Ebene |
Namespace …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_namespace
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-project |
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: Namespace
metadata:
name: demo-project
Deployment … Replicas …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_deployment
Startet Pods. Lege Container (orange) und Metadaten darunter.
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app | |
| 2 | REPLICAS | Zahl | 2 |
Erzeugtes YAML mit Standardwerten
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-app
spec:
replicas: 2
selector:
matchLabels:
app: demo-app
template:
metadata:
labels:
app: demo-app
StatefulSet … Replicas … Service …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_statefulset
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | postgres | |
| 2 | REPLICAS | Zahl | 1 | |
| 3 | SVC | Text | postgres |
Erzeugtes YAML mit Standardwerten
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres
spec:
serviceName: postgres
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
DaemonSet …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_daemonset
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | node-agent |
Erzeugtes YAML mit Standardwerten
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-agent
spec:
selector:
matchLabels:
app: node-agent
template:
metadata:
labels:
app: node-agent
Job … Versuche …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_job
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | db-migrate | |
| 2 | BACKOFF | Zahl | 3 |
Erzeugtes YAML mit Standardwerten
apiVersion: batch/v1
kind: Job
metadata:
name: db-migrate
spec:
backoffLimit: 3
template:
metadata:
labels:
app: db-migrate
spec:
restartPolicy: Never
CronJob … Zeitplan …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_cronjob
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | nightly-backup | |
| 2 | SCHEDULE | Text | 0 2 * * * |
Erzeugtes YAML mit Standardwerten
apiVersion: batch/v1
kind: CronJob
metadata:
name: nightly-backup
spec:
schedule: 0 2 * * *
jobTemplate:
spec:
template:
metadata:
labels:
app: nightly-backup
spec:
restartPolicy: OnFailure
Service … für App … Typ …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_service
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app | |
| 2 | APP | Text | demo-app | |
| 3 | TYPE | Auswahl | ClusterIP | ClusterIP, NodePort, LoadBalancer, ExternalName |
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: Service
metadata:
name: demo-app
spec:
selector:
app: demo-app
type: ClusterIP
Route … → Service … Port …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_route
OpenShift Route: macht einen Service von außen erreichbar.
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app | |
| 2 | SVC | Text | demo-app | |
| 3 | PORT | Text | http |
Erzeugtes YAML mit Standardwerten
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: demo-app
spec:
to:
kind: Service
name: demo-app
port:
targetPort: http
Ingress … Klasse …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_ingress
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app | |
| 2 | CLASS | Text | nginx |
Erzeugtes YAML mit Standardwerten
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo-app
spec:
ingressClassName: nginx
ConfigMap …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_configmap
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app-config |
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-app-config
Secret … Typ …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_secret
Achtung: Base64 ist keine Verschlüsselung. Keine echten Passwörter in Git committen!
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app-secret | |
| 2 | TYPE | Auswahl | Opaque | Opaque, kubernetes.io/dockerconfigjson, kubernetes.io/tls, kubernetes.io/basic-auth, kubernetes.io/ssh-auth |
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: Secret
metadata:
name: demo-app-secret
type: Opaque
Speicher (PVC) … Größe … Zugriff …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_pvc
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app-data | |
| 2 | SIZE | Text | 5Gi | |
| 3 | MODE | Auswahl | ReadWriteOnce | ReadWriteOnce, ReadWriteMany, ReadOnlyMany, ReadWriteOncePod |
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: demo-app-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Autoscaler … für Deployment … min … max …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_hpa
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app-hpa | |
| 2 | TARGET | Text | demo-app | |
| 3 | MIN | Zahl | 2 | |
| 4 | MAX | Zahl | 5 |
Erzeugtes YAML mit Standardwerten
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: demo-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: demo-app
minReplicas: 2
maxReplicas: 5
ImageStream … lokaler Lookup …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_imagestream
OpenShift ImageStream: Ziel für BuildConfig-Images.
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app | |
| 2 | LOCAL | Häkchen | aus |
Erzeugtes YAML mit Standardwerten
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: demo-app
spec:
lookupPolicy:
local: false
BuildConfig … → ImageStreamTag … Ablauf …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_buildconfig
OpenShift BuildConfig: baut ein Image aus Git und schiebt es in einen ImageStream.
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app-build | |
| 2 | OUT | Text | demo-app:latest | |
| 3 | RUN | Auswahl | Serial | Serial, Parallel, SerialLatestOnly |
Erzeugtes YAML mit Standardwerten
apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
name: demo-app-build
spec:
runPolicy: Serial
output:
to:
kind: ImageStreamTag
name: demo-app:latest
ServiceAccount …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_serviceaccount
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | demo-app |
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: ServiceAccount
metadata:
name: demo-app
Eigene Ressource … kind … apiVersion …
Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_custom
Für jede andere Ressource. Nutze die Extras-Blöcke für den Inhalt.
| # | Feld | Art | Standard | Auswahl |
|---|---|---|---|---|
| 1 | NAME | Text | my-resource | |
| 2 | KIND | Text | Certificate | |
| 3 | API | Text | cert-manager.io/v1 |
Erzeugtes YAML mit Standardwerten
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: my-resource