blob: 5926824f78d6c72c79807fc111426fb47e27138f [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">Kubernetes on CloudStack in Production | Apache CloudStack</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://cloudstack.apache.org/kubernetes"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Kubernetes on CloudStack in Production | Apache CloudStack"><meta data-rh="true" name="description" content="Kubernetes on CloudStack in Production"><meta data-rh="true" property="og:description" content="Kubernetes on CloudStack in Production"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://cloudstack.apache.org/kubernetes"><link data-rh="true" rel="alternate" href="https://cloudstack.apache.org/kubernetes" hreflang="en"><link data-rh="true" rel="alternate" href="https://cloudstack.apache.org/kubernetes" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache CloudStack RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache CloudStack Atom Feed">
<script src="scripts/bootstrap.bundle.min.js" async></script><link rel="stylesheet" href="/assets/css/styles.e12efb83.css">
<link rel="preload" href="/assets/js/runtime~main.60ecdf28.js" as="script">
<link rel="preload" href="/assets/js/main.2d60fa8d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/navlogo.png" alt="apache-cloudstack" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/navlogo.png" alt="apache-cloudstack" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate"></b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">About</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/about">About</a></li><li><a class="dropdown__link" href="/history">History</a></li><li><a class="dropdown__link" href="/features">Features</a></li><li><a class="dropdown__link" href="/who">Who We Are</a></li><li><a class="dropdown__link" href="/bylaws">Community Bylaws</a></li><li><a class="dropdown__link" href="/trademark-guidelines">Trademark Guidelines</a></li><li><a class="dropdown__link" href="/security">Security</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/contribute">Get Involved</a></li><li><a class="dropdown__link" href="/developers">Developer Resources</a></li><li><a class="dropdown__link" href="/mailing-lists">Join Mailing Lists</a></li><li><a href="https://github.com/apache/cloudstack/issues" target="_blank" rel="noopener noreferrer" class="dropdown__link">Issues Tracker<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://join.slack.com/t/apachecloudstack/shared_invite/zt-1u8qwbivp-u16HRI~LWioLmF1G2D3Iyg" target="_blank" rel="noopener noreferrer" class="dropdown__link">Community Slack<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a class="dropdown__link" href="/events">Events and Meetups</a></li><li><a href="https://www.cloudstackcollab.org/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Collab Conference<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Use Cases</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/cloud-builders">Cloud Builders</a></li><li><a class="dropdown__link" href="/kubernetes">Kubernetes</a></li><li><a class="dropdown__link" href="/integrations">Integrations</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Users</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/users">Known Users</a></li><li><a class="dropdown__link" href="/blog/tags/case-studies">Case Studies</a></li><li><a href="https://docs.google.com/forms/d/e/1FAIpQLScPHIRetdt-pxPT62IesXMoQUmhQ8ATGKcYZa507mB9uwzn-Q/viewform" target="_blank" rel="noopener noreferrer" class="dropdown__link">Take Survey<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Documentation</a><ul class="dropdown__menu"><li><a href="https://docs.cloudstack.apache.org" target="_blank" rel="noopener noreferrer" class="dropdown__link">CloudStack Documentation<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/Home" target="_blank" rel="noopener noreferrer" class="dropdown__link">Project Wiki<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+Books" target="_blank" rel="noopener noreferrer" class="dropdown__link">CloudStack Books<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a class="dropdown__link" href="/api/">API Documentation</a></li></ul></div><a class="navbar__item navbar__link" href="/downloads">Download</a><a class="navbar__item navbar__link" href="/blog">Blog</a><a href="https://github.com/apache/cloudstack" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="searchBox_ZlJk"><div class="navbar__search searchBarContainer_NW3z"><input placeholder="Search" aria-label="Search" class="navbar__search-input"><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div><div class="searchHintContainer_Pkmr"><kbd class="searchHint_iIMx">ctrl</kbd><kbd class="searchHint_iIMx">K</kbd></div></div></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">ASF</a><ul class="dropdown__menu"><li><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Foundation</a></li><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">License</a></li><li><a href="https://www.apache.org/events/current-event" target="_blank" rel="noopener noreferrer" class="dropdown__link">Events</a></li><li><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Security</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship</a></li><li><a href="https://www.apache.org/foundation/policies/privacy.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Privacy</a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks</a></li></ul></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><header class="header-kubernetes header-homepage"><div class="container"><div class="row"><div class="col-lg-6"><h1><strong>Kubernetes on<br> CloudStack</strong> in Production</h1><p class="px18 k-subtitle">Reduces operational overhead and infrastructure costs</p></div><div class="col-lg-6"><img src="/img/CloudStack_release_illustration2.png" class="img-fluid mtm50" alt=""></div></div></div></header><main><section><div class="container"><div class="row"><div class="col-lg-6 order-lg-2"><h2 class="section-title mt-lg-5">About Apache CloudStack</h2><p class="px18">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.</p><p class="px18">Host your Kubernetes clusters on it to simplify your work and ensure consistent and predictable behavior of your applications, no matter the underlying infrastructure.</p><p class="px18">CloudStack provides a Kubernetes Cluster API Provider and also the CloudStack Kubernetes Service - giving a choice of integration techniques.</p><p class="px18">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.</p></div><div class="col-lg-6 margin-second text-center"><a href="https://docs.google.com/forms/d/e/1FAIpQLScPHIRetdt-pxPT62IesXMoQUmhQ8ATGKcYZa507mB9uwzn-Q/viewform" target="_blank"><img src="/img/CloudStack_survey2.png" class="img-fluid" alt="CloudStack survey"></a></div></div></div></section><section class="bgr-gray"><div class="container"><div class="row"><div class="col-lg-6"><div class="section-title">Explore the Kubernetes Cluster API Provider for Apache CloudStack</div><p class="px18 mt-4">The Kubernetes Cluster API (CAPI) provider for Apache CloudStack allows Ku- bernetes users to build and manage resources on Apache CloudStack. The pro- vider is available under the Apache 2 open-source license and is managed by the Cloud Native Computing Foundation (CNCF). The Cluster API brings declara- tive, 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.</p></div><div class="col-lg-6"><iframe width="100%" height="315" src="https://www.youtube.com/embed/NcfVkVT48Kk" title="Bootstrapping K8S Cluster using CAPC - Apache CloudStack - Kubernetes" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe></div></div></div></section><div class="container"><section class="dark-blue p-5 right-banner"><div class="row"><div class="col-lg-7"><h2 class="section-title">Launching a Kubernetes cluster on Apache CloudStack</h2><p class="px18 mt-4">If users want to launch a Kubernetes cluster on Apache Cloudstack, they can check out the Getting Started Guide to create your first Kubernetes cluster on Apache CloudStack using Cluster API.</p><p class="px18 mb-4">CloudStack hybrid deployments of Kubernetes. It is built atop the lessons learned from pre- vious cluster managers such as kops and kubicorn.</p></div></div></section></div><section class="m80px"><div class="container"><div class="row"><div class="col-lg-6 order-lg-2"><h2 class="section-title mb-4">Explore the CloudStack Kubernetes Service</h2><p class="px18">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.</p><p class="px18">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 &amp; manage cloud-native applications all in the same user-interface they use to manage their existing compute, network and storage.</p></div><div class="col-lg-6 text-center"><img src="/img/apache_cloudstack_services.png" alt="" class="img-fluid"></div></div></div></section><section class="light-blue"><div class="container"><div class="row"><div class="col text-center"><div class="section-title mb-4">Use Cases</div></div></div><div class="row"><div class="col col-lg-9 offset-lg-2"><div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs tabbed-examples tab-box"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Self–Healing</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Multiple Cluster Management</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Scaling</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="row p-4"><div class="col-lg-2 text-center"><img src="/img/kubernetes_healing_icon.svg" alt="Self–Healing" class="mb-4"></div><div class="col-lg-10"><p class="px18"><strong>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.</strong> Since ClusterAPI manages infrastructure and Kubernetes at the same time, it can throw more resources onto CloudStack when a failure occurs.</p><p class="px18">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.</p></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="row p-4"><div class="col-lg-2 text-center"><img src="/img/multi-cluster_icon.svg" alt="Multiple Cluster Management" class="mb-4"></div><div class="col-lg-10"><p class="px18">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.</p><p class="px18">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.</p></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="row p-4"><div class="col-lg-2 text-center"><img src="/img/scaling_icon.svg" alt="Scaling" class="mb-4"></div><div class="col-lg-10"><p class="px18">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.</p><p class="px18">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.</p><p class="px18">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.</p></div></div></div></div></div></div></div></div></section></main><section class="m80px"><div class="container"><div class="row"><div class="col"><div class="section-title text-center mb-5">Learn More about Apache CloudStack</div></div></div><div class="row"><div class="col-lg-6 mb-4"><div class="apache-card bgd-blue"><div class="img-holder"><img src="/img/Apache%20CloudStack%20at%20a%20Glance_img.png" alt="" width="100%"></div><div class="apache-card-body"><div class="apache-card-title">Apache CloudStack at a Glance</div><p>Learn more about Apache CloudStack and the capabilities it provides for IaaS builders</p><a href="/files/cloudstack-at-a-glance.pdf" class="btn btn-primary btn-dark-blue">Download</a></div></div></div><div class="col-lg-6 mb-4"><div class="apache-card bgd-dark-blue"><div class="img-holder"><img src="/img/ATT-Gitops.jpg" alt=""></div><div class="apache-card-body"><p><br>During the annual CloudStack Collaboration Conference 2023, Alex Dometrius, Associate Director - Technology at AT&amp;T, presented their journey with Apache CloudStack.</p><a href="/blog/cloudstack-and-gitops-at-scale" class="btn btn-primary">Read more</a></div></div></div></div><div class="row"><div class="col-lg-3 mb-4"><div class="apache-card card-border"><div class="img-holder"><img src="/img/Delivering%20Public%20Cloud%20Services_img.png" alt="" width="100%"></div><div class="apache-card-body"><p class="blue-title">SOLUTION BRIEF</p><div class="apache-card-title">Delivering Public Cloud Services with CloudStack</div><p>Discover how to use CloudStack to provision public cloud services and improve your profitability</p><a href="/files/acs-public-cloud-solution-brief.pdf" class="btn btn-primary">Download</a></div></div></div><div class="col-lg-3 mb-4"><div class="apache-card card-border"><div class="img-holder"><img src="/img/IKOULA_img.png" alt="" width="100%"></div><div class="apache-card-body"><p class="blue-title">CASE STUDY</p><div class="apache-card-title">IKOULA - The cloud leader &amp; innovator in France</div><p>IKOULA Simplifies the Management of Large-Scale Cloud Infrastructure with CloudStack and XCP-ng</p><a href="/files/acs-case-study-ikoula-2021.pdf" class="btn btn-primary">Download</a></div></div></div><div class="col-lg-6 mb-4"><div class="apache-card card-border"><div class="img-holder"><img src="/img/Your.Online_img.png" alt="" width="100%"></div><div class="apache-card-body pt-0"><p class="blue-title">CASE STUDY</p><div class="apache-card-title">Your.Online – A leading European online services platform</div><p>Future-Proof Open-Source Platform Hosting Millions of Websites for Your.Online Powered by CloudStack, KVM and Ceph</p><a href="/files/acs-case-study-your-online.pdf" class="btn btn-primary">Download</a></div></div></div></div></div></section></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://cloudstack.apache.org/" rel="noopener noreferrer" class="footerLogoLink_BH7S"><img src="/img/ACS_logo_slogan.svg" alt="Apache CloudStack logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo"><img src="/img/ACS_logo_slogan.svg" alt="Apache CloudStack logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo"></a></div><div class="footer__copyright">
<div class="social">
<a href="mailto:dev-subscribe@cloudstack.apache.org">
<img src="/img/mail_mini_icon.svg" alt="">
</a>
<a href="https://join.slack.com/t/apachecloudstack/shared_invite/zt-2aegc22z7-tPCxpptfcebTBtd59qcZSQ">
<img src="/img/slack_mini_icon.svg" alt="">
</a>
<a href="https://github.com/apache/cloudstack">
<img src="/img/git_mini_icon.svg" alt="">
</a>
<a href="https://twitter.com/CloudStack">
<img src="/img/twitter_X_mini_icon.svg" alt="">
</a>
<a href="https://www.youtube.com/@ApacheCloudStack">
<img src="/img/youtube_mini_icon.svg" alt="">
</a>
<a href="https://www.linkedin.com/company/apachecloudstack/posts/">
<img src="/img/linkedin_icon.svg" alt="">
</a>
</div>
<div class="footer-bottom">Copyright © 2023 The Apache
Software Foundation, Licensed under the Apache License, Version 2.0.
“Apache”, “CloudStack”, “Apache CloudStack”, the Apache CloudStack logo,
the Apache CloudStack Cloud Monkey logo and the Apache feather logos
are registered trademarks or trademarks of The Apache Software
Foundation.
<p class="footer-blue"><a href="/trademark-guidelines">Apache CloudStack Trademark Usage</a> - <a href="/bylaws">Apache CloudStack Community ByLaws</a> - <a href="https://github.com/apache/cloudstack-www">Website Source Code</a></p></div>
</div>
<br>
</div></div></footer></div>
<script src="/assets/js/runtime~main.60ecdf28.js"></script>
<script src="/assets/js/main.2d60fa8d.js"></script>
</body>
</html>