Zum Hauptinhalt springen

Ressourcen

Startblöcke für Kubernetes- und OpenShift-Ressourcen. Jeder Startblock erzeugt ein YAML-Dokument; mehrere in einer Datei werden mit --- getrennt.

BlockArtPlatz
Namespace …Startoberste Ebene
Deployment … Replicas …Startoberste Ebene
StatefulSet … Replicas … Service …Startoberste Ebene
DaemonSet …Startoberste Ebene
Job … Versuche …Startoberste Ebene
CronJob … Zeitplan …Startoberste Ebene
Service … für App … Typ …Startoberste Ebene
Route … → Service … Port …Startoberste Ebene
Ingress … Klasse …Startoberste Ebene
ConfigMap …Startoberste Ebene
Secret … Typ …Startoberste Ebene
Speicher (PVC) … Größe … Zugriff …Startoberste Ebene
Autoscaler … für Deployment … min … max …Startoberste Ebene
ImageStream … lokaler Lookup …Startoberste Ebene
BuildConfig … → ImageStreamTag … Ablauf …Startoberste Ebene
ServiceAccount …Startoberste Ebene
Eigene Ressource … kind … apiVersion …Startoberste Ebene

Namespace …​

Namespace [1]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_namespace

#FeldArtStandardAuswahl
1NAMETextdemo-project
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: Namespace
metadata:
name: demo-project

Deployment … Replicas …​

Deployment [1] Replicas [2]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_deployment

Startet Pods. Lege Container (orange) und Metadaten darunter.

#FeldArtStandardAuswahl
1NAMETextdemo-app
2REPLICASZahl2
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 …​

StatefulSet [1] Replicas [2] Service [3]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_statefulset

#FeldArtStandardAuswahl
1NAMETextpostgres
2REPLICASZahl1
3SVCTextpostgres
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 …​

DaemonSet [1]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_daemonset

#FeldArtStandardAuswahl
1NAMETextnode-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 …​

Job [1] Versuche [2]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_job

#FeldArtStandardAuswahl
1NAMETextdb-migrate
2BACKOFFZahl3
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 …​

CronJob [1] Zeitplan [2]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_cronjob

#FeldArtStandardAuswahl
1NAMETextnightly-backup
2SCHEDULEText0 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 …​

Service [1] für App [2] Typ [3]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_service

#FeldArtStandardAuswahl
1NAMETextdemo-app
2APPTextdemo-app
3TYPEAuswahlClusterIPClusterIP, 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 …​

Route [1] → Service [2] Port [3]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_route

OpenShift Route: macht einen Service von außen erreichbar.

#FeldArtStandardAuswahl
1NAMETextdemo-app
2SVCTextdemo-app
3PORTTexthttp
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 …​

Ingress [1] Klasse [2]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_ingress

#FeldArtStandardAuswahl
1NAMETextdemo-app
2CLASSTextnginx
Erzeugtes YAML mit Standardwerten
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo-app
spec:
ingressClassName: nginx

ConfigMap …​

ConfigMap [1]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_configmap

#FeldArtStandardAuswahl
1NAMETextdemo-app-config
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-app-config

Secret … Typ …​

Secret [1] Typ [2]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_secret

Achtung: Base64 ist keine Verschlüsselung. Keine echten Passwörter in Git committen!

#FeldArtStandardAuswahl
1NAMETextdemo-app-secret
2TYPEAuswahlOpaqueOpaque, 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 …​

Speicher (PVC) [1] Größe [2] Zugriff [3]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_pvc

#FeldArtStandardAuswahl
1NAMETextdemo-app-data
2SIZEText5Gi
3MODEAuswahlReadWriteOnceReadWriteOnce, 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 …​

Autoscaler [1] für Deployment [2] min [3] max [4]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_hpa

#FeldArtStandardAuswahl
1NAMETextdemo-app-hpa
2TARGETTextdemo-app
3MINZahl2
4MAXZahl5
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 …​

ImageStream [1] lokaler Lookup [2]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_imagestream

OpenShift ImageStream: Ziel für BuildConfig-Images.

#FeldArtStandardAuswahl
1NAMETextdemo-app
2LOCALHäkchenaus
Erzeugtes YAML mit Standardwerten
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: demo-app
spec:
lookupPolicy:
local: false

BuildConfig … → ImageStreamTag … Ablauf …​

BuildConfig [1] → ImageStreamTag [2] Ablauf [3]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_buildconfig

OpenShift BuildConfig: baut ein Image aus Git und schiebt es in einen ImageStream.

#FeldArtStandardAuswahl
1NAMETextdemo-app-build
2OUTTextdemo-app:latest
3RUNAuswahlSerialSerial, 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 …​

ServiceAccount [1]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_serviceaccount

#FeldArtStandardAuswahl
1NAMETextdemo-app
Erzeugtes YAML mit Standardwerten
apiVersion: v1
kind: ServiceAccount
metadata:
name: demo-app

Eigene Ressource … kind … apiVersion …​

Eigene Ressource [1] kind [2] apiVersion [3]

Startblock – beginnt ein YAML-Dokument · Typ-ID k8s_custom

Für jede andere Ressource. Nutze die Extras-Blöcke für den Inhalt.

#FeldArtStandardAuswahl
1NAMETextmy-resource
2KINDTextCertificate
3APITextcert-manager.io/v1
Erzeugtes YAML mit Standardwerten
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: my-resource