SlideShare a Scribd company logo
Creating a custom
Cluster API Provider
Himani Agrawal
@himani_93
Giri Kuncoro
@girikuncoro
History
70+ ways to deploy
Kubernetes
What is missing?
➔ Declarative, Kubernetes-style API
➔ Compatibility with tooling
➔ Cloud agnostic
➔ Single interface for infra/cluster
Cluster API
Kubernetes
Cluster
Cluster API
Reference: Deep Dive: Cluster API KubeCon EU 2019
Declarative
Config
Kubernetes
Cluster
Cluster API
Reference: Deep Dive: Cluster API KubeCon EU 2019
Kubernetes
Cluster
Cluster API
Declarative
Config
Reference: Deep Dive: Cluster API KubeCon EU 2019
Cluster API CRDs
Cluster
Cluster
apiVersion: "cluster-api.k8s.io/v1alpha1"
kind: Cluster
metadata:
name: fujisan
spec:
providerSpec:
...
clusterNetwork:
services:
cidrBlocks: ["10.96.0.0/12"]
pods:
cidrBlocks: ["192.168.0.0/16"]
serviceDomain: "cluster.local"
Cluster API CRDs
Cluster Machine
Machine
apiVersion: "cluster-api.k8s.io/v1alpha1"
kind: Machine
metadata:
name: kube-cp
spec:
providerSpec:
vcpu: 2
...
versions:
kubelet: 1.15.0
Cluster API CRDs
Cluster Machine Machine Set
Cluster API CRDs
Cluster Machine Machine Set
Machine
Deployment
Cluster API CRDs
Cluster Machine Machine Set
Machine
Deployment
Machine
Class
Cluster API CRDs
Cluster Machine Machine Set
Machine
Deployment
Machine
Class
Pod Replica Set Deployment
Storage
Class
How Cluster API works?
Controller Actuator KVM Baremetal
apiVersion:
"cluster-api.k8s.io/v1alpha1"
kind: Machine
metadata:
name: kube-cp
spec:
providerSpec:
vcpu: 2
versions:
kubelet: 1.15.0
Machine CRD
Machine
Provider Controller Manager
Cluster Controller Machine Controller
Demo
Picture Credits: Ashley McNamara
Code
func main() {
mgr, _ := manager.New(cfg, opts)
machineActuator, _ := machine.NewActuator(machine.ActuatorParams{
Client: mgr.GetClient(),
})
apis.AddToScheme(mgr.GetScheme())
clusterapis.AddToScheme(mgr.GetScheme())
capimachine.AddWithActuator(mgr, machineActuator)
mgr.Start(signals.SetupSignalHandler())
}
cmd/manager/main.go
Code
func init() {
// AddToManagerFuncs is a list of functions to create controllers
// and add them to a manager.
AddToManagerFuncs = append(AddToManagerFuncs, func(m manager.Manager) error {
return capimachine.AddWithActuator(m, &machine.Actuator{})
})
}
pkg/controller/add_machine_controller.go
Code
type LibvirtMachineProviderSpecSpec struct {
// Number of virtual CPU
VCPU int `json:"vcpu"`
// Amount of RAM in GBs
MemoryInGB int `json:"memoryInGB"`
// Image URL to be provisioned
ImageURI string `json:"imageURI"`
// UserData URI of cloud-init image
UserDataURI string `json:"userDataURI"`
}
pkg/apis/libvirt/v1alpha1/libvirtmachineproviderspec_types.go
Code
// CreateDomain connects to libvirt daemon and creates a new domain
// as per domainXML.
func CreateDomain(domainXML string) error {
...
}
// DomainExists checks if the domain with the given name exists.
func DomainExists(domainName string) bool {
...
}
// defineDomain returns the XML representation of the domain to be created.
// Output of this func is passed into CreateDomain() to create a new domain.
func defineDomain() string {
...
}
pkg/cloud/libvirt/domain.go
func (a *Actuator) Create() error {
return libvirt.CreateDomain()
}
func (a *Actuator) Exists() (bool, error) {
return libvirt.DomainExists()
}
func (a *Actuator) Delete() { ... }
func (a *Actuator) Update() { ... }
Code
pkg/cloud/libvirt/actuators/machine/actuator.go
/himani93/cluster-api-provider-libvirt
● Cluster API v0.1.0
● Kubebuilder v1.0.8
● Kustomize v1.0.11
● Kubectl v1.13
● Minikube v1.2.0
Dependency Versions
Discussion
● Cluster API is super cool!
● Early work for production version
Getting Involved
➔ Github Repo
github.com/kubernetes-sigs/cluster-api
➔ Mailing List: kubernetes-sig-cluster-lifecycle
https://groups.google.com/forum/#!forum/kubernetes-sig-clus
ter-lifecycle
➔ Slack: #cluster-api
https://kubernetes.slack.com/messages/C8TSNPY4T
Provider Implementations
● AWS, https://github.com/kubernetes-sigs/cluster-api-provider-aws
● Azure, https://github.com/kubernetes-sigs/cluster-api-provider-azure
● Baidu Cloud, https://github.com/baidu/cluster-api-provider-baiducloud
● Bare Metal, https://github.com/metal3-io/cluster-api-provider-baremetal
● DigitalOcean, https://github.com/kubernetes-sigs/cluster-api-provider-digitalocean
● Exoscale, https://github.com/exoscale/cluster-api-provider-exoscale
● GCP, https://github.com/kubernetes-sigs/cluster-api-provider-gcp
● IBM Cloud, https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud
● OpenStack, https://github.com/kubernetes-sigs/cluster-api-provider-openstack
● Talos, https://github.com/talos-systems/cluster-api-provider-talos
● Tencent Cloud, https://github.com/TencentCloud/cluster-api-provider-tencent
● vSphere, https://github.com/kubernetes-sigs/cluster-api-provider-vsphere
API Adoption
Following are the implementations managed by third-parties adopting the standard cluster-api and/or
machine-api being developed here.
● Kubermatic machine-controller, https://github.com/kubermatic/machine-controller/tree/master
● Machine API Operator, https://github.com/openshift/machine-api-operator/tree/master
● Machine-controller-manager, https://github.com/gardener/machine-controller-manager/tree/cluster-api
References
● https://kccna18.sched.com/event/Greh
● https://kccnceu19.sched.com/event/MPkR
● https://blogs.vmware.com/cloudnative/2019/03/14/what-and-why-of-cluster-api/
● https://blog.heptio.com/the-kubernetes-cluster-api-de5a1ff870a5
● https://github.com/kubernetes-sigs/cluster-api
● https://cluster-api.sigs.k8s.io/
ありがとうございます。

More Related Content

PPTX
How Kubernetes scheduler works
Himani Agrawal
 
PDF
Kubernetes Introduction
Peng Xiao
 
PDF
Kubernetes
erialc_w
 
PDF
Kubernetes Architecture and Introduction
Stefan Schimanski
 
PDF
GitOps with Amazon EKS Anywhere by Dan Budris
Weaveworks
 
PPTX
Kubernetes for Beginners: An Introductory Guide
Bytemark
 
PPTX
쿠버네티스 ( Kubernetes ) 소개 자료
Opennaru, inc.
 
PDF
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Edureka!
 
How Kubernetes scheduler works
Himani Agrawal
 
Kubernetes Introduction
Peng Xiao
 
Kubernetes
erialc_w
 
Kubernetes Architecture and Introduction
Stefan Schimanski
 
GitOps with Amazon EKS Anywhere by Dan Budris
Weaveworks
 
Kubernetes for Beginners: An Introductory Guide
Bytemark
 
쿠버네티스 ( Kubernetes ) 소개 자료
Opennaru, inc.
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Edureka!
 

What's hot (20)

PDF
Cilium - Container Networking with BPF & XDP
Thomas Graf
 
PDF
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
SlideTeam
 
PDF
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
PPTX
Introduction to Kubernetes
rajdeep
 
PPTX
Introduction to docker and oci
Romain Schlick
 
PPTX
Introduction to CNI (Container Network Interface)
HungWei Chiu
 
PDF
Introduction to Kubernetes Workshop
Bob Killen
 
PDF
eBPF - Observability In Deep
Mydbops
 
PPTX
DevOps with Kubernetes
EastBanc Tachnologies
 
PDF
Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra...
HostedbyConfluent
 
PDF
Kubernetes 101
Crevise Technologies
 
PDF
BPF - in-kernel virtual machine
Alexei Starovoitov
 
PDF
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
PDF
Evolution of containers to kubernetes
Krishna-Kumar
 
PDF
Kafka Streams: What it is, and how to use it?
confluent
 
PPTX
Gitlab CI/CD
JEMLI Fathi
 
PDF
Gitops: a new paradigm for software defined operations
Mariano Cunietti
 
PDF
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
 
PPTX
Docker and kubernetes
Dongwon Kim
 
PPTX
Introduction to Containers and Docker
Fayçal Bziou
 
Cilium - Container Networking with BPF & XDP
Thomas Graf
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
SlideTeam
 
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
Introduction to Kubernetes
rajdeep
 
Introduction to docker and oci
Romain Schlick
 
Introduction to CNI (Container Network Interface)
HungWei Chiu
 
Introduction to Kubernetes Workshop
Bob Killen
 
eBPF - Observability In Deep
Mydbops
 
DevOps with Kubernetes
EastBanc Tachnologies
 
Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra...
HostedbyConfluent
 
Kubernetes 101
Crevise Technologies
 
BPF - in-kernel virtual machine
Alexei Starovoitov
 
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
Evolution of containers to kubernetes
Krishna-Kumar
 
Kafka Streams: What it is, and how to use it?
confluent
 
Gitlab CI/CD
JEMLI Fathi
 
Gitops: a new paradigm for software defined operations
Mariano Cunietti
 
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
 
Docker and kubernetes
Dongwon Kim
 
Introduction to Containers and Docker
Fayçal Bziou
 
Ad

Similar to Using Libvirt with Cluster API to manage baremetal Kubernetes (20)

PDF
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Tobias Schneck
 
PDF
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Tobias Schneck
 
PDF
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
Tobias Schneck
 
PDF
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Tobias Schneck
 
PDF
SDPHP Lightning Talk - Let's Talk Laravel
marcusamoore
 
PDF
Scaling docker with kubernetes
Liran Cohen
 
PDF
DevOpSec_KubernetesOperatorUsingJava.pdf
kanedafromparis
 
PPTX
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
Emily Jiang
 
PDF
Serverless with Knative - Mete Atamel (Google)
Shift Conference
 
PDF
Operator SDK for K8s using Go
CloudOps2005
 
PDF
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki
 
PPTX
Kubernetes and docker
SmartLogic
 
PDF
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
María Angélica Bracho
 
PDF
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
Alfonso Martino
 
PDF
DevOps Enabling Your Team
GR8Conf
 
PDF
Deep Dive into SpaceONE
Choonho Son
 
PDF
Red Hat and kubernetes: awesome stuff coming your way
Johannes Brännström
 
PDF
Reinventando el CD_ Unificando Aplicaciones e Infraestructura con Crossplane-...
Alberto Lorenzo
 
PDF
Kubernetes - Starting with 1.2
William Stewart
 
PDF
Kubernetes extensibility
Docker, Inc.
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Tobias Schneck
 
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Tobias Schneck
 
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
Tobias Schneck
 
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Tobias Schneck
 
SDPHP Lightning Talk - Let's Talk Laravel
marcusamoore
 
Scaling docker with kubernetes
Liran Cohen
 
DevOpSec_KubernetesOperatorUsingJava.pdf
kanedafromparis
 
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
Emily Jiang
 
Serverless with Knative - Mete Atamel (Google)
Shift Conference
 
Operator SDK for K8s using Go
CloudOps2005
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki
 
Kubernetes and docker
SmartLogic
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
María Angélica Bracho
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
Alfonso Martino
 
DevOps Enabling Your Team
GR8Conf
 
Deep Dive into SpaceONE
Choonho Son
 
Red Hat and kubernetes: awesome stuff coming your way
Johannes Brännström
 
Reinventando el CD_ Unificando Aplicaciones e Infraestructura con Crossplane-...
Alberto Lorenzo
 
Kubernetes - Starting with 1.2
William Stewart
 
Kubernetes extensibility
Docker, Inc.
 
Ad

Recently uploaded (20)

PDF
Introduction to Ship Engine Room Systems.pdf
Mahmoud Moghtaderi
 
PPTX
22PCOAM21 Session 2 Understanding Data Source.pptx
Guru Nanak Technical Institutions
 
PPTX
database slide on modern techniques for optimizing database queries.pptx
aky52024
 
DOCX
SAR - EEEfdfdsdasdsdasdasdasdasdasdasdasda.docx
Kanimozhi676285
 
PPTX
easa module 3 funtamental electronics.pptx
tryanothert7
 
PDF
Cryptography and Information :Security Fundamentals
Dr. Madhuri Jawale
 
PPTX
Module2 Data Base Design- ER and NF.pptx
gomathisankariv2
 
PDF
The Effect of Artifact Removal from EEG Signals on the Detection of Epileptic...
Partho Prosad
 
PPTX
FUNDAMENTALS OF ELECTRIC VEHICLES UNIT-1
MikkiliSuresh
 
PDF
2010_Book_EnvironmentalBioengineering (1).pdf
EmilianoRodriguezTll
 
PPTX
IoT_Smart_Agriculture_Presentations.pptx
poojakumari696707
 
PDF
Unit I Part II.pdf : Security Fundamentals
Dr. Madhuri Jawale
 
PPTX
MT Chapter 1.pptx- Magnetic particle testing
ABCAnyBodyCanRelax
 
PPT
1. SYSTEMS, ROLES, AND DEVELOPMENT METHODOLOGIES.ppt
zilow058
 
PPT
Ppt for engineering students application on field effect
lakshmi.ec
 
PDF
JUAL EFIX C5 IMU GNSS GEODETIC PERFECT BASE OR ROVER
Budi Minds
 
PPTX
Information Retrieval and Extraction - Module 7
premSankar19
 
PDF
Chad Ayach - A Versatile Aerospace Professional
Chad Ayach
 
PPTX
22PCOAM21 Session 1 Data Management.pptx
Guru Nanak Technical Institutions
 
PDF
Software Testing Tools - names and explanation
shruti533256
 
Introduction to Ship Engine Room Systems.pdf
Mahmoud Moghtaderi
 
22PCOAM21 Session 2 Understanding Data Source.pptx
Guru Nanak Technical Institutions
 
database slide on modern techniques for optimizing database queries.pptx
aky52024
 
SAR - EEEfdfdsdasdsdasdasdasdasdasdasdasda.docx
Kanimozhi676285
 
easa module 3 funtamental electronics.pptx
tryanothert7
 
Cryptography and Information :Security Fundamentals
Dr. Madhuri Jawale
 
Module2 Data Base Design- ER and NF.pptx
gomathisankariv2
 
The Effect of Artifact Removal from EEG Signals on the Detection of Epileptic...
Partho Prosad
 
FUNDAMENTALS OF ELECTRIC VEHICLES UNIT-1
MikkiliSuresh
 
2010_Book_EnvironmentalBioengineering (1).pdf
EmilianoRodriguezTll
 
IoT_Smart_Agriculture_Presentations.pptx
poojakumari696707
 
Unit I Part II.pdf : Security Fundamentals
Dr. Madhuri Jawale
 
MT Chapter 1.pptx- Magnetic particle testing
ABCAnyBodyCanRelax
 
1. SYSTEMS, ROLES, AND DEVELOPMENT METHODOLOGIES.ppt
zilow058
 
Ppt for engineering students application on field effect
lakshmi.ec
 
JUAL EFIX C5 IMU GNSS GEODETIC PERFECT BASE OR ROVER
Budi Minds
 
Information Retrieval and Extraction - Module 7
premSankar19
 
Chad Ayach - A Versatile Aerospace Professional
Chad Ayach
 
22PCOAM21 Session 1 Data Management.pptx
Guru Nanak Technical Institutions
 
Software Testing Tools - names and explanation
shruti533256
 

Using Libvirt with Cluster API to manage baremetal Kubernetes

  • 1. Creating a custom Cluster API Provider Himani Agrawal @himani_93 Giri Kuncoro @girikuncoro
  • 3. 70+ ways to deploy Kubernetes
  • 4. What is missing? ➔ Declarative, Kubernetes-style API ➔ Compatibility with tooling ➔ Cloud agnostic ➔ Single interface for infra/cluster
  • 6. Kubernetes Cluster Cluster API Reference: Deep Dive: Cluster API KubeCon EU 2019
  • 10. Cluster apiVersion: "cluster-api.k8s.io/v1alpha1" kind: Cluster metadata: name: fujisan spec: providerSpec: ... clusterNetwork: services: cidrBlocks: ["10.96.0.0/12"] pods: cidrBlocks: ["192.168.0.0/16"] serviceDomain: "cluster.local"
  • 12. Machine apiVersion: "cluster-api.k8s.io/v1alpha1" kind: Machine metadata: name: kube-cp spec: providerSpec: vcpu: 2 ... versions: kubelet: 1.15.0
  • 13. Cluster API CRDs Cluster Machine Machine Set
  • 14. Cluster API CRDs Cluster Machine Machine Set Machine Deployment
  • 15. Cluster API CRDs Cluster Machine Machine Set Machine Deployment Machine Class
  • 16. Cluster API CRDs Cluster Machine Machine Set Machine Deployment Machine Class Pod Replica Set Deployment Storage Class
  • 17. How Cluster API works? Controller Actuator KVM Baremetal apiVersion: "cluster-api.k8s.io/v1alpha1" kind: Machine metadata: name: kube-cp spec: providerSpec: vcpu: 2 versions: kubelet: 1.15.0 Machine CRD Machine
  • 18. Provider Controller Manager Cluster Controller Machine Controller
  • 20. Code func main() { mgr, _ := manager.New(cfg, opts) machineActuator, _ := machine.NewActuator(machine.ActuatorParams{ Client: mgr.GetClient(), }) apis.AddToScheme(mgr.GetScheme()) clusterapis.AddToScheme(mgr.GetScheme()) capimachine.AddWithActuator(mgr, machineActuator) mgr.Start(signals.SetupSignalHandler()) } cmd/manager/main.go
  • 21. Code func init() { // AddToManagerFuncs is a list of functions to create controllers // and add them to a manager. AddToManagerFuncs = append(AddToManagerFuncs, func(m manager.Manager) error { return capimachine.AddWithActuator(m, &machine.Actuator{}) }) } pkg/controller/add_machine_controller.go
  • 22. Code type LibvirtMachineProviderSpecSpec struct { // Number of virtual CPU VCPU int `json:"vcpu"` // Amount of RAM in GBs MemoryInGB int `json:"memoryInGB"` // Image URL to be provisioned ImageURI string `json:"imageURI"` // UserData URI of cloud-init image UserDataURI string `json:"userDataURI"` } pkg/apis/libvirt/v1alpha1/libvirtmachineproviderspec_types.go
  • 23. Code // CreateDomain connects to libvirt daemon and creates a new domain // as per domainXML. func CreateDomain(domainXML string) error { ... } // DomainExists checks if the domain with the given name exists. func DomainExists(domainName string) bool { ... } // defineDomain returns the XML representation of the domain to be created. // Output of this func is passed into CreateDomain() to create a new domain. func defineDomain() string { ... } pkg/cloud/libvirt/domain.go
  • 24. func (a *Actuator) Create() error { return libvirt.CreateDomain() } func (a *Actuator) Exists() (bool, error) { return libvirt.DomainExists() } func (a *Actuator) Delete() { ... } func (a *Actuator) Update() { ... } Code pkg/cloud/libvirt/actuators/machine/actuator.go
  • 26. ● Cluster API v0.1.0 ● Kubebuilder v1.0.8 ● Kustomize v1.0.11 ● Kubectl v1.13 ● Minikube v1.2.0 Dependency Versions
  • 27. Discussion ● Cluster API is super cool! ● Early work for production version
  • 28. Getting Involved ➔ Github Repo github.com/kubernetes-sigs/cluster-api ➔ Mailing List: kubernetes-sig-cluster-lifecycle https://groups.google.com/forum/#!forum/kubernetes-sig-clus ter-lifecycle ➔ Slack: #cluster-api https://kubernetes.slack.com/messages/C8TSNPY4T
  • 29. Provider Implementations ● AWS, https://github.com/kubernetes-sigs/cluster-api-provider-aws ● Azure, https://github.com/kubernetes-sigs/cluster-api-provider-azure ● Baidu Cloud, https://github.com/baidu/cluster-api-provider-baiducloud ● Bare Metal, https://github.com/metal3-io/cluster-api-provider-baremetal ● DigitalOcean, https://github.com/kubernetes-sigs/cluster-api-provider-digitalocean ● Exoscale, https://github.com/exoscale/cluster-api-provider-exoscale ● GCP, https://github.com/kubernetes-sigs/cluster-api-provider-gcp ● IBM Cloud, https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud ● OpenStack, https://github.com/kubernetes-sigs/cluster-api-provider-openstack ● Talos, https://github.com/talos-systems/cluster-api-provider-talos ● Tencent Cloud, https://github.com/TencentCloud/cluster-api-provider-tencent ● vSphere, https://github.com/kubernetes-sigs/cluster-api-provider-vsphere
  • 30. API Adoption Following are the implementations managed by third-parties adopting the standard cluster-api and/or machine-api being developed here. ● Kubermatic machine-controller, https://github.com/kubermatic/machine-controller/tree/master ● Machine API Operator, https://github.com/openshift/machine-api-operator/tree/master ● Machine-controller-manager, https://github.com/gardener/machine-controller-manager/tree/cluster-api
  • 31. References ● https://kccna18.sched.com/event/Greh ● https://kccnceu19.sched.com/event/MPkR ● https://blogs.vmware.com/cloudnative/2019/03/14/what-and-why-of-cluster-api/ ● https://blog.heptio.com/the-kubernetes-cluster-api-de5a1ff870a5 ● https://github.com/kubernetes-sigs/cluster-api ● https://cluster-api.sigs.k8s.io/