Kubernetes on
CloudStack in Production
Reduces operational overhead and infrastructure costs
About Apache CloudStack
Apache CloudStack is an open-source IaaS platform that is used to build public or private cloud environments. CloudStack allows you to easily deploy Kubernetes clusters into your own infrastructure without worrying about the underlying infrastructure and removing the coupling to specific virtualization platforms. It also allows easy deployment of Kubernetes as a Service (KaaS) offerings.
Host your Kubernetes clusters on it to simplify your work and ensure consistent and predictable behavior of your applications, no matter the underlying infrastructure.
CloudStack provides a Kubernetes Cluster API Provider and also the CloudStack Kubernetes Service - giving a choice of integration techniques.
CloudStack is in widespread production usage at many of the world’s largest organizations including many Fortune 500 companies. It includes the entire “stack” of features you need: compute orchestration, Network-as-a-Service, user and account management, a complete and open native API, resource accounting, and a first-class User Interface.
The Kubernetes Cluster API (CAPI) provider for Apache CloudStack allows Kubernetes users to build and manage resources on Apache CloudStack. The provider is available under the Apache 2 open-source license and is managed by the Cloud Native Computing Foundation (CNCF). The Cluster API brings declarative, Kubernetes-style APIs to cluster creation, configuration and management. The API itself is shared across multiple cloud providers allowing for true Apache CloudStack hybrid deployments of Kubernetes. It is built atop the lessons learned from previous cluster managers such as kops and kubicorn.
Explore the CloudStack Kubernetes Service
The CloudStack Kubernetes Service (CKS) gives Cloud Service Providers a Container as a Service (CaaS) offering within their existing IaaS environments, with no disruption to user experience or business process.
The CloudStack Kubernetes Service is developed as a plug-in to Apache CloudStack. It gives users the ability to create Kubernetes clusters within an existing multi-tenant environment provided by CloudStack. The user experience is seamless: users can now manage container clusters and deploy & manage cloud-native applications all in the same user-interface they use to manage their existing compute, network and storage.
- Self–Healing
- Multiple Cluster Management
- Scaling
The ClusterAPI provides self-healing when a Kubernetes node fails, spawning new Instances of the pod on a new node, as native Kubernetes does not have the ability to provision new infrastructure when this occurs. Since ClusterAPI manages infrastructure and Kubernetes at the same time, it can throw more resources onto CloudStack when a failure occurs.
The MachineHealthCheck controller is used to monitor and certify the health of the control plane of the work nodes, guaranteeing the integrity of the services. When a node fails, or resources are insufficient, or the services are unavailable, a new node is provisioned and added to the cluster. In this case, Kubernetes will reschedule the podes from failed nodes.
When Kubernetes cluster expansion is considered, ClusterAPI provides support for a range of different providers, including Apache CloudStack. This ClusterAPI capability is important for companies that use heterogeneous providers from different service providers.
The ClusterAPI abstracts away the different deployment mechanisms that are offered by various providers and infrastructure vendors, allowing operators to fully standardize the entire deployment, regardless of vendor or datacenter or edge. As a result, operators have more control over the entire application environment in a standardized approach to cluster lifecycle management, enabling reuse of existing components across multiple clusters, thus reducing rework.
Application workload is often unpredictable, and to scale up and down Kubernetes clusters, the ClusterAPI facilitates scaling when workloads change. The main task of the ClusterAPI is to ensure that there is enough capacity to meet the current demand for access to the application, also guaranteeing redundancy so that, if a control plane fails, another can attend.
With the Kubeadm Control Plane provider (KCP), the operator can declaratively expand the Kubernetes control plane, thus managing availability and ensuring that the control nodes are organized, minimizing failures during the cluster lifecycle.
For worker nodes, just specify the number of nodes; the clusterAPI will provision the new CloudStack Instances and add them to the cluster. When using the Cluster Autoscaler, the number of worker nodes is automatically adjusted to the number of pods needed, thus meeting the access demand. Metrics can refer to application workload or average CPU usage for cluster tuning.
Learn more about Apache CloudStack and the capabilities it provides for IaaS builders
Download
During the annual CloudStack Collaboration Conference 2023, Alex Dometrius, Associate Director - Technology at AT&T, presented their journey with Apache CloudStack.
SOLUTION BRIEF
Discover how to use CloudStack to provision public cloud services and improve your profitability
DownloadCASE STUDY
IKOULA Simplifies the Management of Large-Scale Cloud Infrastructure with CloudStack and XCP-ng
DownloadCASE STUDY
Future-Proof Open-Source Platform Hosting Millions of Websites for Your.Online Powered by CloudStack, KVM and Ceph
Download