SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Kubernetes ist so viel mehr als ein
Container-Orchestrierer
Kubernetes Experts Day


@LeanderReimer #qaware #CloudNativeNerd #ConCon21
Dev Ops
API SPI
Mario-Leander Reimer


Principal Software Architect


@LeanderReimer


#cloudnativenerd #qaware
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Quellcode und Demos
3
https://github.com/lreimer/k8s-experts-day
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Anno 2016 …
4
Kubernetes 101
and Fun
| ContainerCon Europe 2016 | created with ☁ and ☕ by @LeanderReimer 1
https://github.com/qaware/kubepad
https://speakerdeck.com/lreimer/kubernetes-101-and-fun
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Das Kubernetes ABC
5
Deployment
Service
Replica
Set


Pod
Container
Container
Labels:
<K,V>
Port
Volume
Con
fi
gMap
apiVersion: v1


kind: Service


metadata:


name: nginx-service


spec:


type: LoadBalancer


ports:


- port: 80


protocol: TCP


selector:


app: nginx
apiVersion: apps/v1


kind: Deployment


metadata:


name: nginx-deployment


spec:


selector:


matchLabels:


app: nginx


replicas: 2


template:


metadata:


labels:


app: nginx


environment: integration


spec:


containers:


- name: nginx


image: nginx:1.19.4-alpine


ports:


- containerPort: 80
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
6
5:38 PM - 24. Februar 2019
10:04 PM - 27. November 2017
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Kubernetes ist eine
fl
exibel erweiterbare Platform mit
zahlreichen APIs und SPIs die deklarativ aber auch
programmatisch genutzt werden können um neue
Abstraktionen und eigene Erweiterungen zu realisieren.
7
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Unser Fahrplan für heute
• DRY! Declarative Management of K8s Objects with Kustomize


• Imperative Management of K8s Objects (Teaser)


• Continuous Testing mit Kubernetes


• Wege zur Nutzung des Kubernetes APIs


• Erweiterung des Kubernetes APIs mit Custom Resources


• Das Operator Pattern: Entwicklung von Custom Controllern
8
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Don’t repeat yourself!
• Kustomize: Kubernetes Native
Con
fi
guration management.


• A template-free way to customize your
application con
fi
guration


• Reduziert die Redundanz in Umgebungs-
abhängigen Kon
fi
gurationen


• Wird seit v1.15 ab Werk von kubectl per
apply -k unterstützt


• https://kustomize.io
9
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Breakout Session um 13:15




Imperative Management of K8s
Objects with Pulumi
10
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Continuous Testing the Kubernetes Way
• Ausgangs-Situation: High-Level Tests wie Performance, Security oder
Acceptance Tests werden zu spät und zu selten ausgeführt


• Integration und Ausführung der Tests als fester Bestandteil der CI Pipelines
führt zu langen Feedback-Zyklen


• Lösung: kontinuierliches Ausführen der Tests in der Integrations- oder QA-
Umgebung mit Kubernetes Boardmitteln


• Einfache Kombination aus Kubernetes Primitives mit Open Source Bausteinen


• Performance: Pod, Service, CronJob, Con
fi
gMap + Grafana, In
fl
uxDB, K6


• Security: Pod, Service, Job, CronJob, Con
fi
gMap + ZED Attack Proxy
11
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Wege zur Nutzung des Kubernetes APIs
• Das Kubernetes API erlaubt das Abfragen, Verändern und Löschen aller
bekannten Kubernetes Objekte


• Registrieren von Watchern auf Change Events (ADD, MOFIFY, DELETE)
sind ein mächtiges Werkzeug für Custom Logik und Erweiterungen


• https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/


• 3 Zugriffswege: kubectl, REST API und programmatisch


• Kubernetes stellt zahlreiche o
ffi
zielle Client Bibliotheken bereit, u.A. für
Go, Java, Python, JavaScript, …
12
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Kubernetes API Erweiterung mit Custom Resources
• Nutzer-de
fi
nierte Erweiterung des Kubernetes APIs


• Möglichkeit zur Abstraktion komplexer Konstrukte und Konzepte


• De
fi
nition erfolgt rein deklarativ über CustomResourceDefinitions


• Struktur De
fi
nition erfolgt als OpenAPI v3.0 Validation Schema


• Default Support vieler API Features: CRUD, Watch, Discovery, json-
patch, merge-patch, Admission Webhooks, Metadata, RBAC, …


• Versionierung und Konvertierung per Webhook ist möglich
13
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
14
apiVersion: v1


kind: Service


metadata:


name: nginx-service


spec:


type: LoadBalancer


ports:


- port: 80


protocol: TCP


selector:


app: nginx
apiVersion: apps/v1


kind: Deployment


metadata:


name: nginx-deployment


spec:


selector:


matchLabels:


app: nginx


replicas: 2


template:


metadata:


labels:


app: nginx


environment: integration


spec:


containers:


- name: nginx


image: nginx:1.19.4-alpine


ports:


- containerPort: 80


# probe definitions


# resource constraints


# volumes and mounts
apiVersion: k8s.qaware.de/v1alpha1


kind: Microservice


metadata:


name: microservice-example


labels:


app: nginx


spec:


image: nginx:1.19.4-alpine


replicas: 2


serviceType: LoadBalancer


ports:


- 80
+ =
// TechEx Day —> Go for Operations // @LeanderReimer #cloudnativenerd #qaware
15
Operator.
- Do stuff to my Kubernetes.
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Was sind Operators?
• Operators sind kodi
fi
zierte Ops Prozeduren!


• Der Weg zu Zero-Ops: Intelligente und Anti-Fragile Infrastruktur und
Applikationen. Auto-updating, self-monitoring and self-healing.


• Das Operator Pattern ist im Cloud-native Universum mittlerweile weit
verbreitet. Beispiele: OKD, Sealed Secrets, Kube Monkey, Weave Flux,
CockroachDB, Kafka, …


• Viele Wege zum Operator: Plain Java, GraalVM, Quarkus Framework,
Operator SDK oder deklarativ mit Kudo
16
// Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21
Kubernetes Operators Explained
17
https://github.com/lreimer/graal-operators
https://github.com/lreimer/go-for-operations
Mario-Leander Reimer


Principal Software Architect, QAware GmbH


mario-leander.reimer@qaware.de


https://www.qaware.de


https://speakerdeck.com/lreimer/


https://github.com/lreimer/
&

Mais conteúdo relacionado

Mais de QAware GmbH

Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration TestsQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-ClusterAus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-ClusterQAware GmbH
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertQAware GmbH
 
Policy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentPolicy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentQAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisQAware GmbH
 
Die nächsten 100 Microservices
Die nächsten 100 MicroservicesDie nächsten 100 Microservices
Die nächsten 100 MicroservicesQAware GmbH
 
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?QAware GmbH
 

Mais de QAware GmbH (20)

Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-ClusterAus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniert
 
Policy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentPolicy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy Agent
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der Praxis
 
Die nächsten 100 Microservices
Die nächsten 100 MicroservicesDie nächsten 100 Microservices
Die nächsten 100 Microservices
 
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
 

Kubernetes ist so viel mehr als ein Container-Orchestrierer

  • 1. Kubernetes ist so viel mehr als ein Container-Orchestrierer Kubernetes Experts Day @LeanderReimer #qaware #CloudNativeNerd #ConCon21 Dev Ops API SPI
  • 2. Mario-Leander Reimer Principal Software Architect @LeanderReimer #cloudnativenerd #qaware
  • 3. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Quellcode und Demos 3 https://github.com/lreimer/k8s-experts-day
  • 4. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Anno 2016 … 4 Kubernetes 101 and Fun | ContainerCon Europe 2016 | created with ☁ and ☕ by @LeanderReimer 1 https://github.com/qaware/kubepad https://speakerdeck.com/lreimer/kubernetes-101-and-fun
  • 5. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Das Kubernetes ABC 5 Deployment Service Replica Set 
 Pod Container Container Labels: <K,V> Port Volume Con fi gMap apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: LoadBalancer ports: - port: 80 protocol: TCP selector: app: nginx apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx environment: integration spec: containers: - name: nginx image: nginx:1.19.4-alpine ports: - containerPort: 80
  • 6. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 6 5:38 PM - 24. Februar 2019 10:04 PM - 27. November 2017
  • 7. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Kubernetes ist eine fl exibel erweiterbare Platform mit zahlreichen APIs und SPIs die deklarativ aber auch programmatisch genutzt werden können um neue Abstraktionen und eigene Erweiterungen zu realisieren. 7
  • 8. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Unser Fahrplan für heute • DRY! Declarative Management of K8s Objects with Kustomize • Imperative Management of K8s Objects (Teaser) • Continuous Testing mit Kubernetes • Wege zur Nutzung des Kubernetes APIs • Erweiterung des Kubernetes APIs mit Custom Resources • Das Operator Pattern: Entwicklung von Custom Controllern 8
  • 9. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Don’t repeat yourself! • Kustomize: Kubernetes Native Con fi guration management. • A template-free way to customize your application con fi guration • Reduziert die Redundanz in Umgebungs- abhängigen Kon fi gurationen • Wird seit v1.15 ab Werk von kubectl per apply -k unterstützt • https://kustomize.io 9
  • 10. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Breakout Session um 13:15 
 
 Imperative Management of K8s Objects with Pulumi 10
  • 11. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Continuous Testing the Kubernetes Way • Ausgangs-Situation: High-Level Tests wie Performance, Security oder Acceptance Tests werden zu spät und zu selten ausgeführt • Integration und Ausführung der Tests als fester Bestandteil der CI Pipelines führt zu langen Feedback-Zyklen • Lösung: kontinuierliches Ausführen der Tests in der Integrations- oder QA- Umgebung mit Kubernetes Boardmitteln • Einfache Kombination aus Kubernetes Primitives mit Open Source Bausteinen • Performance: Pod, Service, CronJob, Con fi gMap + Grafana, In fl uxDB, K6 • Security: Pod, Service, Job, CronJob, Con fi gMap + ZED Attack Proxy 11
  • 12. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Wege zur Nutzung des Kubernetes APIs • Das Kubernetes API erlaubt das Abfragen, Verändern und Löschen aller bekannten Kubernetes Objekte • Registrieren von Watchern auf Change Events (ADD, MOFIFY, DELETE) sind ein mächtiges Werkzeug für Custom Logik und Erweiterungen • https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/ • 3 Zugriffswege: kubectl, REST API und programmatisch • Kubernetes stellt zahlreiche o ffi zielle Client Bibliotheken bereit, u.A. für Go, Java, Python, JavaScript, … 12
  • 13. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Kubernetes API Erweiterung mit Custom Resources • Nutzer-de fi nierte Erweiterung des Kubernetes APIs • Möglichkeit zur Abstraktion komplexer Konstrukte und Konzepte • De fi nition erfolgt rein deklarativ über CustomResourceDefinitions • Struktur De fi nition erfolgt als OpenAPI v3.0 Validation Schema • Default Support vieler API Features: CRUD, Watch, Discovery, json- patch, merge-patch, Admission Webhooks, Metadata, RBAC, … • Versionierung und Konvertierung per Webhook ist möglich 13
  • 14. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 14 apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: LoadBalancer ports: - port: 80 protocol: TCP selector: app: nginx apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx environment: integration spec: containers: - name: nginx image: nginx:1.19.4-alpine ports: - containerPort: 80 # probe definitions # resource constraints # volumes and mounts apiVersion: k8s.qaware.de/v1alpha1 kind: Microservice metadata: name: microservice-example labels: app: nginx spec: image: nginx:1.19.4-alpine replicas: 2 serviceType: LoadBalancer ports: - 80 + =
  • 15. // TechEx Day —> Go for Operations // @LeanderReimer #cloudnativenerd #qaware 15 Operator. - Do stuff to my Kubernetes.
  • 16. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Was sind Operators? • Operators sind kodi fi zierte Ops Prozeduren! • Der Weg zu Zero-Ops: Intelligente und Anti-Fragile Infrastruktur und Applikationen. Auto-updating, self-monitoring and self-healing. • Das Operator Pattern ist im Cloud-native Universum mittlerweile weit verbreitet. Beispiele: OKD, Sealed Secrets, Kube Monkey, Weave Flux, CockroachDB, Kafka, … • Viele Wege zum Operator: Plain Java, GraalVM, Quarkus Framework, Operator SDK oder deklarativ mit Kudo 16
  • 17. // Kubernetes Experts Day // Kubernetes ist so viel mehr als ein Container Orchestrierer // @LeanderReimer #cloudnativenerd #qaware #ConCon21 Kubernetes Operators Explained 17 https://github.com/lreimer/graal-operators https://github.com/lreimer/go-for-operations
  • 18. Mario-Leander Reimer Principal Software Architect, QAware GmbH mario-leander.reimer@qaware.de https://www.qaware.de https://speakerdeck.com/lreimer/ https://github.com/lreimer/ &