<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kubernetes Archives | Clever Cloud</title>
	<atom:link href="https://www.clever.cloud/blog/tag/kubernetes/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.clever.cloud/blog/tag/kubernetes/</link>
	<description>From Code to Product</description>
	<lastBuildDate>Tue, 25 Aug 2026 10:00:09 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://cdn.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>Kubernetes Archives | Clever Cloud</title>
	<link>https://www.clever.cloud/blog/tag/kubernetes/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Managed Kubernetes: benefits, limitations and selection criteria</title>
		<link>https://www.clever.cloud/blog/features/2026/07/24/managed-kubernetes-benefits-limitations-and-selection-criteria/</link>
		
		<dc:creator><![CDATA[Marjorie Darrigade]]></dc:creator>
		<pubDate>Fri, 24 Jul 2026 11:13:45 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[managed services]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=25100</guid>

					<description><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-24-clever-cloud-banniere-blog-kubem-eng.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="managed kubernetes" decoding="async" fetchpriority="high" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-24-clever-cloud-banniere-blog-kubem-eng.png 800w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-24-clever-cloud-banniere-blog-kubem-eng-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-24-clever-cloud-banniere-blog-kubem-eng-768x341.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>workloads and node pools but does not administer the cluster’s critical infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The control plane consists of Kubernetes’ standard components: the API server, etcd (the datastore that stores the cluster’s state), the scheduler and the controller manager. If the control plane fails, workloads that are already running continue to operate, but the cluster can no longer be managed: no new deployments, no scaling, and no response to kubectl commands. Managed services remove responsibility for precisely this layer from engineering teams.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Why is Kubernetes difficult to operate yourself?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/">Kubernetes</a> &nbsp;is a container orchestration standard, not a turnkey product. Deploying a cluster without a managed layer means handling:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>version upgrades (the Kubernetes project actively supports the three most recent minor releases);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>internal TLS certificate rotation;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>high availability of the control plane across multiple nodes;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>backup and consistency of the etcd datastore;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>security patches, often under tight time constraints.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>These tasks are repetitive, consume valuable engineering time, and are a frequent source of incidents when not performed correctly. Managed services are specifically designed to remove this operational burden from product teams.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Use cases: when managed Kubernetes delivers value</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes—whether managed or self-managed—becomes relevant in specific scenarios. It is not a systematic replacement for a <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a>: the two approaches address different needs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed Kubernetes is well suited when:</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>the architecture includes multiple interdependent services requiring <a href="https://www.clever.cloud/blog/engineering/2026/07/03/kubernetes-orchestration-containers-what-is-it-for/">fine-grained orchestration</a> (rolling updates, resource management by namespace);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>workloads are already built for Kubernetes and delivered as Helm charts or YAML manifests;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>the team requires multi-cluster or hybrid environments (on-premises + cloud);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>operating the control plane represents a real and measurable cost for SRE or DevOps teams.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">A PaaS remains a better fit when:</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>the application deployment model (code push with platform-managed build and runtime) matches the way your team works;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>you want to focus on application code without managing orchestration primitives (networking, scheduling, node management);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>your applications do not require fine-grained control over workload placement or the cluster’s network topology.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Comparison table: self-managed Kubernetes vs managed Kubernetes vs PaaS</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<style>
  .cc-table-wrap {
    width: 100%;
    overflow-x: auto;
  }

  .cc-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans", "PlusJakartaSans", -apple-system,
      BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: #111827;
  }

  .cc-table th,
  .cc-table td {
    padding: 12px 16px;
    text-align: left;
    vertical-align: top;
    line-height: 1.6;
  }

  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }

  .cc-table tbody td:first-child {
    font-weight: 700;
  }

  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }

  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }

  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) {
    width: 30%;
  }

  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2),
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3),
  .cc-table th:nth-child(4),
  .cc-table td:nth-child(4) {
    width: 23.33%;
  }

  @media (max-width: 767px) {
    .cc-table {
      font-size: 15px;
    }

    .cc-table th,
    .cc-table td {
      padding: 10px 12px;
    }
  }
</style>

<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Criteria</th>
        <th>Self-managed Kubernetes</th>
        <th>Managed Kubernetes</th>
        <th>PaaS</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td>Control plane management</td>
        <td>Managed by the team</td>
        <td>Operated by the provider</td>
        <td>Not exposed</td>
      </tr>

      <tr>
        <td>kubectl / Helm compatibility</td>
        <td>Full</td>
        <td>Full (vanilla)</td>
        <td>Not applicable</td>
      </tr>

      <tr>
        <td>Architectural flexibility</td>
        <td>Maximum</td>
        <td>High</td>
        <td>Limited to PaaS primitives</td>
      </tr>

      <tr>
        <td>Operational overhead</td>
        <td>High</td>
        <td>Reduced</td>
        <td>Low</td>
      </tr>

      <tr>
        <td>Learning curve</td>
        <td>Steep</td>
        <td>Moderate</td>
        <td>Low</td>
      </tr>

      <tr>
        <td>Kubernetes updates</td>
        <td>Manual</td>
        <td>Handled by the provider</td>
        <td>Not applicable</td>
      </tr>

      <tr>
        <td>Infrastructure engineering cost</td>
        <td>High</td>
        <td>Reduced</td>
        <td>Minimal</td>
      </tr>

      <tr>
        <td>Workload portability</td>
        <td>Full</td>
        <td>Full (if vanilla)</td>
        <td>Depends on the PaaS</td>
      </tr>

      <tr>
        <td>Control plane SLA</td>
        <td>N/A<br>(self-operated)</td>
        <td>Varies by offering</td>
        <td>Varies</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p><strong>Note:</strong> here, <em>vanilla</em> refers to a standard Kubernetes experience, with no changes to native Kubernetes behaviour and no proprietary tooling imposed.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Common mistakes when choosing or adopting managed Kubernetes</h2>
<!-- /wp:heading -->

<!-- wp:acf/arguments {"name":"acf/arguments","data":{"items_0_title":"Confusing “managed” with “no operational responsibility”","_items_0_title":"field_638a066e4d2ec","items_0_short_description":"The provider manages the control plane. Node pools, network configuration, RBAC policies, resource limits and workload security remain the user’s responsibility. Managed Kubernetes reduces the operational burden; it does not eliminate it.","_items_0_short_description":"field_638a068d4d2ed","items_0_full_description":"","_items_0_full_description":"field_638a06af4d2ee","items_1_title":"Moving to Kubernetes by default without assessing actual requirements","_items_1_title":"field_638a066e4d2ec","items_1_short_description":"Kubernetes is often adopted because it has become the industry standard, not because it solves a specific problem. For lighter requirements, other distributions (such as \u003ca href=\u0022https://www.clever.cloud/blog/features/2026/05/28/k3s-vs-k8s-what-are-the-differences-and-which-one-should-you-choose-in-2026/\u0022\u003eK3s\u003c/a\u003e) are available and should be evaluated before deploying a full Kubernetes cluster. An application that fits a PaaS deployment model will often be better served by a PaaS: fewer orchestration primitives to manage for an equivalent production outcome.","_items_1_short_description":"field_638a068d4d2ed","items_1_full_description":"","_items_1_full_description":"field_638a06af4d2ee","items_2_title":"Ignoring the release policy","_items_2_title":"field_638a066e4d2ec","items_2_short_description":"The Kubernetes project supports the three most recent minor releases (the “n-2” policy). A cluster that is not kept up to date eventually falls out of support and no longer receives security patches. Verifying that a managed provider follows this policy (and how unsupported cluster versions are handled) is a selection criterion in its own right.","_items_2_short_description":"field_638a068d4d2ed","items_2_full_description":"","_items_2_full_description":"field_638a06af4d2ee","items_3_title":"Overlooking the risk of vendor lock-in","_items_3_title":"field_638a066e4d2ec","items_3_short_description":"Some managed offerings introduce proprietary abstractions (non-standard CRDs, exclusive networking integrations, provider-specific deployment tools) that make migration difficult. A vanilla offering, with no changes to Kubernetes’ native behaviour, ensures portability of existing manifests and workflows.","_items_3_short_description":"field_638a068d4d2ed","items_3_full_description":"","_items_3_full_description":"field_638a06af4d2ee","items_4_title":"Evaluating the service solely on its upfront price","_items_4_title":"field_638a066e4d2ec","items_4_short_description":"The real cost of a Kubernetes cluster includes the engineering time spent maintaining it. A managed service with a higher list price may have a lower total cost of ownership if it eliminates several days of operational work each month.","_items_4_short_description":"field_638a068d4d2ed","items_4_full_description":"","_items_4_full_description":"field_638a06af4d2ee","items":5,"_items":"field_638a065a4d2eb"},"mode":"auto"} /-->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:acf/avantages {"name":"acf/avantages","data":{"title":"Which option should you choose? \u003cbr\u003e\u003cb\u003eA decision guide\u003c/b\u003e","_title":"field_63878c81ae569","content":"","_content":"field_63878c9cae56a","main_picture":"","_main_picture":"field_63878cd5ae56b","advantages_collection_0_picto":"","_advantages_collection_0_picto":"field_6397417cac52f","advantages_collection_0_title":"Choose a PaaS if","_advantages_collection_0_title":"field_63878d1aae56d","advantages_collection_0_content":"ts deployment model matches the way your team works: you deliver code, while the platform handles builds, runtime and infrastructure. You retain control over your applications without managing Kubernetes orchestration primitives.","_advantages_collection_0_content":"field_63878d4dae56e","advantages_collection_0_link":"","_advantages_collection_0_link":"field_63878d66ae56f","advantages_collection_1_picto":"","_advantages_collection_1_picto":"field_6397417cac52f","advantages_collection_1_title":"Choose managed Kubernetes if","_advantages_collection_1_title":"field_63878d1aae56d","advantages_collection_1_content":"your architecture includes multiple interdependent services, distributed deployments or third-party software already packaged for Kubernetes. A managed service lets you keep your existing tools (kubectl, Helm, Terraform, GitOps) while delegating operation of the control plane.","_advantages_collection_1_content":"field_63878d4dae56e","advantages_collection_1_link":"","_advantages_collection_1_link":"field_63878d66ae56f","advantages_collection_2_picto":"","_advantages_collection_2_picto":"field_6397417cac52f","advantages_collection_2_title":"Choose self-managed Kubernetes if","_advantages_collection_2_title":"field_63878d1aae56d","advantages_collection_2_content":"you have highly specific infrastructure requirements (mandatory on-premises deployment, network configurations unavailable from cloud providers, or sovereignty requirements incompatible with third-party hosting).","_advantages_collection_2_content":"field_63878d4dae56e","advantages_collection_2_link":"","_advantages_collection_2_link":"field_63878d66ae56f","advantages_collection":3,"_advantages_collection":"field_63878cecae56c"},"mode":"auto"} /-->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Managed Kubernetes in Europe: which sovereignty criteria matter?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>For organisations subject to the GDPR, sector-specific regulations (healthcare, public sector, defence) or data residency requirements, where the cluster is hosted is a compliance issue, not just a performance consideration.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Points to verify:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>physical location of the&nbsp; &nbsp; datacenters (country and applicable jurisdiction);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>identity of the operator and the involvement of foreign subcontractors in the hosting chain;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>infrastructure certifications (SecNumCloud, ISO 27001, HDS, depending on the provider and the offering);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>potential access to data by non-European third parties, particularly under extraterritorial legislation.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>A managed Kubernetes service operated in France by a French provider addresses these requirements without requiring additional user-side configuration. This is the approach taken by <a href="https://www.clever.cloud/product/kubernetes/">Clever Kubernetes Engine (CKE)</a>, operated end to end in France by Clever Cloud, with no foreign hyperscaler involved in the hosting chain.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Key takeaways</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/product/kubernetes/">Managed Kubernetes</a> is relevant when your organisation already relies on Kubernetes and maintaining the control plane represents a meaningful operational burden. It is not a universal solution: when a PaaS deployment model matches the way your team works, it often remains the most straightforward choice. For organisations with European sovereignty requirements, the choice of provider and hosting location is critical.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The key selection criteria are: vanilla compatibility (no vendor lock-in), the release policy, a clear division of responsibilities between provider and user, and the overall cost model-list price plus internal engineering costs.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"150px"} -->
<div style="height:150px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading {"level":1,"style":{"typography":{"textAlign":"center"}}} -->
<h1 class="wp-block-heading has-text-align-center">FAQ</h1>
<!-- /wp:heading -->

<!-- wp:html -->
<div style="height: 1px; background-color: #DEDDEE; margin: 30px auto; width: 100%;"></div>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is managed Kubernetes?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A service in which the cloud provider manages the Kubernetes control plane (provisioning, updates and availability). The user manages workloads and node pools, but not the cluster’s critical infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is the difference between managed Kubernetes and a PaaS?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A PaaS handles the build, deployment and execution of what you deliver (source code or a container image) without requiring you to define the underlying orchestration. Managed Kubernetes retains the standard Kubernetes interface (kubectl, Helm and YAML manifests), allowing you to manage these primitives while delegating control plane operations to the provider. These are two distinct operational models that are complementary rather than interchangeable.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does managed Kubernetes create a risk of vendor lock-in?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>It depends on the implementation. A <em>vanilla</em> offering (with no changes to Kubernetes’ native behaviour and no proprietary tooling imposed) allows workloads to be migrated without rewriting them. By contrast, non-standard CRDs or exclusive networking integrations can create dependency on a specific provider.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Who is responsible for what in a managed Kubernetes cluster?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The provider manages the control plane: updates, availability and patching. The user remains responsible for node pools (sizing and scaling), workloads, application security and RBAC policies.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">How can I tell whether my organisation needs managed Kubernetes rather than a PaaS?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The key question is architectural complexity. If your applications require multi-service orchestration, advanced networking interactions or are already designed for Kubernetes, managed Kubernetes is appropriate. If you are deploying relatively standard services, a PaaS will usually be faster and less expensive to operate.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed Kubernetes in France: what sovereign options are available?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In France, several providers offer managed Kubernetes on sovereign infrastructure, including Scaleway (Kubernetes Kapsule), OVHcloud (Managed Kubernetes Service) and Clever Cloud with CKE. Beyond location, the key differentiators are the actual level of sovereignty (operator, subcontractors involved in the hosting chain), vanilla compatibility and the shared responsibility model between provider and user.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-24-clever-cloud-banniere-blog-kubem-eng.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="managed kubernetes" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-24-clever-cloud-banniere-blog-kubem-eng.png 800w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-24-clever-cloud-banniere-blog-kubem-eng-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-24-clever-cloud-banniere-blog-kubem-eng-768x341.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>workloads and node pools but does not administer the cluster’s critical infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The control plane consists of Kubernetes’ standard components: the API server, etcd (the datastore that stores the cluster’s state), the scheduler and the controller manager. If the control plane fails, workloads that are already running continue to operate, but the cluster can no longer be managed: no new deployments, no scaling, and no response to kubectl commands. Managed services remove responsibility for precisely this layer from engineering teams.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Why is Kubernetes difficult to operate yourself?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/">Kubernetes</a> &nbsp;is a container orchestration standard, not a turnkey product. Deploying a cluster without a managed layer means handling:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>version upgrades (the Kubernetes project actively supports the three most recent minor releases);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>internal TLS certificate rotation;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>high availability of the control plane across multiple nodes;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>backup and consistency of the etcd datastore;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>security patches, often under tight time constraints.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>These tasks are repetitive, consume valuable engineering time, and are a frequent source of incidents when not performed correctly. Managed services are specifically designed to remove this operational burden from product teams.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Use cases: when managed Kubernetes delivers value</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes—whether managed or self-managed—becomes relevant in specific scenarios. It is not a systematic replacement for a <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a>: the two approaches address different needs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed Kubernetes is well suited when:</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>the architecture includes multiple interdependent services requiring <a href="https://www.clever.cloud/blog/engineering/2026/07/03/kubernetes-orchestration-containers-what-is-it-for/">fine-grained orchestration</a> (rolling updates, resource management by namespace);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>workloads are already built for Kubernetes and delivered as Helm charts or YAML manifests;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>the team requires multi-cluster or hybrid environments (on-premises + cloud);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>operating the control plane represents a real and measurable cost for SRE or DevOps teams.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">A PaaS remains a better fit when:</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>the application deployment model (code push with platform-managed build and runtime) matches the way your team works;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>you want to focus on application code without managing orchestration primitives (networking, scheduling, node management);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>your applications do not require fine-grained control over workload placement or the cluster’s network topology.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Comparison table: self-managed Kubernetes vs managed Kubernetes vs PaaS</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<style>
  .cc-table-wrap {
    width: 100%;
    overflow-x: auto;
  }

  .cc-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans", "PlusJakartaSans", -apple-system,
      BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: #111827;
  }

  .cc-table th,
  .cc-table td {
    padding: 12px 16px;
    text-align: left;
    vertical-align: top;
    line-height: 1.6;
  }

  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }

  .cc-table tbody td:first-child {
    font-weight: 700;
  }

  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }

  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }

  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) {
    width: 30%;
  }

  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2),
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3),
  .cc-table th:nth-child(4),
  .cc-table td:nth-child(4) {
    width: 23.33%;
  }

  @media (max-width: 767px) {
    .cc-table {
      font-size: 15px;
    }

    .cc-table th,
    .cc-table td {
      padding: 10px 12px;
    }
  }
</style>

<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Criteria</th>
        <th>Self-managed Kubernetes</th>
        <th>Managed Kubernetes</th>
        <th>PaaS</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td>Control plane management</td>
        <td>Managed by the team</td>
        <td>Operated by the provider</td>
        <td>Not exposed</td>
      </tr>

      <tr>
        <td>kubectl / Helm compatibility</td>
        <td>Full</td>
        <td>Full (vanilla)</td>
        <td>Not applicable</td>
      </tr>

      <tr>
        <td>Architectural flexibility</td>
        <td>Maximum</td>
        <td>High</td>
        <td>Limited to PaaS primitives</td>
      </tr>

      <tr>
        <td>Operational overhead</td>
        <td>High</td>
        <td>Reduced</td>
        <td>Low</td>
      </tr>

      <tr>
        <td>Learning curve</td>
        <td>Steep</td>
        <td>Moderate</td>
        <td>Low</td>
      </tr>

      <tr>
        <td>Kubernetes updates</td>
        <td>Manual</td>
        <td>Handled by the provider</td>
        <td>Not applicable</td>
      </tr>

      <tr>
        <td>Infrastructure engineering cost</td>
        <td>High</td>
        <td>Reduced</td>
        <td>Minimal</td>
      </tr>

      <tr>
        <td>Workload portability</td>
        <td>Full</td>
        <td>Full (if vanilla)</td>
        <td>Depends on the PaaS</td>
      </tr>

      <tr>
        <td>Control plane SLA</td>
        <td>N/A<br>(self-operated)</td>
        <td>Varies by offering</td>
        <td>Varies</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p><strong>Note:</strong> here, <em>vanilla</em> refers to a standard Kubernetes experience, with no changes to native Kubernetes behaviour and no proprietary tooling imposed.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Common mistakes when choosing or adopting managed Kubernetes</h2>
<!-- /wp:heading -->

<!-- wp:acf/arguments {"name":"acf/arguments","data":{"items_0_title":"Confusing “managed” with “no operational responsibility”","_items_0_title":"field_638a066e4d2ec","items_0_short_description":"The provider manages the control plane. Node pools, network configuration, RBAC policies, resource limits and workload security remain the user’s responsibility. Managed Kubernetes reduces the operational burden; it does not eliminate it.","_items_0_short_description":"field_638a068d4d2ed","items_0_full_description":"","_items_0_full_description":"field_638a06af4d2ee","items_1_title":"Moving to Kubernetes by default without assessing actual requirements","_items_1_title":"field_638a066e4d2ec","items_1_short_description":"Kubernetes is often adopted because it has become the industry standard, not because it solves a specific problem. For lighter requirements, other distributions (such as \u003ca href=\u0022https://www.clever.cloud/blog/features/2026/05/28/k3s-vs-k8s-what-are-the-differences-and-which-one-should-you-choose-in-2026/\u0022\u003eK3s\u003c/a\u003e) are available and should be evaluated before deploying a full Kubernetes cluster. An application that fits a PaaS deployment model will often be better served by a PaaS: fewer orchestration primitives to manage for an equivalent production outcome.","_items_1_short_description":"field_638a068d4d2ed","items_1_full_description":"","_items_1_full_description":"field_638a06af4d2ee","items_2_title":"Ignoring the release policy","_items_2_title":"field_638a066e4d2ec","items_2_short_description":"The Kubernetes project supports the three most recent minor releases (the “n-2” policy). A cluster that is not kept up to date eventually falls out of support and no longer receives security patches. Verifying that a managed provider follows this policy (and how unsupported cluster versions are handled) is a selection criterion in its own right.","_items_2_short_description":"field_638a068d4d2ed","items_2_full_description":"","_items_2_full_description":"field_638a06af4d2ee","items_3_title":"Overlooking the risk of vendor lock-in","_items_3_title":"field_638a066e4d2ec","items_3_short_description":"Some managed offerings introduce proprietary abstractions (non-standard CRDs, exclusive networking integrations, provider-specific deployment tools) that make migration difficult. A vanilla offering, with no changes to Kubernetes’ native behaviour, ensures portability of existing manifests and workflows.","_items_3_short_description":"field_638a068d4d2ed","items_3_full_description":"","_items_3_full_description":"field_638a06af4d2ee","items_4_title":"Evaluating the service solely on its upfront price","_items_4_title":"field_638a066e4d2ec","items_4_short_description":"The real cost of a Kubernetes cluster includes the engineering time spent maintaining it. A managed service with a higher list price may have a lower total cost of ownership if it eliminates several days of operational work each month.","_items_4_short_description":"field_638a068d4d2ed","items_4_full_description":"","_items_4_full_description":"field_638a06af4d2ee","items":5,"_items":"field_638a065a4d2eb"},"mode":"auto"} /-->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:acf/avantages {"name":"acf/avantages","data":{"title":"Which option should you choose? \u003cbr\u003e\u003cb\u003eA decision guide\u003c/b\u003e","_title":"field_63878c81ae569","content":"","_content":"field_63878c9cae56a","main_picture":"","_main_picture":"field_63878cd5ae56b","advantages_collection_0_picto":"","_advantages_collection_0_picto":"field_6397417cac52f","advantages_collection_0_title":"Choose a PaaS if","_advantages_collection_0_title":"field_63878d1aae56d","advantages_collection_0_content":"ts deployment model matches the way your team works: you deliver code, while the platform handles builds, runtime and infrastructure. You retain control over your applications without managing Kubernetes orchestration primitives.","_advantages_collection_0_content":"field_63878d4dae56e","advantages_collection_0_link":"","_advantages_collection_0_link":"field_63878d66ae56f","advantages_collection_1_picto":"","_advantages_collection_1_picto":"field_6397417cac52f","advantages_collection_1_title":"Choose managed Kubernetes if","_advantages_collection_1_title":"field_63878d1aae56d","advantages_collection_1_content":"your architecture includes multiple interdependent services, distributed deployments or third-party software already packaged for Kubernetes. A managed service lets you keep your existing tools (kubectl, Helm, Terraform, GitOps) while delegating operation of the control plane.","_advantages_collection_1_content":"field_63878d4dae56e","advantages_collection_1_link":"","_advantages_collection_1_link":"field_63878d66ae56f","advantages_collection_2_picto":"","_advantages_collection_2_picto":"field_6397417cac52f","advantages_collection_2_title":"Choose self-managed Kubernetes if","_advantages_collection_2_title":"field_63878d1aae56d","advantages_collection_2_content":"you have highly specific infrastructure requirements (mandatory on-premises deployment, network configurations unavailable from cloud providers, or sovereignty requirements incompatible with third-party hosting).","_advantages_collection_2_content":"field_63878d4dae56e","advantages_collection_2_link":"","_advantages_collection_2_link":"field_63878d66ae56f","advantages_collection":3,"_advantages_collection":"field_63878cecae56c"},"mode":"auto"} /-->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Managed Kubernetes in Europe: which sovereignty criteria matter?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>For organisations subject to the GDPR, sector-specific regulations (healthcare, public sector, defence) or data residency requirements, where the cluster is hosted is a compliance issue, not just a performance consideration.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Points to verify:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>physical location of the&nbsp; &nbsp; datacenters (country and applicable jurisdiction);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>identity of the operator and the involvement of foreign subcontractors in the hosting chain;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>infrastructure certifications (SecNumCloud, ISO 27001, HDS, depending on the provider and the offering);</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>potential access to data by non-European third parties, particularly under extraterritorial legislation.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>A managed Kubernetes service operated in France by a French provider addresses these requirements without requiring additional user-side configuration. This is the approach taken by <a href="https://www.clever.cloud/product/kubernetes/">Clever Kubernetes Engine (CKE)</a>, operated end to end in France by Clever Cloud, with no foreign hyperscaler involved in the hosting chain.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Key takeaways</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/product/kubernetes/">Managed Kubernetes</a> is relevant when your organisation already relies on Kubernetes and maintaining the control plane represents a meaningful operational burden. It is not a universal solution: when a PaaS deployment model matches the way your team works, it often remains the most straightforward choice. For organisations with European sovereignty requirements, the choice of provider and hosting location is critical.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The key selection criteria are: vanilla compatibility (no vendor lock-in), the release policy, a clear division of responsibilities between provider and user, and the overall cost model-list price plus internal engineering costs.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"150px"} -->
<div style="height:150px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading {"level":1,"style":{"typography":{"textAlign":"center"}}} -->
<h1 class="wp-block-heading has-text-align-center">FAQ</h1>
<!-- /wp:heading -->

<!-- wp:html -->
<div style="height: 1px; background-color: #DEDDEE; margin: 30px auto; width: 100%;"></div>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is managed Kubernetes?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A service in which the cloud provider manages the Kubernetes control plane (provisioning, updates and availability). The user manages workloads and node pools, but not the cluster’s critical infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is the difference between managed Kubernetes and a PaaS?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A PaaS handles the build, deployment and execution of what you deliver (source code or a container image) without requiring you to define the underlying orchestration. Managed Kubernetes retains the standard Kubernetes interface (kubectl, Helm and YAML manifests), allowing you to manage these primitives while delegating control plane operations to the provider. These are two distinct operational models that are complementary rather than interchangeable.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does managed Kubernetes create a risk of vendor lock-in?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>It depends on the implementation. A <em>vanilla</em> offering (with no changes to Kubernetes’ native behaviour and no proprietary tooling imposed) allows workloads to be migrated without rewriting them. By contrast, non-standard CRDs or exclusive networking integrations can create dependency on a specific provider.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Who is responsible for what in a managed Kubernetes cluster?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The provider manages the control plane: updates, availability and patching. The user remains responsible for node pools (sizing and scaling), workloads, application security and RBAC policies.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">How can I tell whether my organisation needs managed Kubernetes rather than a PaaS?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The key question is architectural complexity. If your applications require multi-service orchestration, advanced networking interactions or are already designed for Kubernetes, managed Kubernetes is appropriate. If you are deploying relatively standard services, a PaaS will usually be faster and less expensive to operate.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed Kubernetes in France: what sovereign options are available?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In France, several providers offer managed Kubernetes on sovereign infrastructure, including Scaleway (Kubernetes Kapsule), OVHcloud (Managed Kubernetes Service) and Clever Cloud with CKE. Beyond location, the key differentiators are the actual level of sovereignty (operator, subcontractors involved in the hosting chain), vanilla compatibility and the shared responsibility model between provider and user.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kubernetes Cloud: What It Is, How It Works, and the Main Types of Offerings</title>
		<link>https://www.clever.cloud/blog/engineering/2026/07/24/kubernetes-cloud/</link>
		
		<dc:creator><![CDATA[Leo Le Levé Dandé]]></dc:creator>
		<pubDate>Fri, 24 Jul 2026 09:15:00 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=25047</guid>

					<description><![CDATA[<p><img width="2499" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.07.22 Clever Cloud Bannière Blog K8S EN" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en.png 2499w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-1368x607.png 1368w" sizes="(max-width: 2499px) 100vw, 2499px" /></p><!-- wp:paragraph -->
<p>Kubernetes is a container orchestrator; the cloud is where it most often runs. The term "Kubernetes cloud" therefore covers two related realities: running Kubernetes on cloud infrastructure, and relying on a managed Kubernetes service operated by a provider.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes Is Not a Cloud</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/fr/product/kubernetes/">Kubernetes</a> is an open source container orchestrator. <a href="https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/">How Kubernetes works</a> comes down to orchestrating containers spread across a set of machines: it schedules their placement, deploys them, supervises their lifecycle, and manages their scaling and network exposure. These containers are often built with Docker, and <a href="https://www.clever.cloud/blog/features/2026/05/22/kubernetes-vs-docker-differences-and-when-to-use-them/">the distinction between Kubernetes and Docker</a> is itself a common source of confusion.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>What Kubernetes does not do is provide the underlying machines, storage, and network. It needs infrastructure to run on, and that infrastructure can take several forms: physical servers (bare metal), virtual machines, a private cloud, or a public cloud. This is the layer a cloud provider supplies.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Hence a frequent confusion: comparing "Kubernetes" with "AWS", or Kubernetes with a cloud provider in general. The two sit at different layers. A cloud provider sells <a href="https://www.clever.cloud/infrastructure/">infrastructure</a> and often offers a managed Kubernetes on top of it. Kubernetes orchestrates the containers running on that infrastructure. You do not choose between Kubernetes and the cloud: you can run Kubernetes on a cloud, or use the managed Kubernetes that cloud offers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In other words, choosing an infrastructure and choosing who operates the cluster are two separate decisions. That is what shapes the types of offerings described below.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Running Kubernetes in the Cloud: Managed or Self-Managed</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Once that relationship is clear, two operating models appear. Either you install and operate Kubernetes yourself on machines rented from a cloud provider, or you use a managed service where the provider operates the control plane for you.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The control plane is the dividing line between the two. It groups the components that drive the cluster: the apiserver, etcd (the datastore that holds the cluster state), the scheduler, and the controller-manager. Operating it yourself means handling version upgrades, which the Kubernetes project requires you to keep up with since it only supports its three most recent minor versions, internal TLS certificate rotation, high availability of these components across several nodes, etcd backup and consistency, and security patches under time pressure. A managed service takes this layer off your hands: you keep control of your workloads, your node pools, and their security, but no longer administer the cluster's critical infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Not every need calls for a full cluster. Lighter distributions, <a href="https://www.clever.cloud/blog/features/2026/05/28/k3s-vs-k8s-what-are-the-differences-and-which-one-should-you-choose-in-2026/">such as K3s</a>, exist and are worth evaluating depending on the workload and the context. And Kubernetes, managed or not, is one operating model among others. A <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a> follows a different one: you ship code, and the platform handles the build, execution, and scaling, without you having to operate an orchestrator. PaaS and Kubernetes meet different, complementary needs, and a single organization can use both.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">The Three Types of Offerings for Running Kubernetes in the Cloud</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Offerings fall into three types, depending on whether you operate the cluster yourself or a provider does, and, in the latter case, on whether that provider is a global hyperscaler or a European player.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Self-Managed on Cloud Infrastructure</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>You rent compute, storage, and network from a provider, then install and operate Kubernetes yourself. This approach gives the most complete control over the cluster and the underlying infrastructure, at the cost of the operational burden described above. It makes sense when specific infrastructure, network, or compliance constraints are not covered by the managed offerings available. It is also the approach of teams that want to keep a hand on every component of the cluster, from the container runtime to the scheduling and internal network configuration.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed by a Hyperscaler</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The large global cloud providers offer managed Kubernetes services: Amazon EKS, Google GKE, Microsoft AKS. The provider operates the control plane, and you deploy your workloads with the standard Kubernetes tooling. These offerings are tightly integrated with each provider's ecosystem, which is their strength when your other services already run there, and the point to watch if you ever consider moving away. Their operators, however, fall under non-European jurisdictions, including for the regions they run in Europe. These offerings therefore do not meet a European sovereignty requirement, a decisive criterion for certain sectors and certain types of data.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed by a European Provider</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Several European providers offer managed Kubernetes on infrastructure located within the European Union. Location matters, but it does not make an offering sovereign. A datacenter sitting in Europe remains within reach of the US CLOUD Act if the company operating it answers to a foreign jurisdiction. What determines sovereignty is the <a href="https://www.clever.cloud/sovereign-cloud/">legal and capital control of the operator</a>, not where the servers sit.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On this ground, several players offer managed Kubernetes: OVHcloud (Managed Kubernetes Service) and Scaleway (Kubernetes Kapsule). Clever Cloud offers <a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine</a>, a managed Kubernetes operated by a European company based in France. Beyond location, these offerings differ in their real level of sovereignty, which depends on the operator and its subcontracting chain, and in how well they fit the tools you already use. For a closer look, French managed Kubernetes offerings are covered in a dedicated article.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes Cloud: Key Takeaways</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>"Kubernetes cloud" refers to running Kubernetes on cloud infrastructure, along with the managed services providers offer so you do not have to operate the cluster yourself. The line between self-managed and managed runs through the control plane, the layer a provider either takes on or does not. Three types of offerings then appear: self-managed on cloud infrastructure, managed by a hyperscaler, and managed by a European provider, bearing in mind that a European location alone is not enough to make an offering sovereign. Which one fits depends on your infrastructure constraints, the tooling already in place, and your requirements around data and sovereignty. It all comes down to one distinction: the cloud supplies the infrastructure, Kubernetes orchestrates what runs on it, and the managed model determines who, the provider or you, operates the cluster in between.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>What remains is to work out when a managed Kubernetes makes sense and how to choose one, and to clarify what a sovereign Kubernetes really means.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">FAQ</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is Kubernetes a cloud?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Kubernetes is a container orchestrator, not an infrastructure provider. A cloud supplies the servers, storage, and network; Kubernetes orchestrates the containers running on top of them. You can run it on a cloud, or use the managed Kubernetes service a cloud offers.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Can you run Kubernetes outside the cloud, on bare metal or on-premises?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. Kubernetes is infrastructure-agnostic: it runs on physical servers, virtual machines, a private or public cloud, and on hybrid environments combining several of these. The cloud is the most common setting, not a requirement.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Are "Kubernetes cloud" and "managed Kubernetes" the same thing?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Not exactly. "Kubernetes cloud" broadly means running Kubernetes on cloud infrastructure, which covers both a cluster you operate yourself and a managed service. "Managed Kubernetes" specifically refers to the offering where a provider operates the control plane for you. Every managed Kubernetes is Kubernetes in the cloud, but the reverse is not always true.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is the difference between Kubernetes and a cloud provider like AWS?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>They operate at different layers. AWS is a cloud provider: it sells infrastructure and offers, on top of it, a managed Kubernetes (Amazon EKS). Kubernetes is the orchestrator that drives the containers on that infrastructure. Setting them against each other is like confusing the warehouse with the system that organizes what goes into it.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2499" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.07.22 Clever Cloud Bannière Blog K8S EN" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en.png 2499w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-22-clever-cloud-banniere-blog-k8s-en-1368x607.png 1368w" sizes="auto, (max-width: 2499px) 100vw, 2499px" /></p><!-- wp:paragraph -->
<p>Kubernetes is a container orchestrator; the cloud is where it most often runs. The term "Kubernetes cloud" therefore covers two related realities: running Kubernetes on cloud infrastructure, and relying on a managed Kubernetes service operated by a provider.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes Is Not a Cloud</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/fr/product/kubernetes/">Kubernetes</a> is an open source container orchestrator. <a href="https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/">How Kubernetes works</a> comes down to orchestrating containers spread across a set of machines: it schedules their placement, deploys them, supervises their lifecycle, and manages their scaling and network exposure. These containers are often built with Docker, and <a href="https://www.clever.cloud/blog/features/2026/05/22/kubernetes-vs-docker-differences-and-when-to-use-them/">the distinction between Kubernetes and Docker</a> is itself a common source of confusion.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>What Kubernetes does not do is provide the underlying machines, storage, and network. It needs infrastructure to run on, and that infrastructure can take several forms: physical servers (bare metal), virtual machines, a private cloud, or a public cloud. This is the layer a cloud provider supplies.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Hence a frequent confusion: comparing "Kubernetes" with "AWS", or Kubernetes with a cloud provider in general. The two sit at different layers. A cloud provider sells <a href="https://www.clever.cloud/infrastructure/">infrastructure</a> and often offers a managed Kubernetes on top of it. Kubernetes orchestrates the containers running on that infrastructure. You do not choose between Kubernetes and the cloud: you can run Kubernetes on a cloud, or use the managed Kubernetes that cloud offers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In other words, choosing an infrastructure and choosing who operates the cluster are two separate decisions. That is what shapes the types of offerings described below.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Running Kubernetes in the Cloud: Managed or Self-Managed</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Once that relationship is clear, two operating models appear. Either you install and operate Kubernetes yourself on machines rented from a cloud provider, or you use a managed service where the provider operates the control plane for you.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The control plane is the dividing line between the two. It groups the components that drive the cluster: the apiserver, etcd (the datastore that holds the cluster state), the scheduler, and the controller-manager. Operating it yourself means handling version upgrades, which the Kubernetes project requires you to keep up with since it only supports its three most recent minor versions, internal TLS certificate rotation, high availability of these components across several nodes, etcd backup and consistency, and security patches under time pressure. A managed service takes this layer off your hands: you keep control of your workloads, your node pools, and their security, but no longer administer the cluster's critical infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Not every need calls for a full cluster. Lighter distributions, <a href="https://www.clever.cloud/blog/features/2026/05/28/k3s-vs-k8s-what-are-the-differences-and-which-one-should-you-choose-in-2026/">such as K3s</a>, exist and are worth evaluating depending on the workload and the context. And Kubernetes, managed or not, is one operating model among others. A <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a> follows a different one: you ship code, and the platform handles the build, execution, and scaling, without you having to operate an orchestrator. PaaS and Kubernetes meet different, complementary needs, and a single organization can use both.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">The Three Types of Offerings for Running Kubernetes in the Cloud</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Offerings fall into three types, depending on whether you operate the cluster yourself or a provider does, and, in the latter case, on whether that provider is a global hyperscaler or a European player.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Self-Managed on Cloud Infrastructure</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>You rent compute, storage, and network from a provider, then install and operate Kubernetes yourself. This approach gives the most complete control over the cluster and the underlying infrastructure, at the cost of the operational burden described above. It makes sense when specific infrastructure, network, or compliance constraints are not covered by the managed offerings available. It is also the approach of teams that want to keep a hand on every component of the cluster, from the container runtime to the scheduling and internal network configuration.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed by a Hyperscaler</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The large global cloud providers offer managed Kubernetes services: Amazon EKS, Google GKE, Microsoft AKS. The provider operates the control plane, and you deploy your workloads with the standard Kubernetes tooling. These offerings are tightly integrated with each provider's ecosystem, which is their strength when your other services already run there, and the point to watch if you ever consider moving away. Their operators, however, fall under non-European jurisdictions, including for the regions they run in Europe. These offerings therefore do not meet a European sovereignty requirement, a decisive criterion for certain sectors and certain types of data.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed by a European Provider</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Several European providers offer managed Kubernetes on infrastructure located within the European Union. Location matters, but it does not make an offering sovereign. A datacenter sitting in Europe remains within reach of the US CLOUD Act if the company operating it answers to a foreign jurisdiction. What determines sovereignty is the <a href="https://www.clever.cloud/sovereign-cloud/">legal and capital control of the operator</a>, not where the servers sit.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On this ground, several players offer managed Kubernetes: OVHcloud (Managed Kubernetes Service) and Scaleway (Kubernetes Kapsule). Clever Cloud offers <a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine</a>, a managed Kubernetes operated by a European company based in France. Beyond location, these offerings differ in their real level of sovereignty, which depends on the operator and its subcontracting chain, and in how well they fit the tools you already use. For a closer look, French managed Kubernetes offerings are covered in a dedicated article.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes Cloud: Key Takeaways</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>"Kubernetes cloud" refers to running Kubernetes on cloud infrastructure, along with the managed services providers offer so you do not have to operate the cluster yourself. The line between self-managed and managed runs through the control plane, the layer a provider either takes on or does not. Three types of offerings then appear: self-managed on cloud infrastructure, managed by a hyperscaler, and managed by a European provider, bearing in mind that a European location alone is not enough to make an offering sovereign. Which one fits depends on your infrastructure constraints, the tooling already in place, and your requirements around data and sovereignty. It all comes down to one distinction: the cloud supplies the infrastructure, Kubernetes orchestrates what runs on it, and the managed model determines who, the provider or you, operates the cluster in between.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>What remains is to work out when a managed Kubernetes makes sense and how to choose one, and to clarify what a sovereign Kubernetes really means.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">FAQ</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is Kubernetes a cloud?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Kubernetes is a container orchestrator, not an infrastructure provider. A cloud supplies the servers, storage, and network; Kubernetes orchestrates the containers running on top of them. You can run it on a cloud, or use the managed Kubernetes service a cloud offers.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Can you run Kubernetes outside the cloud, on bare metal or on-premises?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. Kubernetes is infrastructure-agnostic: it runs on physical servers, virtual machines, a private or public cloud, and on hybrid environments combining several of these. The cloud is the most common setting, not a requirement.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Are "Kubernetes cloud" and "managed Kubernetes" the same thing?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Not exactly. "Kubernetes cloud" broadly means running Kubernetes on cloud infrastructure, which covers both a cluster you operate yourself and a managed service. "Managed Kubernetes" specifically refers to the offering where a provider operates the control plane for you. Every managed Kubernetes is Kubernetes in the cloud, but the reverse is not always true.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is the difference between Kubernetes and a cloud provider like AWS?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>They operate at different layers. AWS is a cloud provider: it sells infrastructure and offers, on top of it, a managed Kubernetes (Amazon EKS). Kubernetes is the orchestrator that drives the containers on that infrastructure. Setting them against each other is like confusing the warehouse with the system that organizes what goes into it.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kubernetes orchestration: what is container orchestration for?</title>
		<link>https://www.clever.cloud/blog/engineering/2026/07/03/kubernetes-orchestration-containers-what-is-it-for/</link>
		
		<dc:creator><![CDATA[Leo Le Levé Dandé]]></dc:creator>
		<pubDate>Fri, 03 Jul 2026 09:40:46 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=24866</guid>

					<description><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.07.02 Clever Cloud Bannière Blog Kubernetes Orchestration EN" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en.png 2500w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }
  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 28%; }
  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 36%; }
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 36%; }
</style>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>It is a function distinct from containerization itself, which packages an application and its dependencies into a standard format. The <a href="https://www.clever.cloud/blog/features/2026/05/22/kubernetes-vs-docker-differences-and-when-to-use-them/">differences between Docker and Kubernetes</a> rest precisely on that distinction: Docker builds and runs containers, Kubernetes orchestrates them. Today Kubernetes is the reference orchestrator, but orchestration as a concept exists independently of the tool that implements it.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Why orchestration exists</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Running three containers on a single server does not call for orchestration. You start them, you watch them by eye, you restart one by hand if something crashes. The nature of the problem changes the moment an application becomes a distributed system: several services, several machines, variable traffic, frequent deployments. The operational questions that appear then are concrete. Which machine should this new container run on? What happens if a node goes down in the middle of the night? How do you move from version 1.4 to 1.5 with no visible interruption? How does one internal service find another when IP addresses change on every restart?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Each of these questions has a possible manual answer, one you can even script. Orchestration is about automating them coherently, under a single model.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">The five core functions of orchestration</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> handles these questions through a <a href="https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/">declarative model built on reconciliation loops</a>: you describe the desired state of the system, and the orchestrator constantly compares that desired state to the actual state to bring them together. The five functions that follow are instances of this general mechanism.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Scheduling: placing containers on the right machines</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25312,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-scheduling-diagram-1024x411.webp" alt="Kubernetes scheduling diagram: kube-scheduler filters and scores nodes, then binds pod A to the selected node through the API server." class="wp-image-25312"/><figcaption class="wp-element-caption">kubernetes orchestration scheduling diagram</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Scheduling answers one question: when a new container needs to start, which machine in the cluster should run it? On a cluster of a few nodes with identical profiles, the decision is trivial. On a real cluster, it is not: some machines have GPUs and others do not, some are already loaded, some applications must be isolated while others must instead be co-located for latency reasons.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The kube-scheduler component makes this choice in two steps: filtering, which rules out the nodes that cannot host the pod (insufficient capacity, affinity constraints, taints and tolerations), and scoring, which ranks the remaining nodes against several criteria. The pod is then assigned to the chosen node through a binding operation with the API server. The quality of the decision depends on the information given to the scheduler. It is the resource requests declared on the pods that drive placement: the scheduler looks for a node whose available capacity covers those requests. The limits, on the other hand, play no part in placement; they cap a container’s consumption once it is running.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Scaling: matching capacity to real traffic</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25314,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-scaling-diagram-1024x385.webp" alt="Kubernetes scaling diagram: Horizontal Pod Autoscaler, Vertical Pod Autoscaler and Cluster Autoscaler adjusting pod count, pod size and nodes." class="wp-image-25314"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Scaling automates a decision that is simple to state: how many copies of a service should run at a given moment? Too many copies cost money. Too few cause incidents at the first spike.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Scaling is a function common to every orchestrator; the mechanisms vary by implementation. In Kubernetes, it rests on three distinct building blocks. The Horizontal Pod Autoscaler (HPA), part of core Kubernetes, adjusts the number of pods in a deployment based on a metric. To do so it relies on the Metrics Server, a component you install separately, because metric collection is not provided by default. The Vertical Pod Autoscaler (VPA), also shipped as a separate project, adjusts the resources allocated to each pod. The Cluster Autoscaler, finally, adds or removes whole nodes according to aggregate needs. These mechanisms assume reliable metrics: an HPA driven by CPU, when the service is actually constrained by disk I/O, will not produce the expected result.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Self-healing: replacing what fails</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25315,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-self-healing-diagram-1024x371.webp" alt="Kubernetes self-healing diagram: the controller reconciliation loop replaces a failed pod to restore the desired state of three replicas." class="wp-image-25315"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Past a certain number of machines, failures stop being exceptional events and become background noise. A disk fails, a kernel panic happens, a container leaks memory and ends up OOM-killed. Without orchestration, every failure triggers human intervention, more or less urgent. With orchestration, these events are absorbed without intervention.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Within Kubernetes, the mechanism rests on two elements. First, probes (liveness, readiness, startup) that let it know whether a container is actually working, and not merely whether it has started. Second, the principle that any object managed by a controller (Deployment, StatefulSet, DaemonSet) is constantly compared against the desired state: if a pod disappears, the controller requests a new one. The accuracy of the probes determines the quality of self-healing: probes that are too strict cause needless restarts, probes that are too lax let broken containers through.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Service discovery and internal load balancing</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25316,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-service-discovery-diagram-1024x303.webp" alt="Kubernetes service discovery diagram: CoreDNS resolves a Service name to a virtual IP and kube-proxy sends traffic to ready pods only." class="wp-image-25316"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>In a moving fleet of containers, where each pod has an ephemeral IP address, two services that need to communicate cannot rely on static IP configurations. Service discovery solves this through a layer of indirection. In Kubernetes, a Service object groups a set of pods (selected by labels) under a stable DNS name and a virtual IP. CoreDNS, the cluster’s internal DNS server, resolves these names. Traffic sent to the Service IP is distributed across the ready pods via kube-proxy. This principle is not specific to Kubernetes: other orchestrators meet the same need differently. On Clever Cloud, for instance, services find each other through configuration injection between applications and through Network Groups, an encrypted private network with internal DNS resolution.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Several types of Services exist (ClusterIP for internal traffic, NodePort and LoadBalancer for external traffic), alongside the notion of Ingress for application-level HTTP routing. This network layer, simple in appearance, holds a substantial share of the operational complexity of Kubernetes: CNI plugin choice, network policies, east-west traffic observability.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Rolling updates and rollbacks</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25317,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-rolling-update-diagram-1024x426.webp" alt="Kubernetes rolling update diagram: pods replaced one by one from v1.4 to v1.5 with no downtime; on failure the rollout stops and kubectl rollout undo reverts it." class="wp-image-25317"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Shipping a new version to production without interrupting the service is a risky operation when done by hand. Kubernetes treats it as a state transition: you change the Deployment manifest to point to the new image version, and the controller applies the configured rollout strategy.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The RollingUpdate strategy (the default) progressively replaces old pods with new ones, guaranteeing that a minimum number stays available at all times. The Recreate strategy stops everything and then restarts, useful for incompatible schema migrations. In case of failure, the rollout does not revert on its own to the previous state: it stops, the new pods that fail their probes do not replace the old ones, and it is an operator who triggers the return to the previous version with kubectl rollout undo. For this to work, the versions must be compatible with each other during the transition, which implies discipline on API contracts and database migrations.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Beyond the five core functions</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes orchestration does not stop at these five functions. In practice, a production Kubernetes cluster also manages application configuration (ConfigMaps), secrets (with or without encryption at rest), persistent storage through PersistentVolumeClaims, authorization (RBAC), network isolation (NetworkPolicies), observability (logs, metrics, traces), and certificate lifecycle management. Each of these is itself an operational responsibility that adds to the base.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Without an orchestrator vs with Kubernetes: a function-by-function comparison</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Function</th>
        <th>Without an orchestrator</th>
        <th>With Kubernetes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Scheduling</td>
        <td>Manual placement or custom allocation scripts</td>
        <td>kube-scheduler with declarative constraints</td>
      </tr>
      <tr>
        <td>Scaling</td>
        <td>Manual provisioning or external rules</td>
        <td>HPA, VPA, Cluster Autoscaler</td>
      </tr>
      <tr>
        <td>Self-healing</td>
        <td>External monitoring and restart scripts</td>
        <td>Built-in probes and controllers</td>
      </tr>
      <tr>
        <td>Service discovery</td>
        <td>Config files, Consul, standalone etcd</td>
        <td>Native Services and internal DNS</td>
      </tr>
      <tr>
        <td>Rolling updates</td>
        <td>Custom deployment scripts and manual load balancer switchover</td>
        <td>Deployment controller and declarative strategies</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p>The table does not rank the two columns. It shows that Kubernetes provides a unified model for these five functions, where an approach without an orchestrator handles them separately with different tools. For a system that does not need this unification, the left-hand column remains perfectly valid.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Common practices worth knowing</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Choose the tool based on the need, not by default.</strong> Not every application needs scheduling, automatic scaling or service discovery at the level Kubernetes offers. A PaaS, a VM deployment, or a systemd binary meet many needs with a different operational model.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Think about observability from the start.</strong> A Kubernetes cluster without centralized logs, aggregated metrics and traces quickly becomes hard to operate beyond a handful of services. Observability is an integral part of orchestration, not an optional add-on.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Define requests and limits before enabling autoscaling.</strong> The HPA and the Cluster Autoscaler rely on the pods’ declared resources to decide on scaling. Without declarations, their decisions rest on partial information.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Get probe configuration right.</strong> Liveness and readiness probes govern both self-healing and traffic routing. A rough configuration degrades both functions at once.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When Kubernetes orchestration becomes relevant</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No single one of the five functions, taken in isolation, justifies bringing Kubernetes into a system. A deployment script, a properly configured load balancer, a monitoring tool with automatic restart can each cover one of them individually. What justifies adopting an orchestrator is the point where the five functions all become necessary at once, on an infrastructure distributed enough to make ad hoc solutions expensive to maintain.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Concretely, that corresponds to architectures with a dozen services or more, deployed across several machines, with frequent deployment cycles, significant load variations and resilience requirements that no longer tolerate manual intervention. For contexts more constrained in resources (edge, IoT, development machines, small clusters), a <a href="https://www.clever.cloud/blog/features/2026/05/28/k3s-vs-k8s-what-are-the-differences-and-which-one-should-you-choose-in-2026/">lightweight Kubernetes distribution such as K3s can be a good fit</a>. <a href="https://www.clever.cloud/blog/engineering/2025/03/05/what-is-a-paas/">A PaaS also meets these needs</a>, as it does many other application profiles (industrialized deployment, automatic scaling, resilience, updates), with an operational model distinct from Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>When Kubernetes does become relevant, the next question rarely concerns installation and more often day-to-day operations: control plane updates, etcd management, certificate rotation, observability, backups. That observation is what explains the growing adoption of managed Kubernetes services. At Clever Cloud, <a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine</a> addresses this need with Materia etcd, a serverless implementation of the etcd API built on FoundationDB that takes over from standard etcd, a known bottleneck at scale, on sovereign infrastructure spread across our three Paris datacenters.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Container orchestration in summary</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Container orchestration automates several categories of operational decisions, chief among them five main classes: where to place a container, when to start more of them, what to do when one of them fails, how they find one another, and how to move from one version to the next without interruption. Kubernetes brings these functions together under a unified model, which makes it the reference tool for distributed systems that need them all at once. The useful question, faced with a project, is not whether you should do orchestration, but which of these functions are actually needed, and at what level of automation.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">FAQ - Kubernetes orchestration</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>What is the difference between containerization and orchestration?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Containerization packages an application and its dependencies into a standardized format that runs identically on any compatible host. Orchestration automates the management of a fleet of containers in production: placement, scaling, self-healing, service discovery, updates. Docker is the reference tool for the former, Kubernetes for the latter.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Do you necessarily need Kubernetes to orchestrate containers?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Kubernetes is the most widely adopted orchestrator, but others exist: HashiCorp’s Nomad, which orchestrates containers, VMs and binaries in a single cluster, or Docker Swarm, still maintained but with declining adoption. Apache Mesos, long cited as an alternative, was retired to the Apache Attic in October 2025 and is no longer in active development. Beyond that, a PaaS like Clever Cloud covers the full set of these orchestration functions (placement, automatic scaling, self-healing, rolling updates, service discovery) with its own control plane, independent of Kubernetes. It is that control plane that orchestrates both the applications running in VMs and the containers of the platform’s Docker runtime.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is container orchestration necessary for CI/CD?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No, but the two are often used together. Modern CI/CD pipelines produce container images as their final artifact, and the orchestrator (Kubernetes or another) takes over to deploy and operate those images. CI/CD and orchestration are two complementary stages of the application lifecycle.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does K3s allow orchestration in constrained environments?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. K3s is a CNCF-certified Kubernetes distribution designed for resource-limited environments (edge, IoT, development machines, small clusters). It keeps the standard Kubernetes APIs while reducing the resource footprint and deployment complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does managed Kubernetes change the orchestration functions available?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Managed Kubernetes provides the same set of orchestration functions as a self-hosted cluster, since it is the same Kubernetes. The difference lies in how operational responsibilities are split: the provider takes on control plane management, updates, and the underlying monitoring. Users then focus on their application workloads.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Which orchestration function is the hardest to master?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Networking is frequently cited as the most complex. Service discovery, internal load balancing, NetworkPolicies, Ingress, CNI plugin, east-west traffic observability: the Kubernetes network layer concentrates a significant share of advanced operational topics and remains a frequent source of production incidents.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.07.02 Clever Cloud Bannière Blog Kubernetes Orchestration EN" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en.png 2500w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-en-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }
  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 28%; }
  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 36%; }
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 36%; }
</style>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>It is a function distinct from containerization itself, which packages an application and its dependencies into a standard format. The <a href="https://www.clever.cloud/blog/features/2026/05/22/kubernetes-vs-docker-differences-and-when-to-use-them/">differences between Docker and Kubernetes</a> rest precisely on that distinction: Docker builds and runs containers, Kubernetes orchestrates them. Today Kubernetes is the reference orchestrator, but orchestration as a concept exists independently of the tool that implements it.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Why orchestration exists</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Running three containers on a single server does not call for orchestration. You start them, you watch them by eye, you restart one by hand if something crashes. The nature of the problem changes the moment an application becomes a distributed system: several services, several machines, variable traffic, frequent deployments. The operational questions that appear then are concrete. Which machine should this new container run on? What happens if a node goes down in the middle of the night? How do you move from version 1.4 to 1.5 with no visible interruption? How does one internal service find another when IP addresses change on every restart?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Each of these questions has a possible manual answer, one you can even script. Orchestration is about automating them coherently, under a single model.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">The five core functions of orchestration</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> handles these questions through a <a href="https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/">declarative model built on reconciliation loops</a>: you describe the desired state of the system, and the orchestrator constantly compares that desired state to the actual state to bring them together. The five functions that follow are instances of this general mechanism.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Scheduling: placing containers on the right machines</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25312,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-scheduling-diagram-1024x411.webp" alt="Kubernetes scheduling diagram: kube-scheduler filters and scores nodes, then binds pod A to the selected node through the API server." class="wp-image-25312"/><figcaption class="wp-element-caption">kubernetes orchestration scheduling diagram</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Scheduling answers one question: when a new container needs to start, which machine in the cluster should run it? On a cluster of a few nodes with identical profiles, the decision is trivial. On a real cluster, it is not: some machines have GPUs and others do not, some are already loaded, some applications must be isolated while others must instead be co-located for latency reasons.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The kube-scheduler component makes this choice in two steps: filtering, which rules out the nodes that cannot host the pod (insufficient capacity, affinity constraints, taints and tolerations), and scoring, which ranks the remaining nodes against several criteria. The pod is then assigned to the chosen node through a binding operation with the API server. The quality of the decision depends on the information given to the scheduler. It is the resource requests declared on the pods that drive placement: the scheduler looks for a node whose available capacity covers those requests. The limits, on the other hand, play no part in placement; they cap a container’s consumption once it is running.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Scaling: matching capacity to real traffic</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25314,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-scaling-diagram-1024x385.webp" alt="Kubernetes scaling diagram: Horizontal Pod Autoscaler, Vertical Pod Autoscaler and Cluster Autoscaler adjusting pod count, pod size and nodes." class="wp-image-25314"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Scaling automates a decision that is simple to state: how many copies of a service should run at a given moment? Too many copies cost money. Too few cause incidents at the first spike.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Scaling is a function common to every orchestrator; the mechanisms vary by implementation. In Kubernetes, it rests on three distinct building blocks. The Horizontal Pod Autoscaler (HPA), part of core Kubernetes, adjusts the number of pods in a deployment based on a metric. To do so it relies on the Metrics Server, a component you install separately, because metric collection is not provided by default. The Vertical Pod Autoscaler (VPA), also shipped as a separate project, adjusts the resources allocated to each pod. The Cluster Autoscaler, finally, adds or removes whole nodes according to aggregate needs. These mechanisms assume reliable metrics: an HPA driven by CPU, when the service is actually constrained by disk I/O, will not produce the expected result.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Self-healing: replacing what fails</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25315,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-self-healing-diagram-1024x371.webp" alt="Kubernetes self-healing diagram: the controller reconciliation loop replaces a failed pod to restore the desired state of three replicas." class="wp-image-25315"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Past a certain number of machines, failures stop being exceptional events and become background noise. A disk fails, a kernel panic happens, a container leaks memory and ends up OOM-killed. Without orchestration, every failure triggers human intervention, more or less urgent. With orchestration, these events are absorbed without intervention.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Within Kubernetes, the mechanism rests on two elements. First, probes (liveness, readiness, startup) that let it know whether a container is actually working, and not merely whether it has started. Second, the principle that any object managed by a controller (Deployment, StatefulSet, DaemonSet) is constantly compared against the desired state: if a pod disappears, the controller requests a new one. The accuracy of the probes determines the quality of self-healing: probes that are too strict cause needless restarts, probes that are too lax let broken containers through.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Service discovery and internal load balancing</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25316,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-service-discovery-diagram-1024x303.webp" alt="Kubernetes service discovery diagram: CoreDNS resolves a Service name to a virtual IP and kube-proxy sends traffic to ready pods only." class="wp-image-25316"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>In a moving fleet of containers, where each pod has an ephemeral IP address, two services that need to communicate cannot rely on static IP configurations. Service discovery solves this through a layer of indirection. In Kubernetes, a Service object groups a set of pods (selected by labels) under a stable DNS name and a virtual IP. CoreDNS, the cluster’s internal DNS server, resolves these names. Traffic sent to the Service IP is distributed across the ready pods via kube-proxy. This principle is not specific to Kubernetes: other orchestrators meet the same need differently. On Clever Cloud, for instance, services find each other through configuration injection between applications and through Network Groups, an encrypted private network with internal DNS resolution.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Several types of Services exist (ClusterIP for internal traffic, NodePort and LoadBalancer for external traffic), alongside the notion of Ingress for application-level HTTP routing. This network layer, simple in appearance, holds a substantial share of the operational complexity of Kubernetes: CNI plugin choice, network policies, east-west traffic observability.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Rolling updates and rollbacks</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25317,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-rolling-update-diagram-1024x426.webp" alt="Kubernetes rolling update diagram: pods replaced one by one from v1.4 to v1.5 with no downtime; on failure the rollout stops and kubectl rollout undo reverts it." class="wp-image-25317"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Shipping a new version to production without interrupting the service is a risky operation when done by hand. Kubernetes treats it as a state transition: you change the Deployment manifest to point to the new image version, and the controller applies the configured rollout strategy.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The RollingUpdate strategy (the default) progressively replaces old pods with new ones, guaranteeing that a minimum number stays available at all times. The Recreate strategy stops everything and then restarts, useful for incompatible schema migrations. In case of failure, the rollout does not revert on its own to the previous state: it stops, the new pods that fail their probes do not replace the old ones, and it is an operator who triggers the return to the previous version with kubectl rollout undo. For this to work, the versions must be compatible with each other during the transition, which implies discipline on API contracts and database migrations.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Beyond the five core functions</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes orchestration does not stop at these five functions. In practice, a production Kubernetes cluster also manages application configuration (ConfigMaps), secrets (with or without encryption at rest), persistent storage through PersistentVolumeClaims, authorization (RBAC), network isolation (NetworkPolicies), observability (logs, metrics, traces), and certificate lifecycle management. Each of these is itself an operational responsibility that adds to the base.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Without an orchestrator vs with Kubernetes: a function-by-function comparison</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Function</th>
        <th>Without an orchestrator</th>
        <th>With Kubernetes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Scheduling</td>
        <td>Manual placement or custom allocation scripts</td>
        <td>kube-scheduler with declarative constraints</td>
      </tr>
      <tr>
        <td>Scaling</td>
        <td>Manual provisioning or external rules</td>
        <td>HPA, VPA, Cluster Autoscaler</td>
      </tr>
      <tr>
        <td>Self-healing</td>
        <td>External monitoring and restart scripts</td>
        <td>Built-in probes and controllers</td>
      </tr>
      <tr>
        <td>Service discovery</td>
        <td>Config files, Consul, standalone etcd</td>
        <td>Native Services and internal DNS</td>
      </tr>
      <tr>
        <td>Rolling updates</td>
        <td>Custom deployment scripts and manual load balancer switchover</td>
        <td>Deployment controller and declarative strategies</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p>The table does not rank the two columns. It shows that Kubernetes provides a unified model for these five functions, where an approach without an orchestrator handles them separately with different tools. For a system that does not need this unification, the left-hand column remains perfectly valid.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Common practices worth knowing</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Choose the tool based on the need, not by default.</strong> Not every application needs scheduling, automatic scaling or service discovery at the level Kubernetes offers. A PaaS, a VM deployment, or a systemd binary meet many needs with a different operational model.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Think about observability from the start.</strong> A Kubernetes cluster without centralized logs, aggregated metrics and traces quickly becomes hard to operate beyond a handful of services. Observability is an integral part of orchestration, not an optional add-on.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Define requests and limits before enabling autoscaling.</strong> The HPA and the Cluster Autoscaler rely on the pods’ declared resources to decide on scaling. Without declarations, their decisions rest on partial information.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Get probe configuration right.</strong> Liveness and readiness probes govern both self-healing and traffic routing. A rough configuration degrades both functions at once.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When Kubernetes orchestration becomes relevant</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No single one of the five functions, taken in isolation, justifies bringing Kubernetes into a system. A deployment script, a properly configured load balancer, a monitoring tool with automatic restart can each cover one of them individually. What justifies adopting an orchestrator is the point where the five functions all become necessary at once, on an infrastructure distributed enough to make ad hoc solutions expensive to maintain.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Concretely, that corresponds to architectures with a dozen services or more, deployed across several machines, with frequent deployment cycles, significant load variations and resilience requirements that no longer tolerate manual intervention. For contexts more constrained in resources (edge, IoT, development machines, small clusters), a <a href="https://www.clever.cloud/blog/features/2026/05/28/k3s-vs-k8s-what-are-the-differences-and-which-one-should-you-choose-in-2026/">lightweight Kubernetes distribution such as K3s can be a good fit</a>. <a href="https://www.clever.cloud/blog/engineering/2025/03/05/what-is-a-paas/">A PaaS also meets these needs</a>, as it does many other application profiles (industrialized deployment, automatic scaling, resilience, updates), with an operational model distinct from Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>When Kubernetes does become relevant, the next question rarely concerns installation and more often day-to-day operations: control plane updates, etcd management, certificate rotation, observability, backups. That observation is what explains the growing adoption of managed Kubernetes services. At Clever Cloud, <a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine</a> addresses this need with Materia etcd, a serverless implementation of the etcd API built on FoundationDB that takes over from standard etcd, a known bottleneck at scale, on sovereign infrastructure spread across our three Paris datacenters.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Container orchestration in summary</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Container orchestration automates several categories of operational decisions, chief among them five main classes: where to place a container, when to start more of them, what to do when one of them fails, how they find one another, and how to move from one version to the next without interruption. Kubernetes brings these functions together under a unified model, which makes it the reference tool for distributed systems that need them all at once. The useful question, faced with a project, is not whether you should do orchestration, but which of these functions are actually needed, and at what level of automation.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">FAQ - Kubernetes orchestration</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>What is the difference between containerization and orchestration?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Containerization packages an application and its dependencies into a standardized format that runs identically on any compatible host. Orchestration automates the management of a fleet of containers in production: placement, scaling, self-healing, service discovery, updates. Docker is the reference tool for the former, Kubernetes for the latter.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Do you necessarily need Kubernetes to orchestrate containers?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Kubernetes is the most widely adopted orchestrator, but others exist: HashiCorp’s Nomad, which orchestrates containers, VMs and binaries in a single cluster, or Docker Swarm, still maintained but with declining adoption. Apache Mesos, long cited as an alternative, was retired to the Apache Attic in October 2025 and is no longer in active development. Beyond that, a PaaS like Clever Cloud covers the full set of these orchestration functions (placement, automatic scaling, self-healing, rolling updates, service discovery) with its own control plane, independent of Kubernetes. It is that control plane that orchestrates both the applications running in VMs and the containers of the platform’s Docker runtime.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is container orchestration necessary for CI/CD?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No, but the two are often used together. Modern CI/CD pipelines produce container images as their final artifact, and the orchestrator (Kubernetes or another) takes over to deploy and operate those images. CI/CD and orchestration are two complementary stages of the application lifecycle.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does K3s allow orchestration in constrained environments?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. K3s is a CNCF-certified Kubernetes distribution designed for resource-limited environments (edge, IoT, development machines, small clusters). It keeps the standard Kubernetes APIs while reducing the resource footprint and deployment complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does managed Kubernetes change the orchestration functions available?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Managed Kubernetes provides the same set of orchestration functions as a self-hosted cluster, since it is the same Kubernetes. The difference lies in how operational responsibilities are split: the provider takes on control plane management, updates, and the underlying monitoring. Users then focus on their application workloads.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Which orchestration function is the hardest to master?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Networking is frequently cited as the most complex. Service discovery, internal load balancing, NetworkPolicies, Ingress, CNI plugin, east-west traffic observability: the Kubernetes network layer concentrates a significant share of advanced operational topics and remains a frequent source of production incidents.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>K3s vs K8s: What Are the Differences and Which One Should You Choose in 2026?</title>
		<link>https://www.clever.cloud/blog/features/2026/05/28/k3s-vs-k8s-what-are-the-differences-and-which-one-should-you-choose-in-2026/</link>
		
		<dc:creator><![CDATA[Marjorie Darrigade]]></dc:creator>
		<pubDate>Thu, 28 May 2026 07:19:05 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[K3s]]></category>
		<category><![CDATA[K8S]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=24419</guid>

					<description><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-27-clever-cloud-banniere-blog-k3s-vs-k8s-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="K3s vs K8s EN" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-27-clever-cloud-banniere-blog-k3s-vs-k8s-en.png 800w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-27-clever-cloud-banniere-blog-k3s-vs-k8s-en-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-27-clever-cloud-banniere-blog-k3s-vs-k8s-en-768x341.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>In short: K3s is a CNCF-certified Kubernetes distribution optimized for constrained environments (edge, IoT, labs). K8s refers to the original Kubernetes project, designed for large-scale production clusters. The choice depends on your available resources, deployment context, and operational workload.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">K8s: Standard Kubernetes for Enterprise Environments</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K8s is the abbreviation of Kubernetes, with the “8” representing the eight letters between the “K” and the “s”. It is the original open-source project maintained by the Cloud Native Computing Foundation (CNCF) and initially developed by Google.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Kubernetes is designed for <strong>large-scale production environments</strong>: multi-node clusters, high availability, integration with public clouds (AWS, GCP, Azure), or on-premises datacenters. Its control plane includes several separate components: API server, scheduler, controller manager, etcd, deployed independently, which provides maximum flexibility but requires significant operational expertise.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Typical requirements for a production control plane node</strong>: at least 2 vCPUs and 2 GB of RAM for Kubernetes components alone, excluding etcd and application workloads.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">K3s: A CNCF-Certified Kubernetes Distribution, Not a Fork</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3s is a certified Kubernetes distribution, not an unofficial lightweight version or a fork. Created by Rancher Labs, it was <a href="https://thenewstack.io/ranchers-k3s-joins-cncf-sandbox-as-first-kubernetes-distribution/" target="_blank" rel="noreferrer noopener">donated to the CNCF in June 2020</a> and passes the same Sonobuoy conformance tests as all certified distributions. Any valid Kubernetes manifest works on K3s.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Its main goal is to <strong>drastically reduce the resources required </strong>to run Kubernetes in constrained environments (edge, IoT, CI/CD, labs) without giving up API compatibility.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What K3s Changes Compared to K8s</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><a href="https://k3s.io/" target="_blank" rel="noreferrer noopener">A single binary under 70 MB</a>  (supporting x86, ARM64, ARMv7, and S390X), including the containerd runtime, Flannel CNI, a Traefik ingress controller, and a Klipper load balancer.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>SQLite as the default datastore</strong> in single-node mode instead of etcd. In high-availability configurations (minimum three server nodes), K3s can use <strong>embedded etcd </strong>or an external datastore (MySQL, PostgreSQL, external etcd).</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Alpha and beta components removed </strong>to reduce the attack surface and memory footprint.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p><strong>Important point</strong>: K3s does not remove etcd; it makes it optional. In single-node mode, SQLite is sufficient. In high availability, embedded or external etcd is supported - although the latter is not officially supported by the K3s team.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Resource Footprint</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3s can run with as little as <strong>512 MB of RAM</strong> on an agent node. According to <a href="https://docs.k3s.io/installation/requirements" target="_blank" rel="noreferrer noopener">the official documentation</a> (updated May 2026), a server node (control plane) requires 2 GB of RAM and 2 CPU cores, excluding application workloads. A load-tested profile is available in the <a href="https://docs.k3s.io/reference/resource-profiling" target="_blank" rel="noreferrer noopener">K3s resource profiling guide</a>. It is worth noting that tests on hardware with 1 GB of total RAM showed instability across K3s, k0s, and MicroK8s when deploying real application workloads (even a lightweight Kubernetes cluster still consumes non-negligible control-plane resources).</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Key Technical Differences</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Datastore</h3>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }
  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 28%; }
  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 36%; }
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 36%; }
</style>

<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Scenario</th>
        <th>K8s</th>
        <th>K3s</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Single-node</td>
        <td>etcd required</td>
        <td>SQLite by default</td>
      </tr>
      <tr>
        <td>Multi-node High Availability</td>
        <td>etcd</td>
        <td>Embedded or external etcd (MySQL, PostgreSQL)</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Runtime and packaging</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K8s no longer provides a default runtime since the removal of dockershim (v1.24, 2022). Starting with Kubernetes 1.24, you must install a CRI-compatible runtime (containerd or CRI-O). K3s embeds containerd directly into its binary.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Control Plane Architecture</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In K8s, control plane components (API server, scheduler, controller manager) are separate processes. In K3s, they are merged into a single binary, which reduces overhead but limits some advanced isolation configurations.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Scalability</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3s is suitable for moderately sized clusters. In high-availability configurations (3 server nodes, 4 vCPU / 8 GB RAM), <a href="https://docs.k3s.io/installation/requirements" target="_blank" rel="noreferrer noopener">the official documentation</a> indicates a capacity of around 1,200 agents. For very large clusters (several thousand nodes), K8s remains the reference.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">K3s vs K8s Comparison Table</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"35px"} -->
<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }
  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }
  .cc-table tbody td:first-child {
    font-weight: 600;
  }
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 28%; }
  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 36%; }
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 36%; }
</style>

<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Criterion</th>
        <th>K3s</th>
        <th>K8s</th>
      </tr>
    </thead>
    <tbody>
      <tr><td>CNCF certification</td><td>Yes (certified distribution)</td><td>Yes (original project)</td></tr>
      <tr><td>Binary size</td><td>&lt; 100 MB</td><td>Not applicable (separate components)</td></tr>
      <tr><td>Default datastore</td><td>SQLite (single-node) / etcd (high availability)</td><td>etcd</td></tr>
      <tr><td>Embedded runtime</td><td>containerd</td><td>No (to be installed separately)</td></tr>
      <tr><td>ARM support</td><td>Yes (ARM64, ARMv7)</td><td>Yes (depends on the distribution)</td></tr>
      <tr><td>Default ingress</td><td>Traefik (included)</td><td>No (to be deployed separately)</td></tr>
      <tr><td>API compatibility</td><td>Required APIs certified by the CNCF</td><td>Reference implementation (original project)</td></tr>
      <tr><td>Documented max scalability</td><td>~1200 agents (High Availability 3 servers)</td><td>Several thousand nodes</td></tr>
      <tr><td>Main use case</td><td>Edge, IoT, lab, CI/CD</td><td>Enterprise, cloud, datacenters</td></tr>
      <tr><td>Operational complexity</td><td>Low</td><td>High</td></tr>
      <tr><td>Alpha/beta components</td><td>Removed</td><td>Included</td></tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Use Cases: Which One Should You Choose?</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Choose K3s if:</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>You deploy on <strong>constrained hardware</strong> (Raspberry Pi, industrial appliances, edge servers with limited RAM).</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>You manage remote <strong>IoT or edge clusters</strong>, potentially in disconnected environments.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>You need a <strong>development or CI cluster</strong> that starts quickly, including on modest hardware.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>You want an operational cluster with <strong>minimal initial configuration</strong>.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Choose K8s (or an enterprise distribution) if:</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>You orchestrate <strong>hundreds or thousands of production nodes</strong>.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Your workloads require <strong>advanced cloud-native integrations</strong> (storage, load balancers, IAM) provided by hyperscalers.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>You need <strong>alpha or beta API components</strong> unavailable in K3s.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Your organization has a <strong>dedicated SRE team</strong> operating clusters.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Hybrid Use Cases: K3s and K8s Together</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3s and K8s are not mutually exclusive. Several hybrid architectures are documented in production:</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Fleet Management with Rancher</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Edge K3s clusters are managed from a central control plane running on K8s or RKE2. The Home Depot (large American retailer with more than 2,300 stores) <a href="https://www.datacenterknowledge.com/data-center-site-selection/home-depot-upgrades-2-300-retail-edge-locations-using-suse-rancher-k3s" target="_blank" rel="noreferrer noopener">manages its sites using K3s supervised through Rancher</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">K3s for Dev and Staging, K8s for Production</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>API compatibility guarantees that manifests and Helm charts tested on K3s work in production on an enterprise cluster. This parity reduces surprises when promoting environments.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">CI/CD</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Test pipelines run on K3s (low cost, fast startup) while production environments use managed K8s clusters.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Managed Kubernetes: A Third Path</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Neither K3s nor K8s solves the question of <strong>daily operations</strong>: updates, certificates, control plane monitoring, or failure management. This is precisely what managed Kubernetes solutions cover.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Hyperscalers (EKS, GKE, AKS) provide this management within their own clouds. But managed solutions also exist outside these ecosystems, especially for organizations that want to retain control over their data and choose sovereign Kubernetes, or even French-operated Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine (CKE)</a> is Clever Cloud’s <a href="https://www.clever.cloud/product/kubernetes/">managed Kubernetes</a> service, designed for teams already using Kubernetes and wanting to delegate control plane management (updates, high availability, monitoring) without being constrained to a single hyperscaler. CKE explicitly targets teams that are not fully covered by the traditional  <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a> model (multi-runtime use cases, non-twelve-factor workloads, or the need for granular resource control).</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"150px"} -->
<div style="height:150px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading {"level":1,"style":{"typography":{"textAlign":"center"}}} -->
<h1 class="wp-block-heading has-text-align-center">FAQ</h1>
<!-- /wp:heading -->

<!-- wp:html -->
<div style="height: 1px; background-color: #DEDDEE; margin: 30px auto; width: 100%;"></div>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is K3s a Kubernetes fork?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. K3s is a CNCF-certified Kubernetes distribution. It passes Sonobuoy conformance tests and supports the same APIs as K8s. It is not maintained separately from Kubernetes: it follows upstream Kubernetes releases.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Can K3s Be Used in Production?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes, with some nuances. K3s is documented for production workloads in constrained environments (edge, IoT). For large-scale clusters or critical workloads with high SLA requirements, K8s (or an enterprise distribution such as RKE2) is more appropriate.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does K3s Support Helm?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. K3s includes an integrated Helm controller and is compatible with any valid Helm chart.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What Is the Difference Between K3s and K3d?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3d is a tool that runs K3s inside Docker containers. It further simplifies the creation of local K3s clusters for development, but it is not intended for production use.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does K3s Run on ARM?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. ARM64 and ARMv7 are natively supported, which explains its popularity on Raspberry Pi devices and industrial appliances.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed Kubernetes vs Self-Hosted K3s: Which One Should You Choose?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Self-hosted K3s gives you full control but makes you responsible for operations (updates, security, high availability). Managed Kubernetes delegates this responsibility to an operator, at the cost of dependency on that provider. The choice depends on your operational resources and control requirements.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"90px"} -->
<div style="height:90px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->]]></description>
										<content:encoded><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-27-clever-cloud-banniere-blog-k3s-vs-k8s-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="K3s vs K8s EN" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-27-clever-cloud-banniere-blog-k3s-vs-k8s-en.png 800w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-27-clever-cloud-banniere-blog-k3s-vs-k8s-en-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-27-clever-cloud-banniere-blog-k3s-vs-k8s-en-768x341.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>In short: K3s is a CNCF-certified Kubernetes distribution optimized for constrained environments (edge, IoT, labs). K8s refers to the original Kubernetes project, designed for large-scale production clusters. The choice depends on your available resources, deployment context, and operational workload.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">K8s: Standard Kubernetes for Enterprise Environments</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K8s is the abbreviation of Kubernetes, with the “8” representing the eight letters between the “K” and the “s”. It is the original open-source project maintained by the Cloud Native Computing Foundation (CNCF) and initially developed by Google.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Kubernetes is designed for <strong>large-scale production environments</strong>: multi-node clusters, high availability, integration with public clouds (AWS, GCP, Azure), or on-premises datacenters. Its control plane includes several separate components: API server, scheduler, controller manager, etcd, deployed independently, which provides maximum flexibility but requires significant operational expertise.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Typical requirements for a production control plane node</strong>: at least 2 vCPUs and 2 GB of RAM for Kubernetes components alone, excluding etcd and application workloads.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">K3s: A CNCF-Certified Kubernetes Distribution, Not a Fork</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3s is a certified Kubernetes distribution, not an unofficial lightweight version or a fork. Created by Rancher Labs, it was <a href="https://thenewstack.io/ranchers-k3s-joins-cncf-sandbox-as-first-kubernetes-distribution/" target="_blank" rel="noreferrer noopener">donated to the CNCF in June 2020</a> and passes the same Sonobuoy conformance tests as all certified distributions. Any valid Kubernetes manifest works on K3s.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Its main goal is to <strong>drastically reduce the resources required </strong>to run Kubernetes in constrained environments (edge, IoT, CI/CD, labs) without giving up API compatibility.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What K3s Changes Compared to K8s</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><a href="https://k3s.io/" target="_blank" rel="noreferrer noopener">A single binary under 70 MB</a>  (supporting x86, ARM64, ARMv7, and S390X), including the containerd runtime, Flannel CNI, a Traefik ingress controller, and a Klipper load balancer.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>SQLite as the default datastore</strong> in single-node mode instead of etcd. In high-availability configurations (minimum three server nodes), K3s can use <strong>embedded etcd </strong>or an external datastore (MySQL, PostgreSQL, external etcd).</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Alpha and beta components removed </strong>to reduce the attack surface and memory footprint.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p><strong>Important point</strong>: K3s does not remove etcd; it makes it optional. In single-node mode, SQLite is sufficient. In high availability, embedded or external etcd is supported - although the latter is not officially supported by the K3s team.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Resource Footprint</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3s can run with as little as <strong>512 MB of RAM</strong> on an agent node. According to <a href="https://docs.k3s.io/installation/requirements" target="_blank" rel="noreferrer noopener">the official documentation</a> (updated May 2026), a server node (control plane) requires 2 GB of RAM and 2 CPU cores, excluding application workloads. A load-tested profile is available in the <a href="https://docs.k3s.io/reference/resource-profiling" target="_blank" rel="noreferrer noopener">K3s resource profiling guide</a>. It is worth noting that tests on hardware with 1 GB of total RAM showed instability across K3s, k0s, and MicroK8s when deploying real application workloads (even a lightweight Kubernetes cluster still consumes non-negligible control-plane resources).</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Key Technical Differences</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Datastore</h3>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }
  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 28%; }
  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 36%; }
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 36%; }
</style>

<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Scenario</th>
        <th>K8s</th>
        <th>K3s</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Single-node</td>
        <td>etcd required</td>
        <td>SQLite by default</td>
      </tr>
      <tr>
        <td>Multi-node High Availability</td>
        <td>etcd</td>
        <td>Embedded or external etcd (MySQL, PostgreSQL)</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Runtime and packaging</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K8s no longer provides a default runtime since the removal of dockershim (v1.24, 2022). Starting with Kubernetes 1.24, you must install a CRI-compatible runtime (containerd or CRI-O). K3s embeds containerd directly into its binary.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Control Plane Architecture</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In K8s, control plane components (API server, scheduler, controller manager) are separate processes. In K3s, they are merged into a single binary, which reduces overhead but limits some advanced isolation configurations.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Scalability</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3s is suitable for moderately sized clusters. In high-availability configurations (3 server nodes, 4 vCPU / 8 GB RAM), <a href="https://docs.k3s.io/installation/requirements" target="_blank" rel="noreferrer noopener">the official documentation</a> indicates a capacity of around 1,200 agents. For very large clusters (several thousand nodes), K8s remains the reference.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">K3s vs K8s Comparison Table</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"35px"} -->
<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }
  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }
  .cc-table tbody td:first-child {
    font-weight: 600;
  }
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 28%; }
  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 36%; }
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 36%; }
</style>

<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Criterion</th>
        <th>K3s</th>
        <th>K8s</th>
      </tr>
    </thead>
    <tbody>
      <tr><td>CNCF certification</td><td>Yes (certified distribution)</td><td>Yes (original project)</td></tr>
      <tr><td>Binary size</td><td>&lt; 100 MB</td><td>Not applicable (separate components)</td></tr>
      <tr><td>Default datastore</td><td>SQLite (single-node) / etcd (high availability)</td><td>etcd</td></tr>
      <tr><td>Embedded runtime</td><td>containerd</td><td>No (to be installed separately)</td></tr>
      <tr><td>ARM support</td><td>Yes (ARM64, ARMv7)</td><td>Yes (depends on the distribution)</td></tr>
      <tr><td>Default ingress</td><td>Traefik (included)</td><td>No (to be deployed separately)</td></tr>
      <tr><td>API compatibility</td><td>Required APIs certified by the CNCF</td><td>Reference implementation (original project)</td></tr>
      <tr><td>Documented max scalability</td><td>~1200 agents (High Availability 3 servers)</td><td>Several thousand nodes</td></tr>
      <tr><td>Main use case</td><td>Edge, IoT, lab, CI/CD</td><td>Enterprise, cloud, datacenters</td></tr>
      <tr><td>Operational complexity</td><td>Low</td><td>High</td></tr>
      <tr><td>Alpha/beta components</td><td>Removed</td><td>Included</td></tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Use Cases: Which One Should You Choose?</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Choose K3s if:</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>You deploy on <strong>constrained hardware</strong> (Raspberry Pi, industrial appliances, edge servers with limited RAM).</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>You manage remote <strong>IoT or edge clusters</strong>, potentially in disconnected environments.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>You need a <strong>development or CI cluster</strong> that starts quickly, including on modest hardware.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>You want an operational cluster with <strong>minimal initial configuration</strong>.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Choose K8s (or an enterprise distribution) if:</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>You orchestrate <strong>hundreds or thousands of production nodes</strong>.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Your workloads require <strong>advanced cloud-native integrations</strong> (storage, load balancers, IAM) provided by hyperscalers.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>You need <strong>alpha or beta API components</strong> unavailable in K3s.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Your organization has a <strong>dedicated SRE team</strong> operating clusters.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Hybrid Use Cases: K3s and K8s Together</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3s and K8s are not mutually exclusive. Several hybrid architectures are documented in production:</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Fleet Management with Rancher</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Edge K3s clusters are managed from a central control plane running on K8s or RKE2. The Home Depot (large American retailer with more than 2,300 stores) <a href="https://www.datacenterknowledge.com/data-center-site-selection/home-depot-upgrades-2-300-retail-edge-locations-using-suse-rancher-k3s" target="_blank" rel="noreferrer noopener">manages its sites using K3s supervised through Rancher</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">K3s for Dev and Staging, K8s for Production</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>API compatibility guarantees that manifests and Helm charts tested on K3s work in production on an enterprise cluster. This parity reduces surprises when promoting environments.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">CI/CD</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Test pipelines run on K3s (low cost, fast startup) while production environments use managed K8s clusters.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Managed Kubernetes: A Third Path</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Neither K3s nor K8s solves the question of <strong>daily operations</strong>: updates, certificates, control plane monitoring, or failure management. This is precisely what managed Kubernetes solutions cover.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Hyperscalers (EKS, GKE, AKS) provide this management within their own clouds. But managed solutions also exist outside these ecosystems, especially for organizations that want to retain control over their data and choose sovereign Kubernetes, or even French-operated Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine (CKE)</a> is Clever Cloud’s <a href="https://www.clever.cloud/product/kubernetes/">managed Kubernetes</a> service, designed for teams already using Kubernetes and wanting to delegate control plane management (updates, high availability, monitoring) without being constrained to a single hyperscaler. CKE explicitly targets teams that are not fully covered by the traditional  <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a> model (multi-runtime use cases, non-twelve-factor workloads, or the need for granular resource control).</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"150px"} -->
<div style="height:150px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading {"level":1,"style":{"typography":{"textAlign":"center"}}} -->
<h1 class="wp-block-heading has-text-align-center">FAQ</h1>
<!-- /wp:heading -->

<!-- wp:html -->
<div style="height: 1px; background-color: #DEDDEE; margin: 30px auto; width: 100%;"></div>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is K3s a Kubernetes fork?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. K3s is a CNCF-certified Kubernetes distribution. It passes Sonobuoy conformance tests and supports the same APIs as K8s. It is not maintained separately from Kubernetes: it follows upstream Kubernetes releases.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Can K3s Be Used in Production?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes, with some nuances. K3s is documented for production workloads in constrained environments (edge, IoT). For large-scale clusters or critical workloads with high SLA requirements, K8s (or an enterprise distribution such as RKE2) is more appropriate.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does K3s Support Helm?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. K3s includes an integrated Helm controller and is compatible with any valid Helm chart.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What Is the Difference Between K3s and K3d?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3d is a tool that runs K3s inside Docker containers. It further simplifies the creation of local K3s clusters for development, but it is not intended for production use.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does K3s Run on ARM?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. ARM64 and ARMv7 are natively supported, which explains its popularity on Raspberry Pi devices and industrial appliances.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Managed Kubernetes vs Self-Hosted K3s: Which One Should You Choose?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Self-hosted K3s gives you full control but makes you responsible for operations (updates, security, high availability). Managed Kubernetes delegates this responsibility to an operator, at the cost of dependency on that provider. The choice depends on your operational resources and control requirements.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"90px"} -->
<div style="height:90px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kubernetes vs Docker : Differences and When to Use Them</title>
		<link>https://www.clever.cloud/blog/features/2026/05/22/kubernetes-vs-docker-differences-and-when-to-use-them/</link>
		
		<dc:creator><![CDATA[Marjorie Darrigade]]></dc:creator>
		<pubDate>Fri, 22 May 2026 20:31:53 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[K8S]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=24363</guid>

					<description><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-22-clever-cloud-banniere-blog-k8s-vs-docker-eng.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="K8s vs Docker ENG" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-22-clever-cloud-banniere-blog-k8s-vs-docker-eng.png 800w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-22-clever-cloud-banniere-blog-k8s-vs-docker-eng-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-22-clever-cloud-banniere-blog-k8s-vs-docker-eng-768x341.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>The <a href="https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/">Kubernetes</a> vs Docker question deserves a precise answer, because the two technologies do not solve the same problem.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Docker is mainly used to build and run containers. Kubernetes is used to orchestrate those containers once the infrastructure becomes more complex. The two technologies are therefore often complementary, even though they are frequently- and incorrectly - presented as opposites.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Understanding this distinction helps clarify when Docker alone is enough, when <a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> becomes relevant, and why not every application actually needs a Kubernetes cluster.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Docker : Standardizing Application Execution</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Docker popularized modern containerization. Its goal is simple: make applications run the same way regardless of the environment in which they are executed.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Before Docker, it was common for an application to work perfectly on a developer’s machine but fail once deployed to a server. Differences in system versions, missing dependencies, or inconsistent configurations made deployments significantly more difficult.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Docker largely solved this problem by packaging an application and its dependencies into an isolated container. In practice, the container includes the application itself, its libraries, dependencies, and some system components required for execution.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The environment becomes portable and reproducible. A Docker image can run on any compatible machine with predictable behavior. This standardization explains Docker’s massive adoption across CI/CD pipelines, development environments, and modern architectures.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Docker Is Not Just About “Running Containers”</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In many teams, Docker has become an everyday tool. A developer can locally run a Node.js API, a PostgreSQL database, Redis, or an Nginx service without manually installing each component on their machine. Everything runs inside isolated containers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This approach greatly simplifies local development, testing, demo environments, continuous integration, and application deployments.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For relatively simple applications, Docker alone may be sufficient. This is especially true when a team manages only a few services, operates a limited infrastructure, has low scalability requirements, or needs little operational automation. In such situations, adding Kubernetes may actually introduce unnecessary complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Where Docker Reaches Its Limits</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Docker works extremely well for running containers. However, it does not automatically solve large-scale orchestration challenges.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>As the number of services grows, several questions quickly emerge:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>How do you distribute containers across multiple servers?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>How do you automatically restart a failed service?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>How do you perform updates without downtime?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>How do you automatically absorb traffic spikes?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>How do you monitor dozens or hundreds of distributed workloads?</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Docker was not designed to handle this level of operational complexity on its own. That is precisely the role of container orchestration, where Kubernetes has become the most widely adopted standard.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes: Automating Container Operations</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes is a container orchestrator. Its goal is not to replace Docker for image creation or containerization logic. Kubernetes operates at a higher level: infrastructure automation and operations management.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>It can automatically deploy applications, distribute workloads across multiple machines, restart failed containers, manage high availability, perform auto-scaling, and orchestrate distributed architectures.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In other words, Docker runs containers. Kubernetes organizes their global behavior. That distinction is essential.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">A Practical Example: Docker Alone vs Kubernetes</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Consider a modern e-commerce platform. Initially, the application may remain relatively simple: a backend, a frontend, and a database. Docker is often enough to run this stack.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But over time, the architecture evolves: multiple microservices appear, some components need to scale independently, message queues are introduced, several environments must remain synchronized, availability becomes critical.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>At that point, manually managing every container quickly becomes difficult. Kubernetes introduces automation mechanisms such as automatic workload recovery, load distribution, service replication, rolling deployments, and automatic reconciliation of the desired cluster state.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is why Kubernetes has become the de facto standard for cloud-native orchestration.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes vs Docker: Does One Replace the Other?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>This is one of the most common questions, and the answer is clear: Kubernetes does not replace Docker.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For many years, Kubernetes used Docker as its container runtime. That is no longer the default behavior. Starting with version 1.20 (December 2020), Kubernetes deprecated direct Docker support through the “dockershim” component. This support was fully removed in Kubernetes 1.24, released in May 2022.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Since then, Kubernetes has relied on CRI-compatible runtimes (Container Runtime Interface) such as containerd or CRI-O.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This change has little impact on developers in day-to-day workflows. Docker-built images comply with the OCI (Open Container Initiative) standard and remain fully compatible with Kubernetes. The image format itself did not change: only the runtime layer inside Kubernetes clusters evolved.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In practice, Docker and Kubernetes still work together in many environments. Docker is used to build and test images locally. Kubernetes deploys and orchestrates them in production.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The confusion often comes from the fact that Docker historically existed at both stages. That is no longer true on the Kubernetes runtime side, but Docker remains heavily used for builds and development.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The Kubernetes vs Docker distinction is therefore not about replacement, but about roles: each technology operates at a different stage of the containerized application lifecycle.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When to Use Docker Without Kubernetes</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Docker alone remains highly relevant in many situations. It is often the right choice for simple projects, internal applications, development environments, prototypes, small web platforms, or infrastructures with limited operational requirements.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In these scenarios, Kubernetes may represent significant operational overhead compared to the actual needs. In some cases, a lightweight distribution such as K3S may also be more appropriate than a full Kubernetes cluster.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Kubernetes is not automatically the best answer for every application, a position explicitly acknowledged at&nbsp; Clever Cloud, including in the context of the launch of&nbsp; <a href="https://www.clever.cloud/product/kubernetes/">Clever Kubernetes Engine (CKE)</a>, a managed Kubernetes platform developed and operated by Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When Kubernetes Actually Becomes Useful</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes becomes valuable when an architecture requires advanced orchestration capabilities. This is especially true when multiple services must be coordinated, when deployments become frequent, when resilience becomes critical, when workloads fluctuate significantly, when teams already use GitOps practices, or when infrastructure becomes distributed or hybrid.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Some organizations also use Kubernetes to standardize deployments across multiple environments or cloud providers. In this context, choosing a managed Kubernetes platform often becomes central to reducing operational burden.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is precisely the type of use case behind solutions such as&nbsp;<a href="https://www.clever.cloud/blog/company/2026/04/27/cke-in-public-beta-managed-sovereign-and-properly-integrated-kubernetes/">CKE</a>, designed to remain compatible with standard Kubernetes ecosystem tools while integrating with the broader Clever Cloud platform.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes or PaaS: It Is Not Always a Duel</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Another common misconception is that Kubernetes necessarily replaces a PaaS (Platform as a Service). In practice, many applications run perfectly well on a traditional PaaS with less operational overhead and less complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Even within the context of <a href="https://www.clever.cloud/clever-kubernetes-engine/">CKE</a>, the positioning is explicit: Kubernetes does not replace the <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a>. The two address different operational models, not different levels of complexity: the PaaS takes care of operations, Kubernetes gives you control over them. Both run serious production workloads. The goal is therefore not to move every application onto Kubernetes, but to use it when it provides real technical or operational value.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Docker vs Kubernetes: Key Differences to Remember</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"35px"} -->
<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }

  /* Internal horizontal lines only */
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }

  /* Internal vertical lines only */
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }

  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }

  .cc-table tbody td:first-child {
    font-weight: 600;
  }

  /* Column widths */
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 25%; }

  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 37.5%; }

  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 37.5%; }
</style>

<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th></th>
        <th>Docker</th>
        <th>Kubernetes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Main purpose</td>
        <td>Create and run containers</td>
        <td>Orchestrate containers</td>
      </tr>
      <tr>
        <td>Target environments</td>
        <td>Development, simple projects</td>
        <td>Distributed infrastructures</td>
      </tr>
      <tr>
        <td>Complexity</td>
        <td>Easier to get started with</td>
        <td>More complex to operate, designed for advanced orchestration</td>
      </tr>
      <tr>
        <td>Typical use cases</td>
        <td>CI/CD, local environments, prototypes</td>
        <td>Advanced cloud-native architectures</td>
      </tr>
      <tr>
        <td>Automation</td>
        <td>Limited to execution</td>
        <td>Auto-scaling, auto-healing, high availability</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Docker and Kubernetes Are Not Competing Technologies</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The Kubernetes vs Docker question is not really about choosing one over the other: each addresses a different need at a different stage of the application lifecycle.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Docker simplified the creation and execution of containerized applications. Kubernetes automated their operation at scale.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Not every application needs Kubernetes. In many cases, Docker alone is enough. And to fully delegate operations, a PaaS takes over, including for distributed architectures and high resilience requirements. Kubernetes, for its part, becomes relevant when you need explicit control over orchestration, integration with the CNCF ecosystem, or multi-cloud portability on open standards. It is a choice of operational model and team needs, not a level of application complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The real challenge is therefore not choosing "Docker or Kubernetes," but recognizing the point at which your orchestration needs make Kubernetes genuinely worthwhile.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading {"level":1,"style":{"typography":{"textAlign":"center"}}} -->
<h1 class="wp-block-heading has-text-align-center">FAQ</h1>
<!-- /wp:heading -->

<!-- wp:html -->
<div style="height: 1px; background-color: #DEDDEE; margin: 30px auto; width: 100%;"></div>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Are Docker and Kubernetes competitors?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Docker and Kubernetes address different needs. Docker is mainly used to build and run containers, while Kubernetes orchestrates them at scale.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does Kubernetes replace Docker?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Since Kubernetes version 1.24 (May 2022), Docker is no longer used as the cluster’s internal runtime. Kubernetes now relies on CRI-compatible runtimes such as containerd or CRI-O. However, Docker images, which comply with the OCI standard, remain fully compatible with Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Why Has Kubernetes Become a Standard?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes became the dominant standard thanks to its declarative model, portability across environments, and the cloud-native ecosystem built around the CNCF, where it has been a graduated project since 2016. Its ecosystem includes tools such as Helm, Prometheus, and Argo CD.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What Is the Difference Between K3S and Standard Kubernetes?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3S is a lightweight Kubernetes distribution designed for edge environments, IoT, development, or small clusters, with lower resource consumption than standard Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is Managed Kubernetes Better?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In many organizations, yes. Managed Kubernetes reduces the operational burden associated with the control plane, updates, security, and cluster resilience. This is the approach taken by&nbsp; <a href="https://www.clever.cloud/product/kubernetes/">Clever Kubernetes Engine (CKE)</a>.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-22-clever-cloud-banniere-blog-k8s-vs-docker-eng.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="K8s vs Docker ENG" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-22-clever-cloud-banniere-blog-k8s-vs-docker-eng.png 800w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-22-clever-cloud-banniere-blog-k8s-vs-docker-eng-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-22-clever-cloud-banniere-blog-k8s-vs-docker-eng-768x341.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>The <a href="https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/">Kubernetes</a> vs Docker question deserves a precise answer, because the two technologies do not solve the same problem.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Docker is mainly used to build and run containers. Kubernetes is used to orchestrate those containers once the infrastructure becomes more complex. The two technologies are therefore often complementary, even though they are frequently- and incorrectly - presented as opposites.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Understanding this distinction helps clarify when Docker alone is enough, when <a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> becomes relevant, and why not every application actually needs a Kubernetes cluster.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Docker : Standardizing Application Execution</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Docker popularized modern containerization. Its goal is simple: make applications run the same way regardless of the environment in which they are executed.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Before Docker, it was common for an application to work perfectly on a developer’s machine but fail once deployed to a server. Differences in system versions, missing dependencies, or inconsistent configurations made deployments significantly more difficult.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Docker largely solved this problem by packaging an application and its dependencies into an isolated container. In practice, the container includes the application itself, its libraries, dependencies, and some system components required for execution.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The environment becomes portable and reproducible. A Docker image can run on any compatible machine with predictable behavior. This standardization explains Docker’s massive adoption across CI/CD pipelines, development environments, and modern architectures.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Docker Is Not Just About “Running Containers”</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In many teams, Docker has become an everyday tool. A developer can locally run a Node.js API, a PostgreSQL database, Redis, or an Nginx service without manually installing each component on their machine. Everything runs inside isolated containers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This approach greatly simplifies local development, testing, demo environments, continuous integration, and application deployments.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For relatively simple applications, Docker alone may be sufficient. This is especially true when a team manages only a few services, operates a limited infrastructure, has low scalability requirements, or needs little operational automation. In such situations, adding Kubernetes may actually introduce unnecessary complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Where Docker Reaches Its Limits</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Docker works extremely well for running containers. However, it does not automatically solve large-scale orchestration challenges.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>As the number of services grows, several questions quickly emerge:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>How do you distribute containers across multiple servers?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>How do you automatically restart a failed service?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>How do you perform updates without downtime?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>How do you automatically absorb traffic spikes?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>How do you monitor dozens or hundreds of distributed workloads?</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Docker was not designed to handle this level of operational complexity on its own. That is precisely the role of container orchestration, where Kubernetes has become the most widely adopted standard.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes: Automating Container Operations</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes is a container orchestrator. Its goal is not to replace Docker for image creation or containerization logic. Kubernetes operates at a higher level: infrastructure automation and operations management.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>It can automatically deploy applications, distribute workloads across multiple machines, restart failed containers, manage high availability, perform auto-scaling, and orchestrate distributed architectures.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In other words, Docker runs containers. Kubernetes organizes their global behavior. That distinction is essential.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">A Practical Example: Docker Alone vs Kubernetes</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Consider a modern e-commerce platform. Initially, the application may remain relatively simple: a backend, a frontend, and a database. Docker is often enough to run this stack.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But over time, the architecture evolves: multiple microservices appear, some components need to scale independently, message queues are introduced, several environments must remain synchronized, availability becomes critical.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>At that point, manually managing every container quickly becomes difficult. Kubernetes introduces automation mechanisms such as automatic workload recovery, load distribution, service replication, rolling deployments, and automatic reconciliation of the desired cluster state.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is why Kubernetes has become the de facto standard for cloud-native orchestration.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes vs Docker: Does One Replace the Other?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>This is one of the most common questions, and the answer is clear: Kubernetes does not replace Docker.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For many years, Kubernetes used Docker as its container runtime. That is no longer the default behavior. Starting with version 1.20 (December 2020), Kubernetes deprecated direct Docker support through the “dockershim” component. This support was fully removed in Kubernetes 1.24, released in May 2022.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Since then, Kubernetes has relied on CRI-compatible runtimes (Container Runtime Interface) such as containerd or CRI-O.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This change has little impact on developers in day-to-day workflows. Docker-built images comply with the OCI (Open Container Initiative) standard and remain fully compatible with Kubernetes. The image format itself did not change: only the runtime layer inside Kubernetes clusters evolved.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In practice, Docker and Kubernetes still work together in many environments. Docker is used to build and test images locally. Kubernetes deploys and orchestrates them in production.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The confusion often comes from the fact that Docker historically existed at both stages. That is no longer true on the Kubernetes runtime side, but Docker remains heavily used for builds and development.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The Kubernetes vs Docker distinction is therefore not about replacement, but about roles: each technology operates at a different stage of the containerized application lifecycle.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When to Use Docker Without Kubernetes</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Docker alone remains highly relevant in many situations. It is often the right choice for simple projects, internal applications, development environments, prototypes, small web platforms, or infrastructures with limited operational requirements.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In these scenarios, Kubernetes may represent significant operational overhead compared to the actual needs. In some cases, a lightweight distribution such as K3S may also be more appropriate than a full Kubernetes cluster.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Kubernetes is not automatically the best answer for every application, a position explicitly acknowledged at&nbsp; Clever Cloud, including in the context of the launch of&nbsp; <a href="https://www.clever.cloud/product/kubernetes/">Clever Kubernetes Engine (CKE)</a>, a managed Kubernetes platform developed and operated by Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When Kubernetes Actually Becomes Useful</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes becomes valuable when an architecture requires advanced orchestration capabilities. This is especially true when multiple services must be coordinated, when deployments become frequent, when resilience becomes critical, when workloads fluctuate significantly, when teams already use GitOps practices, or when infrastructure becomes distributed or hybrid.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Some organizations also use Kubernetes to standardize deployments across multiple environments or cloud providers. In this context, choosing a managed Kubernetes platform often becomes central to reducing operational burden.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is precisely the type of use case behind solutions such as&nbsp;<a href="https://www.clever.cloud/blog/company/2026/04/27/cke-in-public-beta-managed-sovereign-and-properly-integrated-kubernetes/">CKE</a>, designed to remain compatible with standard Kubernetes ecosystem tools while integrating with the broader Clever Cloud platform.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Kubernetes or PaaS: It Is Not Always a Duel</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Another common misconception is that Kubernetes necessarily replaces a PaaS (Platform as a Service). In practice, many applications run perfectly well on a traditional PaaS with less operational overhead and less complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Even within the context of <a href="https://www.clever.cloud/clever-kubernetes-engine/">CKE</a>, the positioning is explicit: Kubernetes does not replace the <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a>. The two address different operational models, not different levels of complexity: the PaaS takes care of operations, Kubernetes gives you control over them. Both run serious production workloads. The goal is therefore not to move every application onto Kubernetes, but to use it when it provides real technical or operational value.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"15px"} -->
<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Docker vs Kubernetes: Key Differences to Remember</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"35px"} -->
<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }

  /* Internal horizontal lines only */
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }

  /* Internal vertical lines only */
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }

  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }

  .cc-table tbody td:first-child {
    font-weight: 600;
  }

  /* Column widths */
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 25%; }

  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 37.5%; }

  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 37.5%; }
</style>

<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th></th>
        <th>Docker</th>
        <th>Kubernetes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Main purpose</td>
        <td>Create and run containers</td>
        <td>Orchestrate containers</td>
      </tr>
      <tr>
        <td>Target environments</td>
        <td>Development, simple projects</td>
        <td>Distributed infrastructures</td>
      </tr>
      <tr>
        <td>Complexity</td>
        <td>Easier to get started with</td>
        <td>More complex to operate, designed for advanced orchestration</td>
      </tr>
      <tr>
        <td>Typical use cases</td>
        <td>CI/CD, local environments, prototypes</td>
        <td>Advanced cloud-native architectures</td>
      </tr>
      <tr>
        <td>Automation</td>
        <td>Limited to execution</td>
        <td>Auto-scaling, auto-healing, high availability</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Docker and Kubernetes Are Not Competing Technologies</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The Kubernetes vs Docker question is not really about choosing one over the other: each addresses a different need at a different stage of the application lifecycle.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Docker simplified the creation and execution of containerized applications. Kubernetes automated their operation at scale.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Not every application needs Kubernetes. In many cases, Docker alone is enough. And to fully delegate operations, a PaaS takes over, including for distributed architectures and high resilience requirements. Kubernetes, for its part, becomes relevant when you need explicit control over orchestration, integration with the CNCF ecosystem, or multi-cloud portability on open standards. It is a choice of operational model and team needs, not a level of application complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The real challenge is therefore not choosing "Docker or Kubernetes," but recognizing the point at which your orchestration needs make Kubernetes genuinely worthwhile.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading {"level":1,"style":{"typography":{"textAlign":"center"}}} -->
<h1 class="wp-block-heading has-text-align-center">FAQ</h1>
<!-- /wp:heading -->

<!-- wp:html -->
<div style="height: 1px; background-color: #DEDDEE; margin: 30px auto; width: 100%;"></div>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Are Docker and Kubernetes competitors?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Docker and Kubernetes address different needs. Docker is mainly used to build and run containers, while Kubernetes orchestrates them at scale.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Does Kubernetes replace Docker?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Since Kubernetes version 1.24 (May 2022), Docker is no longer used as the cluster’s internal runtime. Kubernetes now relies on CRI-compatible runtimes such as containerd or CRI-O. However, Docker images, which comply with the OCI standard, remain fully compatible with Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Why Has Kubernetes Become a Standard?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes became the dominant standard thanks to its declarative model, portability across environments, and the cloud-native ecosystem built around the CNCF, where it has been a graduated project since 2016. Its ecosystem includes tools such as Helm, Prometheus, and Argo CD.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What Is the Difference Between K3S and Standard Kubernetes?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3S is a lightweight Kubernetes distribution designed for edge environments, IoT, development, or small clusters, with lower resource consumption than standard Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is Managed Kubernetes Better?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In many organizations, yes. Managed Kubernetes reduces the operational burden associated with the control plane, updates, security, and cluster resilience. This is the approach taken by&nbsp; <a href="https://www.clever.cloud/product/kubernetes/">Clever Kubernetes Engine (CKE)</a>.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>K8S: What Is Kubernetes, How It Works, and Why It Became the Standard</title>
		<link>https://www.clever.cloud/blog/engineering/2026/05/19/k8s-kubernetes-definition-standard/</link>
		
		<dc:creator><![CDATA[Leo Le Levé Dandé]]></dc:creator>
		<pubDate>Tue, 19 May 2026 10:54:29 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=24294</guid>

					<description><![CDATA[<p><img width="2499" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.05.19 Clever Cloud Bannière Blog K8S EN" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en.png 2499w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-1368x607.png 1368w" sizes="auto, (max-width: 2499px) 100vw, 2499px" /></p><!-- wp:heading -->
<h2 class="wp-block-heading">How Kubernetes Works: a Declarative Orchestrator</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Most descriptions of <a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> list its components (pods, deployments, services) without explaining the central mechanism. The fundamental concept lies elsewhere: Kubernetes is first and foremost an <strong>orchestrator</strong>, and its core engine relies on a reconciliation loop.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You don't tell Kubernetes <em>what to do</em>. You tell it <em>what you want your system to look like</em>. This distinction, declarative versus imperative, changes everything.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In practice, you describe the desired state in manifest files, typically in YAML format: "I want 3 replicas of this image, exposed on port 80, with these environment variables." You submit this manifest to the Kubernetes API via kubectl. From that point on, Kubernetes continuously compares the actual state of the cluster (what is actually running) to the desired state (what you declared), and acts to bring them into alignment. If a node dies, its pods are rescheduled elsewhere. If you change from 3 to 10 replicas in the manifest, Kubernetes starts 7 more. If a container crashes, it gets restarted.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This reconciliation loop is the heart of everything Kubernetes does: self-healing, scaling, rolling updates, and rollbacks. To dive deeper into this mechanism and the other capabilities it enables, learn more about container orchestration.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Architecture in Brief: Control Plane, Nodes, Pods</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A Kubernetes cluster is divided into two parts. The <strong>control plane</strong> is the brain: it makes global decisions, accepts API requests, schedules workloads, and monitors the state of the cluster. It relies on a few key components, including the API server (kube-apiserver), the scheduler (kube-scheduler), and the controller manager (kube-controller-manager), along with a distributed data store that holds the entire cluster state, traditionally etcd.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Nodes</strong> are the machines that actually run the workloads. On each node, an agent called kubelet receives instructions from the control plane and launches containers through a container runtime (containerd, CRI-O, etc.). The smallest deployable unit is not an individual container but a <strong>pod</strong>: one or more containers that share a network and storage. Higher-level objects (Deployment, Service, Ingress, ConfigMap, Secret) describe how pods should be managed, exposed, and configured.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This architecture is also the source of a common confusion with Docker, whose role is actually complementary to Kubernetes rather than competitive.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Why K8S Became the Orchestration Standard</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>According to the<a href="https://www.cncf.io/reports/"> CNCF Annual Cloud Native Survey 2025</a>, published in January 2026, 98% of surveyed organizations have adopted <a href="https://www.clever.cloud/blog/company/2025/05/30/what-is-native-cloud/">cloud native</a> techniques, and 82% of container users deploy Kubernetes in production, up from 66% in 2023. The dominance is massive. But explaining it solely through technical qualities would be incomplete; it is also a story of ecosystem dynamics and aligned interests.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>On the technical side</strong>, three properties explain adoption. First, the declarative model described above: it makes deployments reproducible, versionable in Git, and resilient to failures. Second, portability: the same manifest works on a development machine (Minikube, kind, k3d), on an on-premise cluster, and on any cloud. Third, extensibility: the Kubernetes API accepts Custom Resource Definitions (CRDs) and custom controllers (Operators), turning it into a platform for building platforms. This triggered a massive ecosystem dynamic.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>On the strategic side</strong>, the story is less often told. By 2014, Google had more than a decade of experience managing containers at scale with its internal systems Borg and Omega, whose design principles were shared publicly through academic research papers (Omega in 2013, Borg in 2015). Rather than open-sourcing Borg itself, which remained tightly coupled to Google's proprietary infrastructure, the team created Kubernetes as a new project inspired by that experience, with a distinct implementation designed from the outset for external adoption. The project was released as open source in June 2014 and donated to the Cloud Native Computing Foundation in 2015. This neutrality, a project hosted by a Linux foundation rather than a cloud provider, proved decisive. No competitor could afford <em>not</em> to adopt it without being marginalized from the emerging cloud-native ecosystem. AWS, which initially pushed its own proprietary solution (ECS), announced EKS in late 2017 and launched it in general availability in June 2018. By then, the standard was sealed.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>On the ecosystem side</strong>, the network effect did the rest: Helm for packaging applications, Prometheus for monitoring, Istio and Linkerd for service mesh, ArgoCD and Flux for GitOps, Trivy and Falco for security. Each additional tool reinforces the value of the standard. On the talent side, Kubernetes skills have become massively in-demand across DevOps and SRE roles, creating a virtuous cycle: more trained engineers, more adopting companies, more engineers getting trained.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In the CNCF 2025 report, the community now describes Kubernetes as "boring," using the term as the highest praise: a mature, predictable tool whose APIs no longer break with every release. That is exactly what you want from infrastructure that has become standard.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When Kubernetes Adds Value, and When Other Approaches Are a Better Fit</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The fact that K8S is the standard doesn't mean it's the right answer to every problem. Choosing Kubernetes, a <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a>, or a combination of both depends on the technical and organizational context; at Clever Cloud, many teams use both in parallel for different workloads.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Kubernetes delivers real value in several contexts:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>strong portability requirements: multi-cloud, hybrid, or on-premise combined with cloud, where the Kubernetes manifest becomes a common denominator;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>distributed architectures that apply 12-factor app principles and the "cattle" approach (interchangeable, stateless instances) with sophisticated orchestration needs;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>strategic alignment with the CNCF ecosystem (Helm, Operators, ArgoCD, Istio, etc.) or client/partner prerequisites that impose the standard;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>need for a shared platform across large teams, with a dedicated platform engineering team or the willingness to outsource that responsibility to a managed service.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Conversely, in other contexts, a PaaS like Clever Cloud delivers the same outcomes as Kubernetes (industrialized deployments, autoscaling, resilience) without the operational complexity of the orchestrator. This is particularly true for standard application architectures (web + backend + database) where the effort of configuring and operating Kubernetes doesn't translate into tangible added value.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And for intermediate workloads (IoT, edge, development environments, small clusters), the differences between K3S and K8S are worth weighing before deciding: the lightweight distribution is often a better fit. The de facto standard is not a moral obligation. It is a powerful and costly tool to operate, and its use should be chosen based on the problems it solves, often as a complement to other approaches rather than a replacement.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">The Limits of the Standard: Operational Debt</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Running Kubernetes in production is not trivial. That's one of the reasons why many companies that adopt K8S opt for a managed service rather than a self-managed installation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The sources of complexity are numerous: configuring access control correctly (RBAC), choosing and operating a network plugin (CNI), wiring up persistent storage (CSI), setting up observability, managing certificates, performing minor and major upgrades without downtime, hardening security, managing control plane backups. Each of these topics is a discipline in itself. The CNCF 2025 report shows that challenges have actually shifted from purely technical to organizational: 47% of organizations now cite "cultural changes with the development team" as their top obstacle, ahead of raw technical complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>At the heart of this debt sits a less-discussed component: <strong>etcd</strong>. It is the distributed key-value database that stores the complete state of the cluster. etcd is solid for moderately sized clusters, but becomes a bottleneck at scale. It's no coincidence that Google announced in late 2024 the replacement of etcd with Spanner for its managed GKE offering, retaining only the API compatibility layer. AWS, for its part, has built a "new generation" etcd architecture to handle scale. K3S, designed for lightweight environments, has pushed the logic further by offering several alternatives to etcd, including SQLite as the default. When the central component needs to be re-engineered to handle production use at scale, it's a telling sign.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This realization is what led us, at Clever Cloud, to rethink this component. Our <a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine</a> replaces standard etcd with Materia etcd, our reimplementation of the etcd protocol built on top of <a href="https://www.clever.cloud/materia/materia-kv/">Materia KV</a> and FoundationDB, replicated across three Paris datacenters. This approach is also part of <a href="https://www.clever.cloud/blog/company/2026/04/08/what-makes-clever-cloud-unique/">what makes Clever Cloud unique</a>: a multi-tenant control plane that scales horizontally without degrading performance, benefits from FoundationDB’s continuous failure simulation model, and frees teams from managing thousands of fragile etcd instances.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But whether you choose CKE or another service, the principle remains the same: if you want Kubernetes in production without building a dedicated platform engineering team, <a href="https://www.clever.cloud/blog/company/2026/04/27/cke-in-public-beta-managed-sovereign-and-properly-integrated-kubernetes/">a managed Kubernetes</a> is almost always the right decision.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">In Summary</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes became the standard for good technical reasons, but also thanks to an alignment of interests that drove the industry to converge around a neutral project governed by the CNCF. The core mechanism, the reconciliation loop and the declarative model, explains its robustness. The ecosystem that has built up around it explains its staying power.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>That doesn't mean it should be adopted for everything. For many contexts, a PaaS or another approach is a better fit, and in practice, the two often coexist within the same architecture, each where it delivers the most value. For serious distributed architectures, it remains the tool of reference, provided you account for the operational debt it introduces and choose between running it yourself or relying on a managed service.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is precisely the promise that<a href="https://www.clever.cloud/clever-kubernetes-engine/"> Clever Kubernetes Engine</a>, our managed Kubernetes, seeks to deliver: standard Kubernetes, operated in France on sovereign infrastructure, with a control plane redesigned to eliminate the friction of etcd at scale. And for teams that don't need Kubernetes, our PaaS remains the most direct path to production.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">FAQ</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Are K8S and Kubernetes the same thing?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. K8S is an abbreviation: the letter K, followed by 8 (representing the eight letters in "ubernete"), followed by S. Both refer to the same container orchestration system.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is the difference between Docker and Kubernetes?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Docker is a containerization engine: it packages an application with its dependencies into an image that runs as a container. Kubernetes is an orchestrator: it deploys, monitors, and scales those containers across a fleet of servers. This is one of the most commonly misunderstood distinctions in the ecosystem, even though the two tools serve different and complementary purposes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is Kubernetes free?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The software is open source and free under the Apache 2.0 license. But the infrastructure it runs on, the engineering time to maintain it, and the complementary tools (monitoring, backups, security) have a real cost. That's why many companies opt for a managed Kubernetes offering.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Do you always need Kubernetes for production deployments?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Kubernetes provides sophisticated orchestration, particularly suited to distributed architectures requiring portability, CNCF ecosystem alignment, or advanced orchestration. For many other contexts, a PaaS delivers the same outcomes (industrialized deployment, autoscaling, resilience) without the operational complexity. And in practice, the two approaches often coexist within the same architecture.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is the difference between K3S and K8S?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3S is a CNCF-certified Kubernetes distribution (not a fork), designed to be lightweight and suited for resource-constrained environments: edge, IoT, development machines, small clusters. It replaces some components with lighter alternatives and ships as a single binary. The differences between K3S and K8S come down to several specific architectural choices worth evaluating before making a decision.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">How do I get started with Kubernetes?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The fastest way is to spin up a local cluster with Minikube, kind, or k3d, then deploy a simple application via a YAML manifest. For production, the reasonable choice for most teams is a managed Kubernetes offering.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2499" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.05.19 Clever Cloud Bannière Blog K8S EN" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en.png 2499w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/05/2026-05-19-clever-cloud-banniere-blog-k8s-en-1368x607.png 1368w" sizes="auto, (max-width: 2499px) 100vw, 2499px" /></p><!-- wp:heading -->
<h2 class="wp-block-heading">How Kubernetes Works: a Declarative Orchestrator</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Most descriptions of <a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> list its components (pods, deployments, services) without explaining the central mechanism. The fundamental concept lies elsewhere: Kubernetes is first and foremost an <strong>orchestrator</strong>, and its core engine relies on a reconciliation loop.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You don't tell Kubernetes <em>what to do</em>. You tell it <em>what you want your system to look like</em>. This distinction, declarative versus imperative, changes everything.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In practice, you describe the desired state in manifest files, typically in YAML format: "I want 3 replicas of this image, exposed on port 80, with these environment variables." You submit this manifest to the Kubernetes API via kubectl. From that point on, Kubernetes continuously compares the actual state of the cluster (what is actually running) to the desired state (what you declared), and acts to bring them into alignment. If a node dies, its pods are rescheduled elsewhere. If you change from 3 to 10 replicas in the manifest, Kubernetes starts 7 more. If a container crashes, it gets restarted.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This reconciliation loop is the heart of everything Kubernetes does: self-healing, scaling, rolling updates, and rollbacks. To dive deeper into this mechanism and the other capabilities it enables, learn more about container orchestration.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Architecture in Brief: Control Plane, Nodes, Pods</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A Kubernetes cluster is divided into two parts. The <strong>control plane</strong> is the brain: it makes global decisions, accepts API requests, schedules workloads, and monitors the state of the cluster. It relies on a few key components, including the API server (kube-apiserver), the scheduler (kube-scheduler), and the controller manager (kube-controller-manager), along with a distributed data store that holds the entire cluster state, traditionally etcd.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Nodes</strong> are the machines that actually run the workloads. On each node, an agent called kubelet receives instructions from the control plane and launches containers through a container runtime (containerd, CRI-O, etc.). The smallest deployable unit is not an individual container but a <strong>pod</strong>: one or more containers that share a network and storage. Higher-level objects (Deployment, Service, Ingress, ConfigMap, Secret) describe how pods should be managed, exposed, and configured.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This architecture is also the source of a common confusion with Docker, whose role is actually complementary to Kubernetes rather than competitive.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Why K8S Became the Orchestration Standard</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>According to the<a href="https://www.cncf.io/reports/"> CNCF Annual Cloud Native Survey 2025</a>, published in January 2026, 98% of surveyed organizations have adopted <a href="https://www.clever.cloud/blog/company/2025/05/30/what-is-native-cloud/">cloud native</a> techniques, and 82% of container users deploy Kubernetes in production, up from 66% in 2023. The dominance is massive. But explaining it solely through technical qualities would be incomplete; it is also a story of ecosystem dynamics and aligned interests.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>On the technical side</strong>, three properties explain adoption. First, the declarative model described above: it makes deployments reproducible, versionable in Git, and resilient to failures. Second, portability: the same manifest works on a development machine (Minikube, kind, k3d), on an on-premise cluster, and on any cloud. Third, extensibility: the Kubernetes API accepts Custom Resource Definitions (CRDs) and custom controllers (Operators), turning it into a platform for building platforms. This triggered a massive ecosystem dynamic.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>On the strategic side</strong>, the story is less often told. By 2014, Google had more than a decade of experience managing containers at scale with its internal systems Borg and Omega, whose design principles were shared publicly through academic research papers (Omega in 2013, Borg in 2015). Rather than open-sourcing Borg itself, which remained tightly coupled to Google's proprietary infrastructure, the team created Kubernetes as a new project inspired by that experience, with a distinct implementation designed from the outset for external adoption. The project was released as open source in June 2014 and donated to the Cloud Native Computing Foundation in 2015. This neutrality, a project hosted by a Linux foundation rather than a cloud provider, proved decisive. No competitor could afford <em>not</em> to adopt it without being marginalized from the emerging cloud-native ecosystem. AWS, which initially pushed its own proprietary solution (ECS), announced EKS in late 2017 and launched it in general availability in June 2018. By then, the standard was sealed.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>On the ecosystem side</strong>, the network effect did the rest: Helm for packaging applications, Prometheus for monitoring, Istio and Linkerd for service mesh, ArgoCD and Flux for GitOps, Trivy and Falco for security. Each additional tool reinforces the value of the standard. On the talent side, Kubernetes skills have become massively in-demand across DevOps and SRE roles, creating a virtuous cycle: more trained engineers, more adopting companies, more engineers getting trained.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In the CNCF 2025 report, the community now describes Kubernetes as "boring," using the term as the highest praise: a mature, predictable tool whose APIs no longer break with every release. That is exactly what you want from infrastructure that has become standard.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">When Kubernetes Adds Value, and When Other Approaches Are a Better Fit</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The fact that K8S is the standard doesn't mean it's the right answer to every problem. Choosing Kubernetes, a <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a>, or a combination of both depends on the technical and organizational context; at Clever Cloud, many teams use both in parallel for different workloads.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Kubernetes delivers real value in several contexts:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>strong portability requirements: multi-cloud, hybrid, or on-premise combined with cloud, where the Kubernetes manifest becomes a common denominator;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>distributed architectures that apply 12-factor app principles and the "cattle" approach (interchangeable, stateless instances) with sophisticated orchestration needs;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>strategic alignment with the CNCF ecosystem (Helm, Operators, ArgoCD, Istio, etc.) or client/partner prerequisites that impose the standard;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>need for a shared platform across large teams, with a dedicated platform engineering team or the willingness to outsource that responsibility to a managed service.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Conversely, in other contexts, a PaaS like Clever Cloud delivers the same outcomes as Kubernetes (industrialized deployments, autoscaling, resilience) without the operational complexity of the orchestrator. This is particularly true for standard application architectures (web + backend + database) where the effort of configuring and operating Kubernetes doesn't translate into tangible added value.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And for intermediate workloads (IoT, edge, development environments, small clusters), the differences between K3S and K8S are worth weighing before deciding: the lightweight distribution is often a better fit. The de facto standard is not a moral obligation. It is a powerful and costly tool to operate, and its use should be chosen based on the problems it solves, often as a complement to other approaches rather than a replacement.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">The Limits of the Standard: Operational Debt</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Running Kubernetes in production is not trivial. That's one of the reasons why many companies that adopt K8S opt for a managed service rather than a self-managed installation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The sources of complexity are numerous: configuring access control correctly (RBAC), choosing and operating a network plugin (CNI), wiring up persistent storage (CSI), setting up observability, managing certificates, performing minor and major upgrades without downtime, hardening security, managing control plane backups. Each of these topics is a discipline in itself. The CNCF 2025 report shows that challenges have actually shifted from purely technical to organizational: 47% of organizations now cite "cultural changes with the development team" as their top obstacle, ahead of raw technical complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>At the heart of this debt sits a less-discussed component: <strong>etcd</strong>. It is the distributed key-value database that stores the complete state of the cluster. etcd is solid for moderately sized clusters, but becomes a bottleneck at scale. It's no coincidence that Google announced in late 2024 the replacement of etcd with Spanner for its managed GKE offering, retaining only the API compatibility layer. AWS, for its part, has built a "new generation" etcd architecture to handle scale. K3S, designed for lightweight environments, has pushed the logic further by offering several alternatives to etcd, including SQLite as the default. When the central component needs to be re-engineered to handle production use at scale, it's a telling sign.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This realization is what led us, at Clever Cloud, to rethink this component. Our <a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine</a> replaces standard etcd with Materia etcd, our reimplementation of the etcd protocol built on top of <a href="https://www.clever.cloud/materia/materia-kv/">Materia KV</a> and FoundationDB, replicated across three Paris datacenters. This approach is also part of <a href="https://www.clever.cloud/blog/company/2026/04/08/what-makes-clever-cloud-unique/">what makes Clever Cloud unique</a>: a multi-tenant control plane that scales horizontally without degrading performance, benefits from FoundationDB’s continuous failure simulation model, and frees teams from managing thousands of fragile etcd instances.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But whether you choose CKE or another service, the principle remains the same: if you want Kubernetes in production without building a dedicated platform engineering team, <a href="https://www.clever.cloud/blog/company/2026/04/27/cke-in-public-beta-managed-sovereign-and-properly-integrated-kubernetes/">a managed Kubernetes</a> is almost always the right decision.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">In Summary</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes became the standard for good technical reasons, but also thanks to an alignment of interests that drove the industry to converge around a neutral project governed by the CNCF. The core mechanism, the reconciliation loop and the declarative model, explains its robustness. The ecosystem that has built up around it explains its staying power.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>That doesn't mean it should be adopted for everything. For many contexts, a PaaS or another approach is a better fit, and in practice, the two often coexist within the same architecture, each where it delivers the most value. For serious distributed architectures, it remains the tool of reference, provided you account for the operational debt it introduces and choose between running it yourself or relying on a managed service.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is precisely the promise that<a href="https://www.clever.cloud/clever-kubernetes-engine/"> Clever Kubernetes Engine</a>, our managed Kubernetes, seeks to deliver: standard Kubernetes, operated in France on sovereign infrastructure, with a control plane redesigned to eliminate the friction of etcd at scale. And for teams that don't need Kubernetes, our PaaS remains the most direct path to production.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">FAQ</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Are K8S and Kubernetes the same thing?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Yes. K8S is an abbreviation: the letter K, followed by 8 (representing the eight letters in "ubernete"), followed by S. Both refer to the same container orchestration system.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is the difference between Docker and Kubernetes?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Docker is a containerization engine: it packages an application with its dependencies into an image that runs as a container. Kubernetes is an orchestrator: it deploys, monitors, and scales those containers across a fleet of servers. This is one of the most commonly misunderstood distinctions in the ecosystem, even though the two tools serve different and complementary purposes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Is Kubernetes free?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The software is open source and free under the Apache 2.0 license. But the infrastructure it runs on, the engineering time to maintain it, and the complementary tools (monitoring, backups, security) have a real cost. That's why many companies opt for a managed Kubernetes offering.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Do you always need Kubernetes for production deployments?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No. Kubernetes provides sophisticated orchestration, particularly suited to distributed architectures requiring portability, CNCF ecosystem alignment, or advanced orchestration. For many other contexts, a PaaS delivers the same outcomes (industrialized deployment, autoscaling, resilience) without the operational complexity. And in practice, the two approaches often coexist within the same architecture.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What is the difference between K3S and K8S?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>K3S is a CNCF-certified Kubernetes distribution (not a fork), designed to be lightweight and suited for resource-constrained environments: edge, IoT, development machines, small clusters. It replaces some components with lighter alternatives and ships as a single binary. The differences between K3S and K8S come down to several specific architectural choices worth evaluating before making a decision.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">How do I get started with Kubernetes?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The fastest way is to spin up a local cluster with Minikube, kind, or k3d, then deploy a simple application via a YAML manifest. For production, the reasonable choice for most teams is a managed Kubernetes offering.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CKE in public beta: managed, sovereign, and properly integrated Kubernetes</title>
		<link>https://www.clever.cloud/blog/company/2026/04/27/cke-in-public-beta-managed-sovereign-and-properly-integrated-kubernetes/</link>
		
		<dc:creator><![CDATA[Horacio Gonzalez]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 15:11:30 +0000</pubDate>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[cke]]></category>
		<category><![CDATA[K8S]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=24230</guid>

					<description><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2026/04/2026-04-27-clever-cloud-banniere-blog-cke-eng.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Clever Cloud Bannière Blog CKE" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/04/2026-04-27-clever-cloud-banniere-blog-cke-eng.png 800w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-27-clever-cloud-banniere-blog-cke-eng-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-27-clever-cloud-banniere-blog-cke-eng-768x341.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>So we built our own orchestrator. It runs on micro-VMs and gives us a clean kernel boundary between workloads, with no shared kernel between tenants. That is what runs tens of thousands of applications in production on our <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a> today, and for most projects it is still the shortest path from a commit to production.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>When Docker arrived, some workloads fit better as a container image than as one of our native runtimes. So we added a Docker runtime to the platform, where it made sense. Not to replace our approach, but to broaden it.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Then <a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> established itself as the de facto standard for container orchestration. Its ecosystem (Helm, operators, GitOps, and so on) became unavoidable for many teams.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We could have kept saying that, in many cases, Kubernetes is not the best path to production. That is still true. But it was no longer enough. That is why we are launching <a href="https://www.clever.cloud/clever-kubernetes-engine/">CKE, our Clever Kubernetes Engine</a>, available in public beta starting today.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>As many know, we resisted for years the idea of offering Kubernetes as just another checkbox in the Console. Not because Kubernetes is useless, but because it has too often become a default answer to problems the PaaS solves more simply: deploying an application, scaling it, monitoring it, isolating it, connecting it to a database, managing its environment variables, its logs and its lifecycle. And we still believe that.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But Kubernetes has become the common language of a large part of the cloud-native ecosystem. Helm, operators, GitOps, already-containerized workloads, internal platforms and existing toolchains are part of the daily reality of many teams. And our reason for being is to make life easier for technical teams.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The question was no longer "should we do Kubernetes?", but "can we do Kubernetes without giving up what makes Clever Cloud?"</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Not a quickly repackaged Kubernetes</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The fastest way to ship managed Kubernetes is to wrap an upstream distribution behind an admin console, add a provisioning API, and bill the cluster by the hour. It is a valid strategy if you want to ship fast. It is not the one we wanted.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For CKE, we had three requirements that cannot be solved by simply bolting Kubernetes on top of the rest of the platform.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The first is sovereignty. CKE is operated in Europe, on our infrastructure and that of our partners, and can also be deployed on the on-premises infrastructure of customers who need it. No dependency on US hyperscalers, no grey areas around data jurisdiction, no vague promises about where the infrastructure actually runs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The second is integration with the rest of Clever Cloud. We did not want to create a Kubernetes silo sitting alongside the PaaS, the managed databases, the object storage and the private network. We wanted a Kubernetes that fits inside the same platform, with the same Console, the same tooling, the same billing, the same governance rules and the same <a href="https://www.clever.cloud/blog/company/2025/03/19/managed-services/">managed services</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The third is operational predictability. Kubernetes is a complex distributed system, and its behaviour under load depends heavily on its foundations. We did not want to operate a product whose underlying layer would remain a black box or a default-accepted limitation. That is what led us to work on something few providers touch: Kubernetes' internal consistency layer.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Under the hood: Materia etcd on FoundationDB</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In Kubernetes, etcd is the component that stores cluster state: manifests, resources, secrets, node state. It is the source of truth for the entire orchestrator.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>It is also one of the most sensitive components in the system.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>etcd works very well within the scope it was designed for. But its limits at scale are well known: store size, latencies under heavy write load, behaviour during network partitions, backup and restore operations, the need for compaction and fine-grained monitoring. When Kubernetes becomes a critical foundation, etcd becomes an operational concern in its own right.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We did not want to build CKE on top of a brick we would then treat as a fragile black box.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>So we took the problem back to its root: keep the contract Kubernetes expects, but replace the internal consistency layer with an implementation backed by FoundationDB. We call it Materia etcd.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>FoundationDB gives us distributed ACID transactions, a robust consistency model, and a <a href="https://apple.github.io/foundationdb/testing.html">deterministic simulation testing</a> approach that fits very well with how we build critical infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For end users, this work is invisible. That is precisely the point. Under the hood, this foundation lets us build CKE with the auto-scaling, auto-healing and operational predictability we expect from a Clever Cloud service.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We will come back to Materia etcd in more detail soon, because the topic deserves a dedicated article.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Standard Kubernetes on the developer side</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>All this work on the underlying layer has a simple goal: on the user side, CKE has to be standard Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Your manifests work without modification. Your Helm charts install normally. Your Argo CD or your Flux plugs in like on any other cluster. Your Kubernetes operators run without surprises.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>CKE does not try to reinvent the developer interface of Kubernetes. That would be counterproductive. If you already have a Kubernetes deployment chain, the goal is for it to run on CKE with as little friction as possible.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The difference happens elsewhere: in how this Kubernetes integrates with the rest of the Clever Cloud platform.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Kubernetes when you need it, the PaaS when it is enough</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>CKE does not replace our PaaS. It complements it.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For many applications, the PaaS remains the best choice: less operations, less configuration, less YAML, less maintenance surface. If your application fits naturally in a Clever Cloud runtime, the PaaS is often still the simplest and most robust path.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But there are cases where Kubernetes is the right tool.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You may need to install :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>An operator;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Reuse existing manifests;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Standardize a GitOps chain;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Deploy a workload already distributed as a Helm chart;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Run an internal platform built around the Kubernetes API;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Or simply meet the habits of a team that already works with Kubernetes day to day.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>In those cases, the problem is not Kubernetes itself. The problem is Kubernetes isolated from the rest of your system.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>That is where CKE changes things. You can keep a Node.js API on the PaaS, a static frontend on Cellar, a managed PostgreSQL database, and run on CKE only the component, the operator or the workload that really needs Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>All within the same Clever Cloud environment.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Native integration with the Clever Cloud ecosystem</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>CKE was designed to integrate with the services you already use on Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>Cellar</strong>, our S3-compatible object storage, can be used from your Kubernetes workloads.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Managed databases</strong> (PostgreSQL, MySQL, MongoDB, Redis, Materia) attach to your cluster the same way they do to any other Clever Cloud application.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>IAM as a Service</strong> lets you manage authentication and permissions on the cluster and on the teams that access it.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Network Groups</strong> lets you connect your CKE cluster to your existing Clever Cloud PaaS applications, in the same private network.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>The Network Groups integration is probably the one that changes day-to-day work the most.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Kubernetes is often introduced into organizations as a new island: new console, new network, new secrets, new access rules, new billing, a new way to connect services together.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>With CKE, the goal is the opposite. Kubernetes becomes one more brick in the Clever Cloud architecture, not a parallel world.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>So you can build a hybrid architecture without workarounds: part on the PaaS, part on CKE, managed databases, object storage, private networking, and shared governance.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Enabling CKE and deploying a first application</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>For this demo, we will stick to the bare minimum: enable the feature, create a cluster, fetch a kubeconfig, add a node group, and deploy a first application with a <code>LoadBalancer</code> service.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On the prerequisites side, you will need <a href="https://www.clever.cloud/developers/doc/cli/">Clever Tools</a> version 4.3 or later, and <code>kubectl</code> installed locally.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Since the public beta opened on April 27, the Kubernetes feature can be enabled by any Clever Cloud customer, with a single command:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever features enable k8s</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>You can then create a cluster. Give it a name, point to your organization, and the <code>--watch</code> option lets you follow the deployment progress:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever k8s create my-cluster --org &lt;your-org-id&gt; --watch</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Creation takes about a minute. At any time, you can list the clusters in your organization with <code>clever k8s list</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Once the cluster is ready, fetch its kubeconfig and write it directly as your default local configuration:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever k8s get-kubeconfig my-cluster --org &lt;your-org-id&gt; &gt; ~/.kube/config</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>From there, it is standard Kubernetes. <code>kubectl</code> talks to the cluster, and your usual tooling follows. You can start by checking that everything is in place:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl get nodes</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>At this stage, the list is empty: the cluster is created but has no compute capacity. This is a good moment to introduce the first CKE-specific API resource: the <code>NodeGroup</code>. A node group is a set of Kubernetes nodes with the same profile (same flavor, same region), managed as a unit. You describe it like any other Kubernetes resource, in a YAML file:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-yaml">apiVersion: api.clever-cloud.com/v1
kind: NodeGroup
metadata:
  name: example-nodegroup
spec:
  flavor: M
  nodeCount: 2</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>And you apply it with <code>kubectl</code>:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl create -f example-nodegroup.yaml</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Sixty to ninety seconds later, the nodes join the cluster:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl get nodegroups
NAME                DESIREDNODECOUNT   CURRENTNODECOUNT   FLAVOR   STATUS   AGE
example-nodegroup   2                  2                  M        Synced   2m

kubectl get nodes
NAME                      STATUS   ROLES    AGE   VERSION
example-nodegroup-node0   Ready    <none>   2m    v1.35.0
example-nodegroup-node1   Ready    <none>   2m    v1.35.0</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>To resize the node group, you stay within the Kubernetes API:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl scale nodegroup example-nodegroup --replicas=4</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>With a cluster that now has compute capacity, you can deploy a first application. To keep things simple, an nginx exposed through a <code>LoadBalancer</code> service, which will automatically provision a load balancer on the Clever Cloud side:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl create deployment nginx --image=nginx:alpine --replicas=2 
kubectl expose deployment/nginx --type=LoadBalancer --port 80 
kubectl get service nginx</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>A few seconds later, the service exposes a public address. This is exactly the responsive behaviour we mentioned about the private testing phase: provisioning a node group, scaling it or exposing a service requires no waiting and no manual configuration.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>From here, it is Kubernetes like anywhere else. You can add persistent storage through the Clever Cloud CSI, install the <a href="https://github.com/CleverCloud/clever-kubernetes-operator">Clever Kubernetes Operator</a> to provision a managed database from your manifests, or plug in your usual GitOps chain. The cluster supports Kubernetes versions 1.34, 1.35 and 1.36, with 1.35 as the default. Everything is detailed in the <a href="https://www.clever.cloud/developers/doc/kubernetes/">CKE documentation</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What we saw during private testing and at Devoxx, and what is next</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>CKE is now in public beta, but some of our customers have had private access for several months. That phase was very useful to expose the product to real-world usage before opening it more widely.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The feedback has been very positive. The cluster behaves as expected, and the operations that come up most often in a Kubernetes team's daily life, such as adding a node or setting up a load balancer, are fast and predictable. That is exactly the behaviour we were aiming for when we invested so much time into the internal consistency layer.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>At Devoxx France, we presented CKE on the Clever Cloud booth for three days. The conversations confirmed two things we were already observing.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>First, teams are not just looking for a Kubernetes cluster. They are looking for a Kubernetes that integrates cleanly with their platform, their network, their databases, their security constraints and their existing practices.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Second, and probably the most striking feedback, developers are not looking to put everything on Kubernetes. Many want to keep their classic applications on our PaaS, where it is the most efficient, and deploy on Kubernetes only the components that really warrant it, because of their complexity, their distributed architecture, or the constraints of the ecosystem they fit into.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is exactly the kind of hybrid architecture CKE is designed to enable.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>It is also why, ahead of the launch, we built the <a href="https://github.com/CleverCloud/clever-kubernetes-operator">Clever Kubernetes Operator</a>. It allows a workload running in a Kubernetes cluster, whether hosted with us or elsewhere, to provision and consume our managed services directly from the Kubernetes API: PostgreSQL, MySQL, MongoDB, Redis, Cellar or Materia.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For your teams, it is a <code>kubectl apply</code> that creates a managed database. For CKE, it is the natural tool to bridge Kubernetes workloads and the rest of the Clever Cloud platform.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The beta is open to all Clever Cloud customers. You can enable it right now, deploy your first workloads, and tell us what is missing, what surprises you or what you would like to see come next.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The discussion is open on <a href="https://github.com/CleverCloud/Community/discussions">our GitHub </a><a href="https://github.com/CleverCloud/Community/discussions/categories/kubernetes" target="_blank" rel="noreferrer noopener">community</a>, and the documentation is available <a href="https://www.clever.cloud/developers">here</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>CKE does not replace our PaaS. It complements it.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For many applications, the PaaS remains the simplest path from a commit to production. But when you need Kubernetes, for an operator, a Helm chart, a GitOps chain, an already-standardized workload or an internal platform, you can now do it inside the Clever Cloud environment, with our infrastructure choices, our network, our managed services and our sovereignty requirements.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>That is the kind of Kubernetes we wanted to build.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2026/04/2026-04-27-clever-cloud-banniere-blog-cke-eng.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Clever Cloud Bannière Blog CKE" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/04/2026-04-27-clever-cloud-banniere-blog-cke-eng.png 800w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-27-clever-cloud-banniere-blog-cke-eng-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-27-clever-cloud-banniere-blog-cke-eng-768x341.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>So we built our own orchestrator. It runs on micro-VMs and gives us a clean kernel boundary between workloads, with no shared kernel between tenants. That is what runs tens of thousands of applications in production on our <a href="https://www.clever.cloud/clever-cloud-paas/">PaaS</a> today, and for most projects it is still the shortest path from a commit to production.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>When Docker arrived, some workloads fit better as a container image than as one of our native runtimes. So we added a Docker runtime to the platform, where it made sense. Not to replace our approach, but to broaden it.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Then <a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> established itself as the de facto standard for container orchestration. Its ecosystem (Helm, operators, GitOps, and so on) became unavoidable for many teams.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We could have kept saying that, in many cases, Kubernetes is not the best path to production. That is still true. But it was no longer enough. That is why we are launching <a href="https://www.clever.cloud/clever-kubernetes-engine/">CKE, our Clever Kubernetes Engine</a>, available in public beta starting today.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>As many know, we resisted for years the idea of offering Kubernetes as just another checkbox in the Console. Not because Kubernetes is useless, but because it has too often become a default answer to problems the PaaS solves more simply: deploying an application, scaling it, monitoring it, isolating it, connecting it to a database, managing its environment variables, its logs and its lifecycle. And we still believe that.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But Kubernetes has become the common language of a large part of the cloud-native ecosystem. Helm, operators, GitOps, already-containerized workloads, internal platforms and existing toolchains are part of the daily reality of many teams. And our reason for being is to make life easier for technical teams.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The question was no longer "should we do Kubernetes?", but "can we do Kubernetes without giving up what makes Clever Cloud?"</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Not a quickly repackaged Kubernetes</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The fastest way to ship managed Kubernetes is to wrap an upstream distribution behind an admin console, add a provisioning API, and bill the cluster by the hour. It is a valid strategy if you want to ship fast. It is not the one we wanted.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For CKE, we had three requirements that cannot be solved by simply bolting Kubernetes on top of the rest of the platform.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The first is sovereignty. CKE is operated in Europe, on our infrastructure and that of our partners, and can also be deployed on the on-premises infrastructure of customers who need it. No dependency on US hyperscalers, no grey areas around data jurisdiction, no vague promises about where the infrastructure actually runs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The second is integration with the rest of Clever Cloud. We did not want to create a Kubernetes silo sitting alongside the PaaS, the managed databases, the object storage and the private network. We wanted a Kubernetes that fits inside the same platform, with the same Console, the same tooling, the same billing, the same governance rules and the same <a href="https://www.clever.cloud/blog/company/2025/03/19/managed-services/">managed services</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The third is operational predictability. Kubernetes is a complex distributed system, and its behaviour under load depends heavily on its foundations. We did not want to operate a product whose underlying layer would remain a black box or a default-accepted limitation. That is what led us to work on something few providers touch: Kubernetes' internal consistency layer.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Under the hood: Materia etcd on FoundationDB</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In Kubernetes, etcd is the component that stores cluster state: manifests, resources, secrets, node state. It is the source of truth for the entire orchestrator.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>It is also one of the most sensitive components in the system.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>etcd works very well within the scope it was designed for. But its limits at scale are well known: store size, latencies under heavy write load, behaviour during network partitions, backup and restore operations, the need for compaction and fine-grained monitoring. When Kubernetes becomes a critical foundation, etcd becomes an operational concern in its own right.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We did not want to build CKE on top of a brick we would then treat as a fragile black box.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>So we took the problem back to its root: keep the contract Kubernetes expects, but replace the internal consistency layer with an implementation backed by FoundationDB. We call it Materia etcd.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>FoundationDB gives us distributed ACID transactions, a robust consistency model, and a <a href="https://apple.github.io/foundationdb/testing.html">deterministic simulation testing</a> approach that fits very well with how we build critical infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For end users, this work is invisible. That is precisely the point. Under the hood, this foundation lets us build CKE with the auto-scaling, auto-healing and operational predictability we expect from a Clever Cloud service.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We will come back to Materia etcd in more detail soon, because the topic deserves a dedicated article.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Standard Kubernetes on the developer side</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>All this work on the underlying layer has a simple goal: on the user side, CKE has to be standard Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Your manifests work without modification. Your Helm charts install normally. Your Argo CD or your Flux plugs in like on any other cluster. Your Kubernetes operators run without surprises.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>CKE does not try to reinvent the developer interface of Kubernetes. That would be counterproductive. If you already have a Kubernetes deployment chain, the goal is for it to run on CKE with as little friction as possible.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The difference happens elsewhere: in how this Kubernetes integrates with the rest of the Clever Cloud platform.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Kubernetes when you need it, the PaaS when it is enough</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>CKE does not replace our PaaS. It complements it.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For many applications, the PaaS remains the best choice: less operations, less configuration, less YAML, less maintenance surface. If your application fits naturally in a Clever Cloud runtime, the PaaS is often still the simplest and most robust path.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But there are cases where Kubernetes is the right tool.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You may need to install :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>An operator;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Reuse existing manifests;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Standardize a GitOps chain;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Deploy a workload already distributed as a Helm chart;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Run an internal platform built around the Kubernetes API;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Or simply meet the habits of a team that already works with Kubernetes day to day.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>In those cases, the problem is not Kubernetes itself. The problem is Kubernetes isolated from the rest of your system.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>That is where CKE changes things. You can keep a Node.js API on the PaaS, a static frontend on Cellar, a managed PostgreSQL database, and run on CKE only the component, the operator or the workload that really needs Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>All within the same Clever Cloud environment.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Native integration with the Clever Cloud ecosystem</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>CKE was designed to integrate with the services you already use on Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>Cellar</strong>, our S3-compatible object storage, can be used from your Kubernetes workloads.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Managed databases</strong> (PostgreSQL, MySQL, MongoDB, Redis, Materia) attach to your cluster the same way they do to any other Clever Cloud application.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>IAM as a Service</strong> lets you manage authentication and permissions on the cluster and on the teams that access it.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Network Groups</strong> lets you connect your CKE cluster to your existing Clever Cloud PaaS applications, in the same private network.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>The Network Groups integration is probably the one that changes day-to-day work the most.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Kubernetes is often introduced into organizations as a new island: new console, new network, new secrets, new access rules, new billing, a new way to connect services together.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>With CKE, the goal is the opposite. Kubernetes becomes one more brick in the Clever Cloud architecture, not a parallel world.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>So you can build a hybrid architecture without workarounds: part on the PaaS, part on CKE, managed databases, object storage, private networking, and shared governance.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Enabling CKE and deploying a first application</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>For this demo, we will stick to the bare minimum: enable the feature, create a cluster, fetch a kubeconfig, add a node group, and deploy a first application with a <code>LoadBalancer</code> service.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On the prerequisites side, you will need <a href="https://www.clever.cloud/developers/doc/cli/">Clever Tools</a> version 4.3 or later, and <code>kubectl</code> installed locally.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Since the public beta opened on April 27, the Kubernetes feature can be enabled by any Clever Cloud customer, with a single command:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever features enable k8s</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>You can then create a cluster. Give it a name, point to your organization, and the <code>--watch</code> option lets you follow the deployment progress:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever k8s create my-cluster --org &lt;your-org-id&gt; --watch</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Creation takes about a minute. At any time, you can list the clusters in your organization with <code>clever k8s list</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Once the cluster is ready, fetch its kubeconfig and write it directly as your default local configuration:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever k8s get-kubeconfig my-cluster --org &lt;your-org-id&gt; &gt; ~/.kube/config</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>From there, it is standard Kubernetes. <code>kubectl</code> talks to the cluster, and your usual tooling follows. You can start by checking that everything is in place:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl get nodes</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>At this stage, the list is empty: the cluster is created but has no compute capacity. This is a good moment to introduce the first CKE-specific API resource: the <code>NodeGroup</code>. A node group is a set of Kubernetes nodes with the same profile (same flavor, same region), managed as a unit. You describe it like any other Kubernetes resource, in a YAML file:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-yaml">apiVersion: api.clever-cloud.com/v1
kind: NodeGroup
metadata:
  name: example-nodegroup
spec:
  flavor: M
  nodeCount: 2</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>And you apply it with <code>kubectl</code>:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl create -f example-nodegroup.yaml</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Sixty to ninety seconds later, the nodes join the cluster:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl get nodegroups
NAME                DESIREDNODECOUNT   CURRENTNODECOUNT   FLAVOR   STATUS   AGE
example-nodegroup   2                  2                  M        Synced   2m

kubectl get nodes
NAME                      STATUS   ROLES    AGE   VERSION
example-nodegroup-node0   Ready    <none>   2m    v1.35.0
example-nodegroup-node1   Ready    <none>   2m    v1.35.0</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>To resize the node group, you stay within the Kubernetes API:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl scale nodegroup example-nodegroup --replicas=4</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>With a cluster that now has compute capacity, you can deploy a first application. To keep things simple, an nginx exposed through a <code>LoadBalancer</code> service, which will automatically provision a load balancer on the Clever Cloud side:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">kubectl create deployment nginx --image=nginx:alpine --replicas=2 
kubectl expose deployment/nginx --type=LoadBalancer --port 80 
kubectl get service nginx</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>A few seconds later, the service exposes a public address. This is exactly the responsive behaviour we mentioned about the private testing phase: provisioning a node group, scaling it or exposing a service requires no waiting and no manual configuration.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>From here, it is Kubernetes like anywhere else. You can add persistent storage through the Clever Cloud CSI, install the <a href="https://github.com/CleverCloud/clever-kubernetes-operator">Clever Kubernetes Operator</a> to provision a managed database from your manifests, or plug in your usual GitOps chain. The cluster supports Kubernetes versions 1.34, 1.35 and 1.36, with 1.35 as the default. Everything is detailed in the <a href="https://www.clever.cloud/developers/doc/kubernetes/">CKE documentation</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">What we saw during private testing and at Devoxx, and what is next</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>CKE is now in public beta, but some of our customers have had private access for several months. That phase was very useful to expose the product to real-world usage before opening it more widely.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The feedback has been very positive. The cluster behaves as expected, and the operations that come up most often in a Kubernetes team's daily life, such as adding a node or setting up a load balancer, are fast and predictable. That is exactly the behaviour we were aiming for when we invested so much time into the internal consistency layer.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>At Devoxx France, we presented CKE on the Clever Cloud booth for three days. The conversations confirmed two things we were already observing.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>First, teams are not just looking for a Kubernetes cluster. They are looking for a Kubernetes that integrates cleanly with their platform, their network, their databases, their security constraints and their existing practices.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Second, and probably the most striking feedback, developers are not looking to put everything on Kubernetes. Many want to keep their classic applications on our PaaS, where it is the most efficient, and deploy on Kubernetes only the components that really warrant it, because of their complexity, their distributed architecture, or the constraints of the ecosystem they fit into.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is exactly the kind of hybrid architecture CKE is designed to enable.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>It is also why, ahead of the launch, we built the <a href="https://github.com/CleverCloud/clever-kubernetes-operator">Clever Kubernetes Operator</a>. It allows a workload running in a Kubernetes cluster, whether hosted with us or elsewhere, to provision and consume our managed services directly from the Kubernetes API: PostgreSQL, MySQL, MongoDB, Redis, Cellar or Materia.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For your teams, it is a <code>kubectl apply</code> that creates a managed database. For CKE, it is the natural tool to bridge Kubernetes workloads and the rest of the Clever Cloud platform.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The beta is open to all Clever Cloud customers. You can enable it right now, deploy your first workloads, and tell us what is missing, what surprises you or what you would like to see come next.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The discussion is open on <a href="https://github.com/CleverCloud/Community/discussions">our GitHub </a><a href="https://github.com/CleverCloud/Community/discussions/categories/kubernetes" target="_blank" rel="noreferrer noopener">community</a>, and the documentation is available <a href="https://www.clever.cloud/developers">here</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>CKE does not replace our PaaS. It complements it.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For many applications, the PaaS remains the simplest path from a commit to production. But when you need Kubernetes, for an operator, a Helm chart, a GitOps chain, an already-standardized workload or an internal platform, you can now do it inside the Clever Cloud environment, with our infrastructure choices, our network, our managed services and our sovereignty requirements.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>That is the kind of Kubernetes we wanted to build.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Clever Cloud launches Clever Kubernetes Engine (CKE) in public beta on April 27, 2026</title>
		<link>https://www.clever.cloud/blog/company/2026/04/21/clever-kubernetes-engine-cke-in-public-beta-on-april-27-2026/</link>
		
		<dc:creator><![CDATA[Carine Guillemet]]></dc:creator>
		<pubDate>Tue, 21 Apr 2026 14:26:35 +0000</pubDate>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Press]]></category>
		<category><![CDATA[cke]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=24176</guid>

					<description><![CDATA[<p><img width="1600" height="900" src="https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Clever Cloud CKE Devoxx" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en.png 1600w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-300x169.png 300w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-1024x576.png 1024w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-768x432.png 768w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-1536x864.png 1536w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-1368x770.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p><em>Nantes, France — Clever Cloud, a European cloud provider, announces the public beta launch of <a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine (CKE) </a>on April 27, 2026, in the afternoon. The product will be previewed at Devoxx starting April 22, where attendees will be able to test it directly at the Clever Cloud booth.</em></p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Built for production and scalability</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> has become the standard for container orchestration. Clever Cloud spent two years developing a managed, sovereign version designed to integrate naturally into the Clever Cloud ecosystem and operate with the same simplicity as the platform's other services. CKE is built to handle real production workloads, with high scalability and predictable behavior at scale.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>To achieve this, Clever Cloud developed Materia etcd, a reimplementation of Kubernetes' internal consistency layer built on FoundationDB. This foundational work — invisible to the end user — is what guarantees CKE's robustness and stability in production, notably through native auto-scaling and auto-healing capabilities.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>CKE integrates natively with existing Clever Cloud services — Cellar object storage (S3-compatible), managed databases, IAM as a Service, Network Groups — and remains accessible via standard industry tools: kubectl, Helm, or GitOps.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Sovereign by design</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Hosted and operated in Europe by Clever Cloud on its public cloud, CKE offers organizations a concrete alternative to the Kubernetes offerings of major American platforms, without compromising on performance or legal data control. CKE can also be deployed on the customer's own on-premises infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Access details</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The public beta is open to all Clever Cloud customers from April 27, 2026, via feature activation performed by the user. Notably, some customers have already had access through a private test for over six months, allowing the product to be refined before this general release.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><em>"Clever Cloud has long developed alternatives to Kubernetes. Our customers expressed a clear need for this technology, and we decided to build it alongside them, with the level of technical excellence and sovereignty that defines our platform."</em>&nbsp;— Quentin Adam, CEO of Clever Cloud</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/clever-kubernetes-engine/" type="link" id="https://www.clever.cloud/clever-kubernetes-engine/">Learn more</a></p>
<!-- /wp:paragraph -->

<!-- wp:acf/video {"name":"acf/video","data":{"overtitle":"Video","_overtitle":"field_638dfc12af44d","title":"\u003cb\u003eDiscover CKE\u003c/b\u003e in 1 minute","_title":"field_638dfc39af44e","description":"Standard Kubernetes compatible with the entire ecosystem, operated by Clever Cloud.","_description":"field_638dfc45af44f","description_secondary":"","_description_secondary":"field_63c81679fd784","poster":24115,"_poster":"field_638dfc50af450","type":"iframe","_type":"field_63edfc74597df","iframe":"\u003ciframe width=\u0022560\u0022 height=\u0022315\u0022 src=\u0022https://www.youtube.com/embed/hw630p3kGfE?si=TIElBBUEZh0k4qgS\u0022 title=\u0022YouTube video player\u0022 frameborder=\u00220\u0022 allow=\u0022accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\u0022 referrerpolicy=\u0022strict-origin-when-cross-origin\u0022 allowfullscreen\u003e\u003c/iframe\u003e","_iframe":"field_638dfcb8af451"},"mode":"auto"} /-->]]></description>
										<content:encoded><![CDATA[<p><img width="1600" height="900" src="https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Clever Cloud CKE Devoxx" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en.png 1600w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-300x169.png 300w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-1024x576.png 1024w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-768x432.png 768w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-1536x864.png 1536w, https://cdn.clever-cloud.com/uploads/2026/04/2026-04-21-clever-cloud-reseaux-sociaux-cke-devoxx-en-1368x770.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p><em>Nantes, France — Clever Cloud, a European cloud provider, announces the public beta launch of <a href="https://www.clever.cloud/clever-kubernetes-engine/">Clever Kubernetes Engine (CKE) </a>on April 27, 2026, in the afternoon. The product will be previewed at Devoxx starting April 22, where attendees will be able to test it directly at the Clever Cloud booth.</em></p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Built for production and scalability</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> has become the standard for container orchestration. Clever Cloud spent two years developing a managed, sovereign version designed to integrate naturally into the Clever Cloud ecosystem and operate with the same simplicity as the platform's other services. CKE is built to handle real production workloads, with high scalability and predictable behavior at scale.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>To achieve this, Clever Cloud developed Materia etcd, a reimplementation of Kubernetes' internal consistency layer built on FoundationDB. This foundational work — invisible to the end user — is what guarantees CKE's robustness and stability in production, notably through native auto-scaling and auto-healing capabilities.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>CKE integrates natively with existing Clever Cloud services — Cellar object storage (S3-compatible), managed databases, IAM as a Service, Network Groups — and remains accessible via standard industry tools: kubectl, Helm, or GitOps.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Sovereign by design</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Hosted and operated in Europe by Clever Cloud on its public cloud, CKE offers organizations a concrete alternative to the Kubernetes offerings of major American platforms, without compromising on performance or legal data control. CKE can also be deployed on the customer's own on-premises infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Access details</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The public beta is open to all Clever Cloud customers from April 27, 2026, via feature activation performed by the user. Notably, some customers have already had access through a private test for over six months, allowing the product to be refined before this general release.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><em>"Clever Cloud has long developed alternatives to Kubernetes. Our customers expressed a clear need for this technology, and we decided to build it alongside them, with the level of technical excellence and sovereignty that defines our platform."</em>&nbsp;— Quentin Adam, CEO of Clever Cloud</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/clever-kubernetes-engine/" type="link" id="https://www.clever.cloud/clever-kubernetes-engine/">Learn more</a></p>
<!-- /wp:paragraph -->

<!-- wp:acf/video {"name":"acf/video","data":{"overtitle":"Video","_overtitle":"field_638dfc12af44d","title":"\u003cb\u003eDiscover CKE\u003c/b\u003e in 1 minute","_title":"field_638dfc39af44e","description":"Standard Kubernetes compatible with the entire ecosystem, operated by Clever Cloud.","_description":"field_638dfc45af44f","description_secondary":"","_description_secondary":"field_63c81679fd784","poster":24115,"_poster":"field_638dfc50af450","type":"iframe","_type":"field_63edfc74597df","iframe":"\u003ciframe width=\u0022560\u0022 height=\u0022315\u0022 src=\u0022https://www.youtube.com/embed/hw630p3kGfE?si=TIElBBUEZh0k4qgS\u0022 title=\u0022YouTube video player\u0022 frameborder=\u00220\u0022 allow=\u0022accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\u0022 referrerpolicy=\u0022strict-origin-when-cross-origin\u0022 allowfullscreen\u003e\u003c/iframe\u003e","_iframe":"field_638dfcb8af451"},"mode":"auto"} /-->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why we (finally) built our own managed Kubernetes</title>
		<link>https://www.clever.cloud/blog/company/2025/06/27/why-we-finally-built-our-own-managed-kubernetes-etcd/</link>
		
		<dc:creator><![CDATA[Carine Guillemet]]></dc:creator>
		<pubDate>Fri, 27 Jun 2025 14:15:20 +0000</pubDate>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[etcd]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/?p=18126</guid>

					<description><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2025/06/2025-06-23-clever-cloud-banniere-blog-migration-cloud-en-3-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2025 06 23 clever cloud banniere blog migration cloud en 3 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2025/06/2025-06-23-clever-cloud-banniere-blog-migration-cloud-en-3-1.png 800w, https://cdn.clever-cloud.com/uploads/2025/06/2025-06-23-clever-cloud-banniere-blog-migration-cloud-en-3-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2025/06/2025-06-23-clever-cloud-banniere-blog-migration-cloud-en-3-1-768x341.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>It was built to manage infrastructure — and in doing so, it carries complexity and then hidden costs. And at Clever Cloud, our guiding principle is to empower developers productivity, security, and autonomy.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Since then, the context has changed. The market is evolving, our clients too, and we now have the technological maturity to address such a need … in our own way. Here's why we took the time to create our own version of ETCD, and why <a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> is finally arriving at Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Why we didn’t jump on Kubernetes earlier</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In the past, we never saw Kubernetes as a key driver for simplification. <strong>It’s sometimes experienced as an additional layer of complexity</strong>, especially for teams who just want to deploy, scale, and secure their applications: focus on value creation without spending too much time on the rest.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But scaling up often creates complicated machinery. As a cloud provider, we have to deliver on a very large scale. Our orchestrator, developed and enriched through 15 years of production experience, enables this. By directly executing runtimes (about fifteen, including <a href="https://nodejs.org/en">Node.JS</a>, PHP, Rust, Scala, Docker, etc.), our orchestration goes further in fine-grained provisioning and auto-scaling, smarter updates, and better security.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For us, containerization is not the be-all and end-all. If a runtime exists, we prefer to ease how to use it, natively provide it: this allows us to control the security updates of the base image without relying on the application team’s goodwill. For any code that doesn’t match an existing runtime, we naturally offer deployment via Docker images. However, bear in mind that while we can update the image, we cannot patch or update the encapsulated code.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>However, as we continue to grow, we're meeting increasingly larger prospects who are using Kubernetes. The market demands Kubernetes. More and more customers want interoperability with their existing tools, fine-grained workload management, or simply a standard for their teams. We couldn’t ignore it.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>The weakest link in Kubernetes: ETCD</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes is often called the “the cloud’s operating system”. But like every OS, it relies on a critical component: ETCD — a distributed key-value store meant to record the cluster’s global state. And that’s where problems begin.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>ETCD can’t handle the load. Its architecture, designed for modest cases, sets a hard 8 GB technical limit. Performances drop as soon as you scale up, documentation is lacking, and project governance has been weakened by successive maintainer changes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>It’s no coincidence that Google, Microsoft and other hyperscalers have rewritten their own versions of ETCD — or that projects like k3s replaced it with PostgreSQL. It’s an operational nightmare when your job is to keep systems running. When each customer has their own Kubernetes cluster, it potentially means thousands of ETCD instances to manage, each with its quirks, backups, and varying performance. In short: a challenge for our teams&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Rethinking ETCD from the ground up: Our In-House Stack</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>So we did what Clever Cloud does best: smart reinvention. Using <strong><a href="https://www.clever.cloud/fr/materia-serverless/materia-kv/">Materia KV</a></strong>, our serverless key-value database built on FoundationDB, we implemented ETCD our way.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Specifically, we recreated the key compatibility APIs (KeyValue, Watch, Lease, Compaction…) by interfacing them with infrastructure we fully control, offering:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>A multi-tenant architecture</strong>, designed for scale. Since we use FoundationDB as the database, we can apply horizontal scaling. Usually, adding nodes to ETCD slows it down — but each node added in MateriaETCD allows us to host more clients without negative impact;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Fine-grained management</strong> of transactions, permissions, quotas, and statistics;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>A coherent stack maintained by our teams</strong>.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>The result: a logically ETCD-compatible database — fast, reliable, scalable — built on FoundationDB, and operated at Clever Cloud scale. No more fragile clusters or overwhelmed DBAs: everything is integrated, industrialized, and instrumentable.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>More importantly, this solution offers exceptional resilience, directly inherited from FoundationDB. Thanks to continuous simulation in a distributed environment, we can validate every software release across thousands of simulated failure scenarios. It’s a rare level of robustness that enables us to anticipate edge cases and guarantee very high service availability — and therefore, yours. This approach gives us unprecedented confidence in our ability to manage thousands of Kubernetes clusters without falling into the trap of exponentially growing operational complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Clever Cloud Managed Kubernetes: a sovereign, pragmatic approach</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We’re not changing our vision: our PaaS remains the best solution for teams seeking maximum productivity and security with minimal effort. But we also understand that some organizations need Kubernetes for architectural, portability, or standardization reasons.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>That’s why our managed Kubernetes enters <strong>private access phase today</strong>. If you're a Clever Cloud customer and want to test it, you can contact us now to get it.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Our pledge? An integrated, secure, and mastered Kubernetes — built on a solid technical foundation. A Kubernetes that adheres to best practices — but without the flaws of its legacy components. A Kubernetes that finally lets you focus on your business.</p>
<!-- /wp:paragraph -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/contact/">Contact-us</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="800" height="355" src="https://cdn.clever-cloud.com/uploads/2025/06/2025-06-23-clever-cloud-banniere-blog-migration-cloud-en-3-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2025 06 23 clever cloud banniere blog migration cloud en 3 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2025/06/2025-06-23-clever-cloud-banniere-blog-migration-cloud-en-3-1.png 800w, https://cdn.clever-cloud.com/uploads/2025/06/2025-06-23-clever-cloud-banniere-blog-migration-cloud-en-3-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2025/06/2025-06-23-clever-cloud-banniere-blog-migration-cloud-en-3-1-768x341.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p><!-- wp:paragraph -->
<p>It was built to manage infrastructure — and in doing so, it carries complexity and then hidden costs. And at Clever Cloud, our guiding principle is to empower developers productivity, security, and autonomy.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Since then, the context has changed. The market is evolving, our clients too, and we now have the technological maturity to address such a need … in our own way. Here's why we took the time to create our own version of ETCD, and why <a href="https://www.clever.cloud/product/kubernetes/">Kubernetes</a> is finally arriving at Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Why we didn’t jump on Kubernetes earlier</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In the past, we never saw Kubernetes as a key driver for simplification. <strong>It’s sometimes experienced as an additional layer of complexity</strong>, especially for teams who just want to deploy, scale, and secure their applications: focus on value creation without spending too much time on the rest.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But scaling up often creates complicated machinery. As a cloud provider, we have to deliver on a very large scale. Our orchestrator, developed and enriched through 15 years of production experience, enables this. By directly executing runtimes (about fifteen, including <a href="https://nodejs.org/en">Node.JS</a>, PHP, Rust, Scala, Docker, etc.), our orchestration goes further in fine-grained provisioning and auto-scaling, smarter updates, and better security.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>For us, containerization is not the be-all and end-all. If a runtime exists, we prefer to ease how to use it, natively provide it: this allows us to control the security updates of the base image without relying on the application team’s goodwill. For any code that doesn’t match an existing runtime, we naturally offer deployment via Docker images. However, bear in mind that while we can update the image, we cannot patch or update the encapsulated code.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>However, as we continue to grow, we're meeting increasingly larger prospects who are using Kubernetes. The market demands Kubernetes. More and more customers want interoperability with their existing tools, fine-grained workload management, or simply a standard for their teams. We couldn’t ignore it.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>The weakest link in Kubernetes: ETCD</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kubernetes is often called the “the cloud’s operating system”. But like every OS, it relies on a critical component: ETCD — a distributed key-value store meant to record the cluster’s global state. And that’s where problems begin.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>ETCD can’t handle the load. Its architecture, designed for modest cases, sets a hard 8 GB technical limit. Performances drop as soon as you scale up, documentation is lacking, and project governance has been weakened by successive maintainer changes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>It’s no coincidence that Google, Microsoft and other hyperscalers have rewritten their own versions of ETCD — or that projects like k3s replaced it with PostgreSQL. It’s an operational nightmare when your job is to keep systems running. When each customer has their own Kubernetes cluster, it potentially means thousands of ETCD instances to manage, each with its quirks, backups, and varying performance. In short: a challenge for our teams&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Rethinking ETCD from the ground up: Our In-House Stack</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>So we did what Clever Cloud does best: smart reinvention. Using <strong><a href="https://www.clever.cloud/fr/materia-serverless/materia-kv/">Materia KV</a></strong>, our serverless key-value database built on FoundationDB, we implemented ETCD our way.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Specifically, we recreated the key compatibility APIs (KeyValue, Watch, Lease, Compaction…) by interfacing them with infrastructure we fully control, offering:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>A multi-tenant architecture</strong>, designed for scale. Since we use FoundationDB as the database, we can apply horizontal scaling. Usually, adding nodes to ETCD slows it down — but each node added in MateriaETCD allows us to host more clients without negative impact;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Fine-grained management</strong> of transactions, permissions, quotas, and statistics;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>A coherent stack maintained by our teams</strong>.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>The result: a logically ETCD-compatible database — fast, reliable, scalable — built on FoundationDB, and operated at Clever Cloud scale. No more fragile clusters or overwhelmed DBAs: everything is integrated, industrialized, and instrumentable.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>More importantly, this solution offers exceptional resilience, directly inherited from FoundationDB. Thanks to continuous simulation in a distributed environment, we can validate every software release across thousands of simulated failure scenarios. It’s a rare level of robustness that enables us to anticipate edge cases and guarantee very high service availability — and therefore, yours. This approach gives us unprecedented confidence in our ability to manage thousands of Kubernetes clusters without falling into the trap of exponentially growing operational complexity.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Clever Cloud Managed Kubernetes: a sovereign, pragmatic approach</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We’re not changing our vision: our PaaS remains the best solution for teams seeking maximum productivity and security with minimal effort. But we also understand that some organizations need Kubernetes for architectural, portability, or standardization reasons.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>That’s why our managed Kubernetes enters <strong>private access phase today</strong>. If you're a Clever Cloud customer and want to test it, you can contact us now to get it.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Our pledge? An integrated, secure, and mastered Kubernetes — built on a solid technical foundation. A Kubernetes that adheres to best practices — but without the flaws of its legacy components. A Kubernetes that finally lets you focus on your business.</p>
<!-- /wp:paragraph -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/contact/">Contact-us</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Le RTO rebute au kube les devs à temps partiel</title>
		<link>https://www.clever.cloud/podcast/le-rto-rebute-au-kube-les-devs-a-temps-partiel/</link>
					<comments>https://www.clever.cloud/podcast/le-rto-rebute-au-kube-les-devs-a-temps-partiel/#respond</comments>
		
		<dc:creator><![CDATA[Horacio Gonzalez]]></dc:creator>
		<pubDate>Fri, 10 Jan 2025 08:30:11 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Open AI]]></category>
		<category><![CDATA[RTO]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/?post_type=podcast&#038;p=15519</guid>

					<description><![CDATA[<p><img width="1920" height="1080" src="https://cdn.clever-cloud.com/uploads/2025/01/125.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="125" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2025/01/125.jpg 1920w, https://cdn.clever-cloud.com/uploads/2025/01/125-300x169.jpg 300w, https://cdn.clever-cloud.com/uploads/2025/01/125-1024x576.jpg 1024w, https://cdn.clever-cloud.com/uploads/2025/01/125-768x432.jpg 768w, https://cdn.clever-cloud.com/uploads/2025/01/125-1536x864.jpg 1536w, https://cdn.clever-cloud.com/uploads/2025/01/125-1368x770.jpg 1368w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p><!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/wFtXKsGr3Vc">Voir sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Animé par Horacio Gonzalez - @LostInBrittany <br>avec la participation de :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Mathieu Ancelin - @TrevorReznik</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Darya Khendrik - @DKhendrik</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Sébastien Allemand - @allema_s</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Anis Nielsen - @nielsenaa</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Épisode enregistré le 18 décembre 2024</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Chapitrage et Liens</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:00:16 : Intro et présentation des participants</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:03:25 : Problème de prod chez openai lié à Kubernetes : it's always kube-dns / coredns / kube-proxy<br><a href="https://x.com/rauchg/status/1868047569299099903
">https://x.com/rauchg/status/1868047569299099903<br></a><a href="https://status.openai.com/incidents/ctrsv3lwd797">https://status.openai.com/incidents/ctrsv3lwd797</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:06:38 : Amazon prétend que les développeurs ne codent qu'une heure par jour, et que l'IA est la solution pour plus de temps de codage<br><a href="https://programmation.developpez.com/actu/365731/Amazon-pretend-que-les-developpeurs-ne-codent-qu-une-heure-par-jour-et-que-l-IA-est-la-solution-pour-plus-de-temps-de-codage-AWS-presente-Amazon-Q-Developer-son-outil-d-assistant-dote-d-IA/
">https://programmation.developpez.com/actu/365731/Amazon-pretend-que-les-developpeurs-ne-codent-qu-une-heure-par-jour-et-que-l-IA-est-la-solution-pour-plus-de-temps-de-codage-AWS-presente-Amazon-Q-Developer-son-outil-d-assistant-dote-d-IA/<br></a><a href="https://programmation.developpez.com/actu/345479/Le-temps-perdu-par-les-developpeurs-couterait-des-milliards-aux-entreprises-un-gaspillage-qui-est-estime-a-environ-12-97-milliards-de-dollars-par-an/">https://programmation.developpez.com/actu/345479/Le-temps-perdu-par-les-developpeurs-couterait-des-milliards-aux-entreprises-un-gaspillage-qui-est-estime-a-environ-12-97-milliards-de-dollars-par-an/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:17:50 : Les entreprises qui forcent les retours au bureau perdent leurs meilleurs talents<br><a href="https://www.corporate-rebels.com/blog/what-happens-when-you-a-b-test-hybrid-work-the-results-are-fascinating
">https://www.corporate-rebels.com/blog/what-happens-when-you-a-b-test-hybrid-work-the-results-are-fascinating<br></a><a href="https://emploi.developpez.com/actu/365909/Les-entreprises-qui-forcent-les-retours-au-bureau-perdent-leurs-meilleurs-talents-selon-une-etude-les-donnees-disponibles-n-etablissent-pourtant-pas-que-les-employes-au-bureau-sont-plus-productifs/">https://emploi.developpez.com/actu/365909/Les-entreprises-qui-forcent-les-retours-au-bureau-perdent-leurs-meilleurs-talents-selon-une-etude-les-donnees-disponibles-n-etablissent-pourtant-pas-que-les-employes-au-bureau-sont-plus-productifs/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:31:40 : Transport for London hack - 30 000 employees reset in person MDP<br><a href="https://www.bleepingcomputer.com/news/security/tfl-requires-in-person-password-resets-for-30-000-employees-after-hack/">https://www.bleepingcomputer.com/news/security/tfl-requires-in-person-password-resets-for-30-000-employees-after-hack/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:35:40 : Le langage Go souffle ses 15 bougies et atteint sa position la plus haute sur l'indice Tiobe<br><a href="https://programmation.developpez.com/actu/364901/Le-langage-Go-souffle-ses-15-bougies-et-atteint-sa-position-la-plus-haute-sur-l-indice-Tiobe-Google-annonce-que-le-nombre-d-utilisateurs-de-Go-a-plus-que-triple-au-cours-des-cinq-dernieres-annees/
">https://programmation.developpez.com/actu/364901/Le-langage-Go-souffle-ses-15-bougies-et-atteint-sa-position-la-plus-haute-sur-l-indice-Tiobe-Google-annonce-que-le-nombre-d-utilisateurs-de-Go-a-plus-que-triple-au-cours-des-cinq-dernieres-annees/<br></a>State of Javascript : <a href="https://piccalil.li/links/state-of-java-script-2024/">https://piccalil.li/links/state-of-java-script-2024/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:43:30 : Tools : Bruno, un client API Open Source<br><a href="https://www.usebruno.com/
">https://www.usebruno.com/<br></a>Alternative open source à Postman ( <a href="https://www.postman.com/">https://www.postman.com/</a> ) ou Insomnia ( <a href="https://insomnia.rest/">https://insomnia.rest/</a> )</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:47:55 : Markitdown - <a href="https://github.com/microsoft/markitdown">https://github.com/microsoft/markitdown</a><br>microsoft opensource un tool python pour transformer des fichiers PDF, PowerPoint, Word, Excel, Images, Audio, HTML, CSV, JSON, XML, ZIP en markdown<br><a href="https://www.clever.cloud/fr/blog/engineering-fr/2024/12/16/markitdown-as-a-service-de-lai-a-la-production-sur-clever-cloud/">https://www.clever.cloud/fr/blog/engineering-fr/2024/12/16/markitdown-as-a-service-de-lai-a-la-production-sur-clever-cloud/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Musique de fin : <a href="https://www.youtube.com/watch?v=JglOS8TRFp4">https://www.youtube.com/watch?v=JglOS8TRFp4</a></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1920" height="1080" src="https://cdn.clever-cloud.com/uploads/2025/01/125.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="125" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2025/01/125.jpg 1920w, https://cdn.clever-cloud.com/uploads/2025/01/125-300x169.jpg 300w, https://cdn.clever-cloud.com/uploads/2025/01/125-1024x576.jpg 1024w, https://cdn.clever-cloud.com/uploads/2025/01/125-768x432.jpg 768w, https://cdn.clever-cloud.com/uploads/2025/01/125-1536x864.jpg 1536w, https://cdn.clever-cloud.com/uploads/2025/01/125-1368x770.jpg 1368w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p><!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/wFtXKsGr3Vc">Voir sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Animé par Horacio Gonzalez - @LostInBrittany <br>avec la participation de :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Mathieu Ancelin - @TrevorReznik</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Darya Khendrik - @DKhendrik</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Sébastien Allemand - @allema_s</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Anis Nielsen - @nielsenaa</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Épisode enregistré le 18 décembre 2024</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Chapitrage et Liens</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:00:16 : Intro et présentation des participants</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:03:25 : Problème de prod chez openai lié à Kubernetes : it's always kube-dns / coredns / kube-proxy<br><a href="https://x.com/rauchg/status/1868047569299099903
">https://x.com/rauchg/status/1868047569299099903<br></a><a href="https://status.openai.com/incidents/ctrsv3lwd797">https://status.openai.com/incidents/ctrsv3lwd797</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:06:38 : Amazon prétend que les développeurs ne codent qu'une heure par jour, et que l'IA est la solution pour plus de temps de codage<br><a href="https://programmation.developpez.com/actu/365731/Amazon-pretend-que-les-developpeurs-ne-codent-qu-une-heure-par-jour-et-que-l-IA-est-la-solution-pour-plus-de-temps-de-codage-AWS-presente-Amazon-Q-Developer-son-outil-d-assistant-dote-d-IA/
">https://programmation.developpez.com/actu/365731/Amazon-pretend-que-les-developpeurs-ne-codent-qu-une-heure-par-jour-et-que-l-IA-est-la-solution-pour-plus-de-temps-de-codage-AWS-presente-Amazon-Q-Developer-son-outil-d-assistant-dote-d-IA/<br></a><a href="https://programmation.developpez.com/actu/345479/Le-temps-perdu-par-les-developpeurs-couterait-des-milliards-aux-entreprises-un-gaspillage-qui-est-estime-a-environ-12-97-milliards-de-dollars-par-an/">https://programmation.developpez.com/actu/345479/Le-temps-perdu-par-les-developpeurs-couterait-des-milliards-aux-entreprises-un-gaspillage-qui-est-estime-a-environ-12-97-milliards-de-dollars-par-an/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:17:50 : Les entreprises qui forcent les retours au bureau perdent leurs meilleurs talents<br><a href="https://www.corporate-rebels.com/blog/what-happens-when-you-a-b-test-hybrid-work-the-results-are-fascinating
">https://www.corporate-rebels.com/blog/what-happens-when-you-a-b-test-hybrid-work-the-results-are-fascinating<br></a><a href="https://emploi.developpez.com/actu/365909/Les-entreprises-qui-forcent-les-retours-au-bureau-perdent-leurs-meilleurs-talents-selon-une-etude-les-donnees-disponibles-n-etablissent-pourtant-pas-que-les-employes-au-bureau-sont-plus-productifs/">https://emploi.developpez.com/actu/365909/Les-entreprises-qui-forcent-les-retours-au-bureau-perdent-leurs-meilleurs-talents-selon-une-etude-les-donnees-disponibles-n-etablissent-pourtant-pas-que-les-employes-au-bureau-sont-plus-productifs/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:31:40 : Transport for London hack - 30 000 employees reset in person MDP<br><a href="https://www.bleepingcomputer.com/news/security/tfl-requires-in-person-password-resets-for-30-000-employees-after-hack/">https://www.bleepingcomputer.com/news/security/tfl-requires-in-person-password-resets-for-30-000-employees-after-hack/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:35:40 : Le langage Go souffle ses 15 bougies et atteint sa position la plus haute sur l'indice Tiobe<br><a href="https://programmation.developpez.com/actu/364901/Le-langage-Go-souffle-ses-15-bougies-et-atteint-sa-position-la-plus-haute-sur-l-indice-Tiobe-Google-annonce-que-le-nombre-d-utilisateurs-de-Go-a-plus-que-triple-au-cours-des-cinq-dernieres-annees/
">https://programmation.developpez.com/actu/364901/Le-langage-Go-souffle-ses-15-bougies-et-atteint-sa-position-la-plus-haute-sur-l-indice-Tiobe-Google-annonce-que-le-nombre-d-utilisateurs-de-Go-a-plus-que-triple-au-cours-des-cinq-dernieres-annees/<br></a>State of Javascript : <a href="https://piccalil.li/links/state-of-java-script-2024/">https://piccalil.li/links/state-of-java-script-2024/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:43:30 : Tools : Bruno, un client API Open Source<br><a href="https://www.usebruno.com/
">https://www.usebruno.com/<br></a>Alternative open source à Postman ( <a href="https://www.postman.com/">https://www.postman.com/</a> ) ou Insomnia ( <a href="https://insomnia.rest/">https://insomnia.rest/</a> )</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:47:55 : Markitdown - <a href="https://github.com/microsoft/markitdown">https://github.com/microsoft/markitdown</a><br>microsoft opensource un tool python pour transformer des fichiers PDF, PowerPoint, Word, Excel, Images, Audio, HTML, CSV, JSON, XML, ZIP en markdown<br><a href="https://www.clever.cloud/fr/blog/engineering-fr/2024/12/16/markitdown-as-a-service-de-lai-a-la-production-sur-clever-cloud/">https://www.clever.cloud/fr/blog/engineering-fr/2024/12/16/markitdown-as-a-service-de-lai-a-la-production-sur-clever-cloud/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Musique de fin : <a href="https://www.youtube.com/watch?v=JglOS8TRFp4">https://www.youtube.com/watch?v=JglOS8TRFp4</a></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
					<wfw:commentRss>https://www.clever.cloud/podcast/le-rto-rebute-au-kube-les-devs-a-temps-partiel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://assets.clever-cloud.com/podcast/fr/Message_a_caractere_informatique_125.mp3" length="73521493" type="audio/mpeg" />

			</item>
	</channel>
</rss>
