SlideShare a Scribd company logo
Declarative Kubernetes
Cluster Deployment Using
Cloudstack and Cluster API
Ozhan Karaman
Zebra Stack Ltd.
ozhan zebrastack.co.uk
https://www.linkedin.com/in/ozhan-karaman/
Who am I?
● Working with Linux and Open Source platforms since 1998
● Open Source lover
● Started with Slackware and vi
● Using Cloudstack since 2015
● Working with Kubernetes since 2018
● Long technical journey with lots of adventures
What is Declarative Gitops Approach?
Declarative GitOps is an approach for managing
infrastructure and applications where the desired state of the
system is declared and stored in a Git repository.
Changes to the system are made by updating the Git
repository, and a GitOps tool automatically applies those
changes to the actual infrastructure, ensuring continuous
deployment, version control, and easy collaboration.
Declarative approaches, such as those used in tools like
Kubernetes, are often favored for their simplicity, ease of
automation, and improved maintainability. They allow users
to describe the desired state, and the system itself takes care
of achieving and maintaining that state. Imperative
approaches are more explicit, providing detailed instructions
on how to perform actions, which may be useful in certain
scenarios where fine-grained control is necessary.
ClusterAPI onPremise Infrastructure Providers
Vmware/Vsphere:
You need a minimum vCenter enabled cluster, Vmware’s Kubernetes offering heavily depends on
Clusterapi
Openstack:
You need to have an Openstack deployment(neutron, nova etc), there is no simple deployment to
test Clusterapi. Openstack developers are using devstack to develop & test their code.
Sidero Labs, Talos Linux:
They are providing their own tailored Linux OS, no ubuntu, debian there.
Cloudstack:
Standard Cloudstack deployment with KVM hypervisor is more then enough. Clusterapi Cloudstack
group is an active open source group.
Cluster API Common Concepts
Infrastructure provider:
A component responsible for the managing
infrastructure resources (VMs, networks, storage)
for CAPI.
Bootstrap provider:
A component responsible for turning a server into a
Kubernetes node, handles tasks like OS component
installation and network configuration, ensuring
consistent node preparation. (Cloud-init)
Control Plane provider:
Orchestrates creation, scaling, and lifecycle of
control plane components in CAPI. Deploys and
configures API server, controller manager, and
scheduler, ensuring proper control plane operation.
How Cluster API Works?
Declarative Cluster Definition:
Users define the desired state of their Kubernetes cluster using a set of declarative YAML manifests. These manifests typically
include specifications for the control plane and worker nodes.
Cluster API Controllers:
Cluster API introduces a set of custom controllers that run within the Kubernetes cluster. These controllers watch for changes
to the declarative cluster definitions.
Generation of Cloud-Init Scripts:
When a user submits a cluster definition, the Cluster API controllers interpret the specifications and generate cloud-init
scripts. Cloud-init is a popular way to bootstrap cloud instances with configuration data.
Infrastructure Provider Integration:
The generated cloud-init scripts are then used to initialize the virtual machines or instances on the chosen infrastructure
provider (e.g., Cloudstack, AWS, Azure, vSphere). Cluster API provides a pluggable infrastructure provider model, allowing
support for various cloud and on-premises environments.
How Cluster API Works?
Spinning up Servers:
The infrastructure provider provisions the necessary resources (VMs, instances) based on the cloud-init scripts. This step
results in the creation of the control plane nodes (master nodes) and worker nodes for the Kubernetes cluster.
Kubernetes Cluster Configuration:
Once the control plane is up and running, Cluster API manages the configuration of the Kubernetes cluster, ensuring that it
aligns with the desired state specified by the user.
Worker Node Configuration:
Cluster API also takes care of configuring the worker nodes, joining them to the cluster, and ensuring they are in the desired
state.
Lifecycle Management:
The Cluster API controllers continuously monitor the cluster's state and reconcile any differences between the desired state
and the current state. This includes scaling the cluster up or down, updating the cluster version, and handling node failures.
Some Technologies Used in this Demo
• Gitlab CI
• ArgoCD - Declarative GitOps CD for Kubernetes
• Cloudstack - OpenSource Cloud Provider
• Cloudstack Cloud Monkey - CLI Interface for Cloudstack APIs
• Kubernetes Image Builder Project
• Hashicorp Packer - KVM Image Builder
• Clusterapi Operator - Manages Clusterapi Core + Bootstrap + Infra Providers
• DrOctopus Kubernetes Operator(Manages capc deployed clusters)
• Hashicorp Vault
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack
Useful Links
• Kubernetes Image Builder Project - https://github.com/kubernetes-sigs/image-builder
• ArgoCD - https://argo-cd.readthedocs.io/en/stable/
• Cluster API - https://cluster-api.sigs.k8s.io/
• Cluster API Cloudstack Infra Provider - https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack
• Cloudstack Documentation - http://docs.cloudstack.apache.org/en/4.18.1.0/
• Shapeblue Bootstrapping K8S Cluster using CAPC l CloudStack 'Feature First Look' Series -
https://www.youtube.com/watch?v=Du1pGriJzo8
• Gitlab CI - https://docs.gitlab.com/ee/ci/
• PCextreme Packer Templates - https://github.com/PCextreme/packer-templates
• Hashicorp Packer - https://www.packer.io/
• Hashicorp Vault - https://www.vaultproject.io/
Demo Time
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack

More Related Content

Similar to Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack (20)

PDF
Getting started with kubernetes
Bob Killen
 
PPTX
Introduction+to+Kubernetes-Details-D.pptx
SantoshPandey160
 
PPTX
Kubernetes
Mihir Shah
 
PDF
Managing Kubernetes operating Kubernetes clusters in the real world First Edi...
jayedmonotbp
 
PDF
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Tobias Schneck
 
PDF
Kubermatic.pdf
LibbySchulze
 
PDF
Kubermatic CNCF Webinar - start.kubermatic.pdf
LibbySchulze
 
PPTX
Introduction to kubernetes
Rishabh Indoria
 
PDF
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
PDF
Meetup 2023 - Gateway API.pdf
Red Hat
 
PPTX
Container Conf 2017: Rancher Kubernetes
Vishal Biyani
 
PPTX
KubernetSADASDASDASDSADASDASDASDASDes.pptx
MuhamedAhmed35
 
PDF
Kubernetes a comprehensive overview
Gabriel Carro
 
PPTX
Kubernetes Presentation
Crevise Technologies
 
PDF
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Tobias Schneck
 
PDF
Kubernetes - A Comprehensive Overview
Bob Killen
 
PDF
Kubernetes acomprehensiveoverview
Ankit Shukla
 
PDF
(Draft) Kubernetes - A Comprehensive Overview
Bob Killen
 
PDF
Kubernetes ClusterAPI
loodse
 
PDF
K8s ClusterAPI - Managing Kubernetes Cluster
QAware GmbH
 
Getting started with kubernetes
Bob Killen
 
Introduction+to+Kubernetes-Details-D.pptx
SantoshPandey160
 
Kubernetes
Mihir Shah
 
Managing Kubernetes operating Kubernetes clusters in the real world First Edi...
jayedmonotbp
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Tobias Schneck
 
Kubermatic.pdf
LibbySchulze
 
Kubermatic CNCF Webinar - start.kubermatic.pdf
LibbySchulze
 
Introduction to kubernetes
Rishabh Indoria
 
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
Meetup 2023 - Gateway API.pdf
Red Hat
 
Container Conf 2017: Rancher Kubernetes
Vishal Biyani
 
KubernetSADASDASDASDSADASDASDASDASDes.pptx
MuhamedAhmed35
 
Kubernetes a comprehensive overview
Gabriel Carro
 
Kubernetes Presentation
Crevise Technologies
 
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Tobias Schneck
 
Kubernetes - A Comprehensive Overview
Bob Killen
 
Kubernetes acomprehensiveoverview
Ankit Shukla
 
(Draft) Kubernetes - A Comprehensive Overview
Bob Killen
 
Kubernetes ClusterAPI
loodse
 
K8s ClusterAPI - Managing Kubernetes Cluster
QAware GmbH
 

More from ShapeBlue (20)

PDF
Fully Open-Source Private Clouds: Freedom, Security, and Control
ShapeBlue
 
PPTX
Pushing the Limits: CloudStack at 25K Hosts
ShapeBlue
 
PPTX
Stretching CloudStack over multiple datacenters
ShapeBlue
 
PPTX
Proposed Feature: Monitoring and Managing Cloud Usage Costs in Apache CloudStack
ShapeBlue
 
PPSX
CloudStack + KVM: Your Local Cloud Lab
ShapeBlue
 
PDF
I’d like to resell your CloudStack services, but...
ShapeBlue
 
PDF
Storage Setup for LINSTOR/DRBD/CloudStack
ShapeBlue
 
PDF
Apache CloudStack 101 - Introduction, What’s New and What’s Coming
ShapeBlue
 
PDF
Development of an Оbject Storage Plugin for CloudStack, Christian Reichert, s...
ShapeBlue
 
PDF
VM-HA with CloudStack and Linstor, Rene Peinthor
ShapeBlue
 
PDF
How We Use CloudStack to Provide Managed Hosting, Swen Brüseke, proIO
ShapeBlue
 
PDF
Internet Facing VMs and the DDoS Problem, Wido den Hollander, Your.Online
ShapeBlue
 
PDF
Transitioning from VMware to Apache CloudStack: A Path to Profitability and C...
ShapeBlue
 
PDF
What’s New and What’s Upcoming in Apache CloudStack, Giles Sirett, ShapeBlue
ShapeBlue
 
PDF
CloudStack Authentication Methods – Harikrishna Patnala, ShapeBlue
ShapeBlue
 
PDF
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
ShapeBlue
 
PDF
VM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlue
ShapeBlue
 
PPTX
How We Grew Up with CloudStack and its Journey – Dilip Singh, DataHub
ShapeBlue
 
PDF
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
ShapeBlue
 
PDF
CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...
ShapeBlue
 
Fully Open-Source Private Clouds: Freedom, Security, and Control
ShapeBlue
 
Pushing the Limits: CloudStack at 25K Hosts
ShapeBlue
 
Stretching CloudStack over multiple datacenters
ShapeBlue
 
Proposed Feature: Monitoring and Managing Cloud Usage Costs in Apache CloudStack
ShapeBlue
 
CloudStack + KVM: Your Local Cloud Lab
ShapeBlue
 
I’d like to resell your CloudStack services, but...
ShapeBlue
 
Storage Setup for LINSTOR/DRBD/CloudStack
ShapeBlue
 
Apache CloudStack 101 - Introduction, What’s New and What’s Coming
ShapeBlue
 
Development of an Оbject Storage Plugin for CloudStack, Christian Reichert, s...
ShapeBlue
 
VM-HA with CloudStack and Linstor, Rene Peinthor
ShapeBlue
 
How We Use CloudStack to Provide Managed Hosting, Swen Brüseke, proIO
ShapeBlue
 
Internet Facing VMs and the DDoS Problem, Wido den Hollander, Your.Online
ShapeBlue
 
Transitioning from VMware to Apache CloudStack: A Path to Profitability and C...
ShapeBlue
 
What’s New and What’s Upcoming in Apache CloudStack, Giles Sirett, ShapeBlue
ShapeBlue
 
CloudStack Authentication Methods – Harikrishna Patnala, ShapeBlue
ShapeBlue
 
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
ShapeBlue
 
VM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlue
ShapeBlue
 
How We Grew Up with CloudStack and its Journey – Dilip Singh, DataHub
ShapeBlue
 
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
ShapeBlue
 
CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...
ShapeBlue
 
Ad

Recently uploaded (20)

PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Ad

Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack

  • 1. Declarative Kubernetes Cluster Deployment Using Cloudstack and Cluster API Ozhan Karaman Zebra Stack Ltd. ozhan zebrastack.co.uk https://www.linkedin.com/in/ozhan-karaman/
  • 2. Who am I? ● Working with Linux and Open Source platforms since 1998 ● Open Source lover ● Started with Slackware and vi ● Using Cloudstack since 2015 ● Working with Kubernetes since 2018 ● Long technical journey with lots of adventures
  • 3. What is Declarative Gitops Approach? Declarative GitOps is an approach for managing infrastructure and applications where the desired state of the system is declared and stored in a Git repository. Changes to the system are made by updating the Git repository, and a GitOps tool automatically applies those changes to the actual infrastructure, ensuring continuous deployment, version control, and easy collaboration. Declarative approaches, such as those used in tools like Kubernetes, are often favored for their simplicity, ease of automation, and improved maintainability. They allow users to describe the desired state, and the system itself takes care of achieving and maintaining that state. Imperative approaches are more explicit, providing detailed instructions on how to perform actions, which may be useful in certain scenarios where fine-grained control is necessary.
  • 4. ClusterAPI onPremise Infrastructure Providers Vmware/Vsphere: You need a minimum vCenter enabled cluster, Vmware’s Kubernetes offering heavily depends on Clusterapi Openstack: You need to have an Openstack deployment(neutron, nova etc), there is no simple deployment to test Clusterapi. Openstack developers are using devstack to develop & test their code. Sidero Labs, Talos Linux: They are providing their own tailored Linux OS, no ubuntu, debian there. Cloudstack: Standard Cloudstack deployment with KVM hypervisor is more then enough. Clusterapi Cloudstack group is an active open source group.
  • 5. Cluster API Common Concepts Infrastructure provider: A component responsible for the managing infrastructure resources (VMs, networks, storage) for CAPI. Bootstrap provider: A component responsible for turning a server into a Kubernetes node, handles tasks like OS component installation and network configuration, ensuring consistent node preparation. (Cloud-init) Control Plane provider: Orchestrates creation, scaling, and lifecycle of control plane components in CAPI. Deploys and configures API server, controller manager, and scheduler, ensuring proper control plane operation.
  • 6. How Cluster API Works? Declarative Cluster Definition: Users define the desired state of their Kubernetes cluster using a set of declarative YAML manifests. These manifests typically include specifications for the control plane and worker nodes. Cluster API Controllers: Cluster API introduces a set of custom controllers that run within the Kubernetes cluster. These controllers watch for changes to the declarative cluster definitions. Generation of Cloud-Init Scripts: When a user submits a cluster definition, the Cluster API controllers interpret the specifications and generate cloud-init scripts. Cloud-init is a popular way to bootstrap cloud instances with configuration data. Infrastructure Provider Integration: The generated cloud-init scripts are then used to initialize the virtual machines or instances on the chosen infrastructure provider (e.g., Cloudstack, AWS, Azure, vSphere). Cluster API provides a pluggable infrastructure provider model, allowing support for various cloud and on-premises environments.
  • 7. How Cluster API Works? Spinning up Servers: The infrastructure provider provisions the necessary resources (VMs, instances) based on the cloud-init scripts. This step results in the creation of the control plane nodes (master nodes) and worker nodes for the Kubernetes cluster. Kubernetes Cluster Configuration: Once the control plane is up and running, Cluster API manages the configuration of the Kubernetes cluster, ensuring that it aligns with the desired state specified by the user. Worker Node Configuration: Cluster API also takes care of configuring the worker nodes, joining them to the cluster, and ensuring they are in the desired state. Lifecycle Management: The Cluster API controllers continuously monitor the cluster's state and reconcile any differences between the desired state and the current state. This includes scaling the cluster up or down, updating the cluster version, and handling node failures.
  • 8. Some Technologies Used in this Demo • Gitlab CI • ArgoCD - Declarative GitOps CD for Kubernetes • Cloudstack - OpenSource Cloud Provider • Cloudstack Cloud Monkey - CLI Interface for Cloudstack APIs • Kubernetes Image Builder Project • Hashicorp Packer - KVM Image Builder • Clusterapi Operator - Manages Clusterapi Core + Bootstrap + Infra Providers • DrOctopus Kubernetes Operator(Manages capc deployed clusters) • Hashicorp Vault
  • 11. Useful Links • Kubernetes Image Builder Project - https://github.com/kubernetes-sigs/image-builder • ArgoCD - https://argo-cd.readthedocs.io/en/stable/ • Cluster API - https://cluster-api.sigs.k8s.io/ • Cluster API Cloudstack Infra Provider - https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack • Cloudstack Documentation - http://docs.cloudstack.apache.org/en/4.18.1.0/ • Shapeblue Bootstrapping K8S Cluster using CAPC l CloudStack 'Feature First Look' Series - https://www.youtube.com/watch?v=Du1pGriJzo8 • Gitlab CI - https://docs.gitlab.com/ee/ci/ • PCextreme Packer Templates - https://github.com/PCextreme/packer-templates • Hashicorp Packer - https://www.packer.io/ • Hashicorp Vault - https://www.vaultproject.io/