SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Kubernetes Meetup Frankfurt
@ Meshcloud, Mar 25th 2019
why, what and how
Extending Kubernetes
@meshstack
Motivation
@meshstack
Kubernetes orchestrates Infrastructure & Containers...
… meshcloud orchestrates Cloud Tenants
...Cloud Tenants?
Motivation
@meshstack
81%
We live in a Multi-Cloud world
@meshstack
Orchestrating Clouds & Tenants
Integrierte Prozesse mit
meshcloud
Heterogene
Prozesse!
- OpenShift PaaS (OKD = “OpenShift Kubernetes Distribution”)
- https://www.okd.io/
- Fission “Kubernetes-native Serverless Framework”
- https://fission.io/
- Kubernetes Operators
- ArangoDB
- Couchbase
- MySQL
- … many more
Extending Kubernetes - Examples
@meshstack
- Control Plane
- kube-apisever: provides the API
- backed by etcd (& only component talking to etcd)
- scales horizontally
- think of it as a “dumb” object server (authn/authz, validation, defaulting etc.)
- kube-controller-manager
- runs the main control-loops
- HA, but only a single active leader at a time
- kube-scheduler
- distributes pods on nodes: think “pod controller”
- Workload Plane
- Kubelet & kube-proxy: execute containers, report status etc.
Kubernetes - Architecture recap
@meshstack
1. kubectl plugins
2. API Extensions
3. Custom Resources
4. Scheduler Extensions
5. Controllers (& Operators)
6. Network Plugins
7. Storage Plugins
Goal: Provide an Overview and Examples
Extending Kubernetes - Overview
https://kubernetes.io/docs/concepts/extend-kubernetes/extend-cluster/
@meshstack
API Groups are a way to … group APIs for
- Versioning e.g. /api/v1 or
/apis/extensions/v1beta1
- Extending Kubernetes with vendor or
distribution-specific APIs
API Extensions - Basics
@meshstack
- Runs in-process with the kube-apiserver
- APIService object “claims” URL path
- Enables auto-discovery of APIs by clients
- Checkout Kubernetes sample-apiserver
- Example: OpenShift with a “dumb” kubectl client
- kubectl api-resources
- kubectl get apiservices
- kubectl get apiservices v1.build.openshift.io -o=yaml
- kubectl --v=8 get build
API Extensions - Aggregation Layer
@meshstack
API Extensions - when to use?
@meshstack
- Intercept Kubernetes API requests in order to
- validate: e.g. rate limit api access EventRateLimit
- mutate: e.g. AlwaysPullImages
- Kubernetes ships with default Admission Controllers that
implement core functionality
- e.g. NamespaceExists
Admission Controllers
@meshstack
- Define name and Schema for new types of K8s objects
- Simpler than writing your own API for some cases
- e.g. built-in validation using JSON Schema (K8s > v1.8)
- Typically goes hand in hand with a Controller
- Example: OpenShift with a “dumb” kubectl client
- kubectl get customresourcedefinitions
Learn more from the documentation
Custom Resource Definitions
@meshstack
- Pretty much everything is an Object in Kubernetes. Objects follow
conventions
- .apiVersion version of the API that produced this object
- .kind what kind of Object it is, e.g. pod
- .metadata common metadata like .name, .annotations etc.
- .spec desired state of the Object
- .status last observed state of the object
- Example: OpenShift with a “dumb” kubectl client
- kubectl get pods -o=yaml --namespace=openshift-web-console
Learn more from the documentation
Custom Resource Definitions - Objects
@meshstack
- Example: Fission (sorry, no kubectl demo)
Custom Resource Definitions
@meshstack
CRDs vs. API
@meshstack
- Controllers make the “magic” happen
- Think CRDs as a way to teach kube-apiserver to store new objects
- Controllers process these objects as clients of the api-server
- Control Loop
- watch relevant objects via kube-apiserver
- compare .status and .spec
- take action to converge actual to desired state
- update managed object’s .status
Controllers
@meshstack
- Controllers make the “magic” happen
- Think CRDs as a way to teach kube-apiserver to store new objects
- Controllers process these objects as clients of the api-server
- Control Loop
- watch relevant objects via kube-apiserver
- compare .status and .spec
- take action to converge actual to desired state
- update managed object’s .status
- core control loops run in kube-controller-manager
- e.g. ReplicaSetController
Controllers
@meshstack
Control Loops in distributed systems
are hard to implement correctly.
- shared state is hard
- timing is hard
- things go wrong™
Using Level Triggered Logic helps
reducing complexity and improving
correctness.
Think: delta vs. full-state reconcillation
Controller Basics - Loops
https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
@meshstack
Ideal conditions:
- Controller observes original signal
without disruptions
- Controller will take correct action
(i.e. process user intent)
Controller Basics - Loops
https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
@meshstack
Signal is observed with disruptions (i.e.
network disruption, timing issues,
control plane crash...)
- Edge triggered loop misses
trigger (does not take action)
- Level triggered loop eventually
takes correct action
Controller Basics - Loops
https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
@meshstack
Signal is observed with disruptions (i.e.
network disruption, timing issues,
control plane crash...)
- Edge triggered loop accumulates
incorrect state
- Level triggered loop eventually
converges to correct state
Controller Basics - Loops
https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
@meshstack
Example: ReplicaSet
Controller Basics - Loops
https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
@meshstack
Build Controllers using client-go (but
can use your own logic as well):
- Controllers watch() objects they’re
interested in from kube-apiserver
- resync period: periodically re-process
all objects delivered by kube-apiserver
- Delta Fifo Queue = “smart” queue
- Tombstones for deleted objects
- Merges duplicated updates
Example: OpenShift ResourceQuota
kubectl get -o=yaml resourcequota
--namespace=managed-customer-demo-project
Controllers - Loops in Practice
@meshstack
Operators combine CRDs + Controllers to manage stateful Applications
- Example: Automated Master Failover for MariaDB
- … whatever “manual Ops” would do - you can automate with K8s
- Operator Framework helps with building and operating operators
Operators
Thank you
Johannes Rudolph
jrudolph@meshcloud.io
www.meshcloud.io

Contenu connexe

Tendances

Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBitnami
 
Gentle introduction to containers and kubernetes
Gentle introduction to containers and kubernetesGentle introduction to containers and kubernetes
Gentle introduction to containers and kubernetesNills Franssens
 
Working with kubernetes
Working with kubernetesWorking with kubernetes
Working with kubernetesNagaraj Shenoy
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetescsegayan
 
KubeCon CloudNativeCon 2016 Seattle - a report
KubeCon CloudNativeCon 2016 Seattle - a reportKubeCon CloudNativeCon 2016 Seattle - a report
KubeCon CloudNativeCon 2016 Seattle - a reportKrishna-Kumar
 
Are you ready to be edgy? Bringing applications to the edge of the network
Are you ready to be edgy? Bringing applications to the edge of the networkAre you ready to be edgy? Bringing applications to the edge of the network
Are you ready to be edgy? Bringing applications to the edge of the networkMegan O'Keefe
 
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQKubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQRahul Malhotra
 
Kubernetes Requests and Limits
Kubernetes Requests and LimitsKubernetes Requests and Limits
Kubernetes Requests and LimitsAhmed AbouZaid
 
Securing and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with KyvernoSecuring and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with KyvernoSaim Safder
 
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Opsta
 
GlueCon kubernetes & container engine
GlueCon kubernetes & container engineGlueCon kubernetes & container engine
GlueCon kubernetes & container enginebrendandburns
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes ArchitectureKnoldus Inc.
 
Running and Managing Kubernetes on OpenStack
Running and Managing Kubernetes on OpenStackRunning and Managing Kubernetes on OpenStack
Running and Managing Kubernetes on OpenStackVictor Palma
 
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...Edureka!
 
Google Cloud Container Security Quick Overview
Google Cloud Container Security Quick OverviewGoogle Cloud Container Security Quick Overview
Google Cloud Container Security Quick OverviewKrishna-Kumar
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesSlideTeam
 

Tendances (20)

Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
 
Gentle introduction to containers and kubernetes
Gentle introduction to containers and kubernetesGentle introduction to containers and kubernetes
Gentle introduction to containers and kubernetes
 
Working with kubernetes
Working with kubernetesWorking with kubernetes
Working with kubernetes
 
Kubernetes Presentation
Kubernetes PresentationKubernetes Presentation
Kubernetes Presentation
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
KubeCon CloudNativeCon 2016 Seattle - a report
KubeCon CloudNativeCon 2016 Seattle - a reportKubeCon CloudNativeCon 2016 Seattle - a report
KubeCon CloudNativeCon 2016 Seattle - a report
 
Are you ready to be edgy? Bringing applications to the edge of the network
Are you ready to be edgy? Bringing applications to the edge of the networkAre you ready to be edgy? Bringing applications to the edge of the network
Are you ready to be edgy? Bringing applications to the edge of the network
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQKubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQ
 
Kubernetes Requests and Limits
Kubernetes Requests and LimitsKubernetes Requests and Limits
Kubernetes Requests and Limits
 
Securing and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with KyvernoSecuring and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with Kyverno
 
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)
 
GlueCon kubernetes & container engine
GlueCon kubernetes & container engineGlueCon kubernetes & container engine
GlueCon kubernetes & container engine
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
 
Running and Managing Kubernetes on OpenStack
Running and Managing Kubernetes on OpenStackRunning and Managing Kubernetes on OpenStack
Running and Managing Kubernetes on OpenStack
 
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
 
Google Cloud Container Security Quick Overview
Google Cloud Container Security Quick OverviewGoogle Cloud Container Security Quick Overview
Google Cloud Container Security Quick Overview
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
 

Similaire à Extending Kubernetes

Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck   Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck Daliya Spasova
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsRamit Surana
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLee Calcote
 
Kubernetes Administration from Zero to Hero.pdf
Kubernetes Administration from Zero to Hero.pdfKubernetes Administration from Zero to Hero.pdf
Kubernetes Administration from Zero to Hero.pdfArzooGupta16
 
Kubernetes Architecture with Components
 Kubernetes Architecture with Components Kubernetes Architecture with Components
Kubernetes Architecture with ComponentsAjeet Singh
 
1. CNCF kubernetes meetup - Ondrej Sika
1. CNCF kubernetes meetup - Ondrej Sika1. CNCF kubernetes meetup - Ondrej Sika
1. CNCF kubernetes meetup - Ondrej SikaJuraj Hantak
 
Bitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by KubernetesBitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by KubernetesNathan Burrell
 
Open stack and k8s(v4)
Open stack and k8s(v4)Open stack and k8s(v4)
Open stack and k8s(v4)H K Yoon
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive OverviewBob Killen
 
Kubernetes acomprehensiveoverview
Kubernetes acomprehensiveoverviewKubernetes acomprehensiveoverview
Kubernetes acomprehensiveoverviewAnkit Shukla
 
Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewBob Killen
 
Building the TribefireOperator
Building the TribefireOperatorBuilding the TribefireOperator
Building the TribefireOperatorOliver Moser
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupStefan Schimanski
 
DevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes IntegrationDevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes IntegrationHank Preston
 
Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)HungWei Chiu
 
Kubernetes presentation
Kubernetes presentationKubernetes presentation
Kubernetes presentationGauranG Bajpai
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKel Cecil
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesPaul Czarkowski
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionStefan Schimanski
 

Similaire à Extending Kubernetes (20)

Kubernetes
KubernetesKubernetes
Kubernetes
 
Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck   Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & Kubernetes
 
Kubernetes Administration from Zero to Hero.pdf
Kubernetes Administration from Zero to Hero.pdfKubernetes Administration from Zero to Hero.pdf
Kubernetes Administration from Zero to Hero.pdf
 
Kubernetes Architecture with Components
 Kubernetes Architecture with Components Kubernetes Architecture with Components
Kubernetes Architecture with Components
 
1. CNCF kubernetes meetup - Ondrej Sika
1. CNCF kubernetes meetup - Ondrej Sika1. CNCF kubernetes meetup - Ondrej Sika
1. CNCF kubernetes meetup - Ondrej Sika
 
Bitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by KubernetesBitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by Kubernetes
 
Open stack and k8s(v4)
Open stack and k8s(v4)Open stack and k8s(v4)
Open stack and k8s(v4)
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview
 
Kubernetes acomprehensiveoverview
Kubernetes acomprehensiveoverviewKubernetes acomprehensiveoverview
Kubernetes acomprehensiveoverview
 
Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive Overview
 
Building the TribefireOperator
Building the TribefireOperatorBuilding the TribefireOperator
Building the TribefireOperator
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
 
DevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes IntegrationDevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes Integration
 
Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)
 
Kubernetes presentation
Kubernetes presentationKubernetes presentation
Kubernetes presentation
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 

Dernier (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

Extending Kubernetes

  • 1. Kubernetes Meetup Frankfurt @ Meshcloud, Mar 25th 2019
  • 2. why, what and how Extending Kubernetes
  • 4. @meshstack Kubernetes orchestrates Infrastructure & Containers... … meshcloud orchestrates Cloud Tenants ...Cloud Tenants? Motivation
  • 5. @meshstack 81% We live in a Multi-Cloud world @meshstack
  • 6. Orchestrating Clouds & Tenants Integrierte Prozesse mit meshcloud Heterogene Prozesse!
  • 7. - OpenShift PaaS (OKD = “OpenShift Kubernetes Distribution”) - https://www.okd.io/ - Fission “Kubernetes-native Serverless Framework” - https://fission.io/ - Kubernetes Operators - ArangoDB - Couchbase - MySQL - … many more Extending Kubernetes - Examples
  • 8. @meshstack - Control Plane - kube-apisever: provides the API - backed by etcd (& only component talking to etcd) - scales horizontally - think of it as a “dumb” object server (authn/authz, validation, defaulting etc.) - kube-controller-manager - runs the main control-loops - HA, but only a single active leader at a time - kube-scheduler - distributes pods on nodes: think “pod controller” - Workload Plane - Kubelet & kube-proxy: execute containers, report status etc. Kubernetes - Architecture recap
  • 9. @meshstack 1. kubectl plugins 2. API Extensions 3. Custom Resources 4. Scheduler Extensions 5. Controllers (& Operators) 6. Network Plugins 7. Storage Plugins Goal: Provide an Overview and Examples Extending Kubernetes - Overview https://kubernetes.io/docs/concepts/extend-kubernetes/extend-cluster/
  • 10. @meshstack API Groups are a way to … group APIs for - Versioning e.g. /api/v1 or /apis/extensions/v1beta1 - Extending Kubernetes with vendor or distribution-specific APIs API Extensions - Basics
  • 11. @meshstack - Runs in-process with the kube-apiserver - APIService object “claims” URL path - Enables auto-discovery of APIs by clients - Checkout Kubernetes sample-apiserver - Example: OpenShift with a “dumb” kubectl client - kubectl api-resources - kubectl get apiservices - kubectl get apiservices v1.build.openshift.io -o=yaml - kubectl --v=8 get build API Extensions - Aggregation Layer
  • 13. @meshstack - Intercept Kubernetes API requests in order to - validate: e.g. rate limit api access EventRateLimit - mutate: e.g. AlwaysPullImages - Kubernetes ships with default Admission Controllers that implement core functionality - e.g. NamespaceExists Admission Controllers
  • 14. @meshstack - Define name and Schema for new types of K8s objects - Simpler than writing your own API for some cases - e.g. built-in validation using JSON Schema (K8s > v1.8) - Typically goes hand in hand with a Controller - Example: OpenShift with a “dumb” kubectl client - kubectl get customresourcedefinitions Learn more from the documentation Custom Resource Definitions
  • 15. @meshstack - Pretty much everything is an Object in Kubernetes. Objects follow conventions - .apiVersion version of the API that produced this object - .kind what kind of Object it is, e.g. pod - .metadata common metadata like .name, .annotations etc. - .spec desired state of the Object - .status last observed state of the object - Example: OpenShift with a “dumb” kubectl client - kubectl get pods -o=yaml --namespace=openshift-web-console Learn more from the documentation Custom Resource Definitions - Objects
  • 16. @meshstack - Example: Fission (sorry, no kubectl demo) Custom Resource Definitions
  • 18. @meshstack - Controllers make the “magic” happen - Think CRDs as a way to teach kube-apiserver to store new objects - Controllers process these objects as clients of the api-server - Control Loop - watch relevant objects via kube-apiserver - compare .status and .spec - take action to converge actual to desired state - update managed object’s .status Controllers
  • 19. @meshstack - Controllers make the “magic” happen - Think CRDs as a way to teach kube-apiserver to store new objects - Controllers process these objects as clients of the api-server - Control Loop - watch relevant objects via kube-apiserver - compare .status and .spec - take action to converge actual to desired state - update managed object’s .status - core control loops run in kube-controller-manager - e.g. ReplicaSetController Controllers
  • 20. @meshstack Control Loops in distributed systems are hard to implement correctly. - shared state is hard - timing is hard - things go wrong™ Using Level Triggered Logic helps reducing complexity and improving correctness. Think: delta vs. full-state reconcillation Controller Basics - Loops https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
  • 21. @meshstack Ideal conditions: - Controller observes original signal without disruptions - Controller will take correct action (i.e. process user intent) Controller Basics - Loops https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
  • 22. @meshstack Signal is observed with disruptions (i.e. network disruption, timing issues, control plane crash...) - Edge triggered loop misses trigger (does not take action) - Level triggered loop eventually takes correct action Controller Basics - Loops https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
  • 23. @meshstack Signal is observed with disruptions (i.e. network disruption, timing issues, control plane crash...) - Edge triggered loop accumulates incorrect state - Level triggered loop eventually converges to correct state Controller Basics - Loops https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
  • 24. @meshstack Example: ReplicaSet Controller Basics - Loops https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d
  • 25. @meshstack Build Controllers using client-go (but can use your own logic as well): - Controllers watch() objects they’re interested in from kube-apiserver - resync period: periodically re-process all objects delivered by kube-apiserver - Delta Fifo Queue = “smart” queue - Tombstones for deleted objects - Merges duplicated updates Example: OpenShift ResourceQuota kubectl get -o=yaml resourcequota --namespace=managed-customer-demo-project Controllers - Loops in Practice
  • 26. @meshstack Operators combine CRDs + Controllers to manage stateful Applications - Example: Automated Master Failover for MariaDB - … whatever “manual Ops” would do - you can automate with K8s - Operator Framework helps with building and operating operators Operators