From 6b52c4eeee72b773c301e9df1305d67d1f3be1a2 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 11 Jun 2026 18:24:58 +0200 Subject: [PATCH 01/22] feat(k8s): add taints, startup taints, node labels MTA-7162 --- pages/kubernetes/concepts.mdx | 51 +++++++++++++++---- pages/kubernetes/how-to/create-cluster.mdx | 22 +++----- pages/kubernetes/how-to/manage-node-pools.mdx | 24 +++++++-- 3 files changed, 69 insertions(+), 28 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index 55eff25b55..427d98b392 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -1,9 +1,9 @@ --- title: Kubernetes - Concepts description: This page explains all the concepts related to Kubernetes Kapsule -tags: kubernetes autoheal autoscale auto-upgrade container-runtime cni control-plane kubeconfi kubectl pods replicaset +tags: kubernetes autoheal autoscale auto-upgrade container-runtime cni control-plane kubeconfig kubectl pods replicaset dates: - validation: 2025-09-03 + validation: 2026-06-11 --- ## Autoheal @@ -49,7 +49,7 @@ The container runtime is the software that is responsible for running containers The control plane manages the worker nodes and the Pods in the cluster. In production environments, the control plane usually runs across multiple computers, and a cluster usually runs multiple nodes, providing fault-tolerance and high availability. Scaleway manages the control plane and associated Load Balancers. Consider the following when creating a control plane: - A cluster belongs to one region. -- As the cluster's control plane and Load Balancer are managed by Scaleway, it is not possible to access them directly or configure them individually. +- As the cluster's control plane and Load Balancer are managed by Scaleway, it is not possible to access the node directly or configure the node individually. - A cluster requires a minimum of one pool of worker machines to deploy Kubernetes resources. Note that Pods must run on a worker node. ## Dedicated Control Plane @@ -58,7 +58,7 @@ All control plane components run on infrastructure dedicated to your Organizatio ## Easy Deploy -The Easy Deploy feature allows you to pull images directly from Scaleway Container Registry, instantly deploying containerized applications in your Kubernetes Kapsule cluster. With only the basic options to set, you can use Kubernetes Kapsule without needing to manage your `.yaml ` manifests. Check out our documentation on [creating containerized applications with the Easy Deploy feature](/kubernetes/how-to/enable-easy-deploy/) for more information. +The Easy Deploy feature allows you to pull images directly from the Scaleway Container Registry, instantly deploying containerized applications in your Kubernetes Kapsule cluster. With only the basic options to set, you can use Kubernetes Kapsule without needing to manage your `.yaml ` manifests. Check out our documentation on [creating containerized applications with the Easy Deploy feature](/kubernetes/how-to/enable-easy-deploy/) for more information. ## Image pull secret @@ -70,7 +70,7 @@ Ingress is an API object that manages external access to the services in a clust ## Ingress controller -Kubernetes supports a high-level abstraction called Ingress, which allows simple host or URL-based HTTP routing. Ingress is a core concept (in beta) of Kubernetes, but is always implemented by a third-party proxy. These implementations are known as ingress controllers. An ingress controller is responsible for reading the Ingress Resource information and processing that data accordingly. Different ingress controllers have extended the specification in different ways to support additional use cases. For more information, see our [dedicated how-to](/kubernetes/how-to/deploy-ingress-controller/) on deploying ingress controllers. +Kubernetes supports a high-level abstraction called ingress, which allows simple host or URL-based HTTP routing. Ingress is a core concept (in beta) of Kubernetes, but is always implemented by a third-party proxy. These implementations are known as ingress controllers. An ingress controller is responsible for reading the Ingress Resource information and processing that data accordingly. Different ingress controllers have extended the specification in different ways to support additional use cases. For more information, see our [dedicated how-to](/kubernetes/how-to/deploy-ingress-controller/) on deploying ingress controllers. ## Kubeconfig @@ -90,7 +90,7 @@ Kubernetes Kapsule provides a managed environment for you to create, configure, ## Kubernetes Kosmos -Kubernetes Kosmos is the first-of-its-kind managed multi-cloud Kubernetes Engine. It allows the connection of Instances and servers from any Cloud provider to a single managed control plane hosted by Scaleway. Using Kubernetes in a multi-cloud cluster provides a high level of application redundancy by authorizing Pod replication across different providers, regions, and Availability Zones. See our documentation to learn [how to create a Kubernetes Kosmos cluster](/kubernetes/how-to/create-kosmos-cluster/). +Kubernetes Kosmos is the first-of-its-kind managed multi-cloud Kubernetes Engine. It allows the connection of Instances and servers from any Cloud provider to a single managed control plane hosted by Scaleway. Using Kubernetes in a multi-cloud cluster provides a high level of application redundancy by authorizing pod replication across different providers, regions, and Availability Zones. See our documentation to learn [how to create a Kubernetes Kosmos cluster](/kubernetes/how-to/create-kosmos-cluster/). [Learn more about the differences between Kapsule and Kosmos](/kubernetes/reference-content/understanding-differences-kapsule-kosmos/). @@ -117,9 +117,25 @@ Namespaces are used in Kubernetes to divide the same cluster resources between m Kubernetes runs your workload by placing containers into Pods to run on nodes. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods. +## Node labels + +Node labels are key‑value pairs attached to a node. By referencing those labels in a Pod spec you can: + +- **Require** the Pod to run only on nodes that match the label(s), or +- **Prefer** the Pod to run on nodes that match the label(s). + +To express those constraints, you specify one or both of the following node selection mechanisms for a Pod: + +- `nodeSelector`: The scheduler places the Pod only on nodes that contain all specified labels. +- `nodeAffinity`: It lets you define how strict label‑based rules are: + - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. + - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. + +These constraints are evaluated against every node in a node pool during scheduling. + ## Pods -A Pod is the smallest and simplest unit in the Kubernetes object model. Containers are not directly assigned to hosts in Kubernetes. Instead, one or multiple containers that are working closely together are bundled in a Pod together, sharing a unique network address, storage resources and information on how to govern the containers. +A Pod is the smallest and simplest unit in the Kubernetes object model. Containers are not directly assigned to hosts in Kubernetes. Instead, one or multiple containers that are working closely together are bundled in a Pod together, sharing a unique network address, storage resources, and information on how to govern the containers. ## Pool @@ -139,10 +155,18 @@ The task of a ReplicaSet is to create and delete Pods as needed to reach the des ## Services -A service is an abstraction that defines a logical group of Pods that perform the same function, and a policy on how to access them. The service provides a stable endpoint (IP address) and acts as a Load Balancer by redirecting requests to the different Pods in the service. The service abstraction allows the scaling out or replacement of dead Pods without making changes to the configuration of an application. +A service is an abstraction that defines a logical group of pageods that perform the same function, and a policy on how to access the node. The service provides a stable endpoint (IP address) and acts as a Load Balancer by redirecting requests to the different Pods in the service. The service abstraction allows the scaling out or replacement of dead Pods without making changes to the configuration of an application. By default, services are only available using internally routable IP addresses, but can be exposed publicly. This can be done using the `NodePort` configuration, which opens a static port on each node's external networking interface. Alternatively, it is also possible to use the `load-balancer` service, which creates an external Load Balancer at a cloud provider using Kubernetes `load-balancer` integration. +## Startup taints + +A startup taint is a temporary taint that is applied while a node is initializing. The taint is automatically removed as soon as the node reaches the `Ready` state. + +A typical use case is to prevent Pods from being scheduled on a node before node initialization is complete. + +For more information, see the [taints](#taints) section. + ## System volume The system volume is a read-only volume that stores essential files for the Kubernetes system, such as runtime binaries, configuration files, and certificates. It is managed by the node and kept separate from application data. @@ -152,4 +176,13 @@ Depending on the type of node selected, we provide one or two types of volume. - **Local Storage:** your system is stored locally on the hypervisor of your node. - **Block Storage:** your system is remotely stored on a centralized and resilient cluster. -As a general guideline, your system volume disk should have a capacity of at least 20 GB to ensure enough space to store the necessary system files and configurations. \ No newline at end of file +As a general guideline, your system volume disk should have a capacity of at least 20 GB to ensure enough space to store the necessary system files and configurations. + +## Taints + +A taint is a node-level restriction that prevents a set of Pods from being scheduled, unless the Pods explicitly tolerate the node. +A taint's impact is determined by its `effect` value: + +- `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. +- `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. +- `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. \ No newline at end of file diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index d3d0c81d90..54e8af39f3 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -3,7 +3,7 @@ title: How to create a Kubernetes Kapsule cluster description: Learn how to create and manage a Scaleway Kubernetes Kapsule cluster, an advanced managed environment for containerized applications. tags: kubernetes kapsule-cluster kapsule dates: - validation: 2025-08-05 + validation: 2026-06-11 posted: 2021-05-31 --- import Requirements from '@macros/iam/requirements.mdx' @@ -58,20 +58,12 @@ This section outlines the settings for your cluster pools. You can configure as 1. Configure the following for each pool: * Choose an **Availability Zone** for the pool's nodes. - * Select the **node type** for the pool. - - Need advice on choosing a node type? [Learn more about Kubernetes nodes.](/kubernetes/concepts/#node) - + * Select the **[node type](/kubernetes/concepts/#node)** for the pool. * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. - * Configure **pool options**, including node count and whether to enable autoscaling. Options also include enabling autoheal and linking to a placement group, or you can retain default settings. - - - Unsure about the autoheal feature? [Learn more about autoheal.](/kubernetes/concepts/#autoheal) - - Need more information about placement groups? [Learn more about placement groups.](/instances/concepts/#placement-groups) - - * Enable full isolation, if required. - - Need more information on full isolation? [Learn more about full isolation.](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation) - + * Configure **pool options** or retain default settings. Configuration options include: + * **Operations** tab: Choose whether to enable autoscaling and [autoheal](/kubernetes/concepts/#autoheal), and whether to add [node labels](/kubernetes/concepts/#node-labels). + * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. + * **Scheduling & Placement** tab: Configure [startup taints](/kubernetes/concepts/#startup-taints) or [taints](/kubernetes/concepts/#taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. 2. Click **Add pool** to integrate the pool into the cluster. 3. To add more pools, click **Expand** and repeat the steps above. @@ -85,4 +77,4 @@ This section outlines the settings for your cluster pools. You can configure as To modify any element, click the **Edit** icon next to the respective configuration component. -2. Click **Create cluster** to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list. +2. Click **Submit** to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list. diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 33030ade36..31a22f331f 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -25,13 +25,16 @@ This documentation provides step-by-step instructions on how to manage Kubernete 1. Navigate to **Kubernetes** under the **Containers** section of the [Scaleway console](https://console.scaleway.com/) side menu. The Kubernetes dashboard displays. 2. Click the Kapsule cluster name you want to manage. The cluster information page displays. -3. Click the **Pools** tab to display the pool configuration of the cluster. +3. Click the **Pools & Nodes** tab to display the pool configuration of the cluster. 4. Click **Add pool** to launch the pool creation wizard. 5. Configure the pool: - Choose the **Availability Zone** for the pool. - Choose the commercial type of Instance for the pool. - Configure the system volume. - - Configure pool options. + - Configure pool options. Configuration options include: + - **Operations** tab: Choose whether to enable autoscaling and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/), and whether to add [node labels](/kubernetes/concepts/#node-labels). + - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. + - **Scheduling & Placement** tab: Configure [startup taints](/kubernetes/concepts/#startup-taints) or [taints](/kubernetes/concepts/#taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. - Enter the pool's details. 6. Click **Add pool**. The pool gets added to your basket. Repeat the steps above to configure additional pools. 7. Click **Review** once you have configured the desired pools. A summary of your configuration displays. @@ -45,7 +48,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete 1. Navigate to **Kubernetes** under the **Containers** section of the [Scaleway console](https://console.scaleway.com/) side menu. The Kubernetes dashboard displays. 2. Click the Kapsule cluster name you want to manage. The cluster information page displays. -3. Click the **Pools** tab to display the pool configuration of the cluster. +3. Click the **Pools & Nodes** tab to display the pool configuration of the cluster. 4. Click > **Edit** next to the node pool you want to edit. 5. Configure the pool: - Update pool tags @@ -57,6 +60,19 @@ This documentation provides step-by-step instructions on how to manage Kubernete Alternatively, you can use the Scaleway CLI to [update a node pool](https://cli.scaleway.com/k8s/#update-a-pool-in-a-cluster). +## How to configure startup taints or taints + +To configure startup taints or taints for the nodes in your pool: + +1. Select the **Startup taints** or the **Taints** checkbox. +2. Specify a key-value pair and an effect: + - Key: Acts as the identifier of the taint. + - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. + - Effect: Specifies what happens to Pods that do not tolerate the taint: + - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. + - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. + - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. + ## How to migrate existing workloads to a new Kubernetes Kapsule node pool @@ -70,7 +86,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete 2. Run `kubectl get nodes` to check that the new nodes are in a `Ready` state. 3. Cordon the nodes in the old node pool to prevent new Pods from being scheduled there. For each node, run: `kubectl cordon ` - You can use a selector on the pool name label to cordon or drain multiple nodes at the same time if your app allows it (ex. `kubectl cordon -l k8s.scaleway.com/pool-name=mypoolname`) + You can use a selector on the pool name label to cordon or drain multiple nodes at the same time if your app allows it (e.g., `kubectl cordon -l k8s.scaleway.com/pool-name=mypoolname`) 4. Drain the nodes to evict the Pods gracefully. - For each node, run: `kubectl drain --ignore-daemonsets --delete-emptydir-data` From 2faff01b47837f51d73c5d952b8557cdf8b11ab3 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 11 Jun 2026 18:29:53 +0200 Subject: [PATCH 02/22] feat(k8s): fix editorial details MTA-7162 --- pages/kubernetes/concepts.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index 427d98b392..dcc8ba6d16 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -70,7 +70,7 @@ Ingress is an API object that manages external access to the services in a clust ## Ingress controller -Kubernetes supports a high-level abstraction called ingress, which allows simple host or URL-based HTTP routing. Ingress is a core concept (in beta) of Kubernetes, but is always implemented by a third-party proxy. These implementations are known as ingress controllers. An ingress controller is responsible for reading the Ingress Resource information and processing that data accordingly. Different ingress controllers have extended the specification in different ways to support additional use cases. For more information, see our [dedicated how-to](/kubernetes/how-to/deploy-ingress-controller/) on deploying ingress controllers. +Kubernetes supports a high-level abstraction called Ingress, which allows simple host or URL-based HTTP routing. Ingress is a core concept (in beta) of Kubernetes, but is always implemented by a third-party proxy. These implementations are known as ingress controllers. An ingress controller is responsible for reading the Ingress Resource information and processing that data accordingly. Different ingress controllers have extended the specification in different ways to support additional use cases. For more information, see our [dedicated how-to](/kubernetes/how-to/deploy-ingress-controller/) on deploying ingress controllers. ## Kubeconfig @@ -90,7 +90,7 @@ Kubernetes Kapsule provides a managed environment for you to create, configure, ## Kubernetes Kosmos -Kubernetes Kosmos is the first-of-its-kind managed multi-cloud Kubernetes Engine. It allows the connection of Instances and servers from any Cloud provider to a single managed control plane hosted by Scaleway. Using Kubernetes in a multi-cloud cluster provides a high level of application redundancy by authorizing pod replication across different providers, regions, and Availability Zones. See our documentation to learn [how to create a Kubernetes Kosmos cluster](/kubernetes/how-to/create-kosmos-cluster/). +Kubernetes Kosmos is the first-of-its-kind managed multi-cloud Kubernetes Engine. It allows the connection of Instances and servers from any Cloud provider to a single managed control plane hosted by Scaleway. Using Kubernetes in a multi-cloud cluster provides a high level of application redundancy by authorizing Pod replication across different providers, regions, and Availability Zones. See our documentation to learn [how to create a Kubernetes Kosmos cluster](/kubernetes/how-to/create-kosmos-cluster/). [Learn more about the differences between Kapsule and Kosmos](/kubernetes/reference-content/understanding-differences-kapsule-kosmos/). @@ -155,7 +155,7 @@ The task of a ReplicaSet is to create and delete Pods as needed to reach the des ## Services -A service is an abstraction that defines a logical group of pageods that perform the same function, and a policy on how to access the node. The service provides a stable endpoint (IP address) and acts as a Load Balancer by redirecting requests to the different Pods in the service. The service abstraction allows the scaling out or replacement of dead Pods without making changes to the configuration of an application. +A service is an abstraction that defines a logical group of Pods that perform the same function, and a policy on how to access them. The service provides a stable endpoint (IP address) and acts as a Load Balancer by redirecting requests to the different Pods in the service. The service abstraction allows the scaling out or replacement of dead Pods without making changes to the configuration of an application. By default, services are only available using internally routable IP addresses, but can be exposed publicly. This can be done using the `NodePort` configuration, which opens a static port on each node's external networking interface. Alternatively, it is also possible to use the `load-balancer` service, which creates an external Load Balancer at a cloud provider using Kubernetes `load-balancer` integration. From 92f87be542b00f6876d3d0d01e11dc0d9f919f98 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Fri, 12 Jun 2026 17:22:01 +0200 Subject: [PATCH 03/22] feat(k8s): improvements MTA-7162 --- pages/kubernetes/concepts.mdx | 6 ++--- pages/kubernetes/how-to/create-cluster.mdx | 11 +++++----- pages/kubernetes/how-to/manage-node-pools.mdx | 22 +++++++++++-------- pages/kubernetes/menu.ts | 8 +++---- 4 files changed, 26 insertions(+), 21 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index dcc8ba6d16..bfde091cf8 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -161,11 +161,11 @@ This can be done using the `NodePort` configuration, which opens a static port o ## Startup taints -A startup taint is a temporary taint that is applied while a node is initializing. The taint is automatically removed as soon as the node reaches the `Ready` state. +A startup taint is a temporary taint that is applied while a node is initializing. The taint remains in place until a controller or you remove it. For example, Cilium adds a default startup taint, and when Cilium completes initialization, Cilium's controller automatically removes that taint, allowing workloads to be scheduled. -A typical use case is to prevent Pods from being scheduled on a node before node initialization is complete. +You can use startup taints to prevent any workload from being placed on a node before node setup is complete. -For more information, see the [taints](#taints) section. +For more background, see the definition of [taints](#taints). ## System volume diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index 54e8af39f3..5c35a49465 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -63,13 +63,14 @@ This section outlines the settings for your cluster pools. You can configure as * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Choose whether to enable autoscaling and [autoheal](/kubernetes/concepts/#autoheal), and whether to add [node labels](/kubernetes/concepts/#node-labels). * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - * **Scheduling & Placement** tab: Configure [startup taints](/kubernetes/concepts/#startup-taints) or [taints](/kubernetes/concepts/#taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. -2. Click **Add pool** to integrate the pool into the cluster. -3. To add more pools, click **Expand** and repeat the steps above. + * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. + * Enter the pool's details. + * Add [node labels](/kubernetes/concepts/#node-labels), if required. +2. To add more pools, click **Add pool** and repeat the steps above. - You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click **Remove** within the respective pool. + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. -4. Once all pools are configured, click **Review** to finalize your cluster setup. +3. Once all pools are configured, click **Review**, then click **Submit** to finalize your cluster setup. ## Review configuration diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 31a22f331f..d858bb4fd3 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -3,7 +3,7 @@ title: How to manage Kubernetes Kapsule node pools description: Learn how to manage Kubernetes Kapsule node pools from the Scaleway console. tags: kubernetes kapsule kosmos dates: - validation: 2025-06-23 + validation: 2026-06-12 posted: 2025-06-23 --- import Requirements from '@macros/iam/requirements.mdx' @@ -25,6 +25,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete 1. Navigate to **Kubernetes** under the **Containers** section of the [Scaleway console](https://console.scaleway.com/) side menu. The Kubernetes dashboard displays. 2. Click the Kapsule cluster name you want to manage. The cluster information page displays. +3. Click your existing pool. The pool overview page displays. 3. Click the **Pools & Nodes** tab to display the pool configuration of the cluster. 4. Click **Add pool** to launch the pool creation wizard. 5. Configure the pool: @@ -32,11 +33,15 @@ This documentation provides step-by-step instructions on how to manage Kubernete - Choose the commercial type of Instance for the pool. - Configure the system volume. - Configure pool options. Configuration options include: - - **Operations** tab: Choose whether to enable autoscaling and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/), and whether to add [node labels](/kubernetes/concepts/#node-labels). + - **Operations** tab: Choose whether to enable autoscaling and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - - **Scheduling & Placement** tab: Configure [startup taints](/kubernetes/concepts/#startup-taints) or [taints](/kubernetes/concepts/#taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. + - **Scheduling & Placement** tab: Configure [startup taints](#how-to-configure-startup-taints-or-taints) or [taints](#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. - Enter the pool's details. -6. Click **Add pool**. The pool gets added to your basket. Repeat the steps above to configure additional pools. + - Add [node labels](/kubernetes/concepts/#node-labels), if required. +6. To add more pools, click **Add pool** and repeat the steps above. + + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. + 7. Click **Review** once you have configured the desired pools. A summary of your configuration displays. 8. Verify your configuration and click **Submit** to add the pool(s) to your Kapsule cluster. @@ -62,12 +67,11 @@ This documentation provides step-by-step instructions on how to manage Kubernete ## How to configure startup taints or taints -To configure startup taints or taints for the nodes in your pool: - -1. Select the **Startup taints** or the **Taints** checkbox. -2. Specify a key-value pair and an effect: +1. Navigate to the page of the pool that you wish to configure. Once there, click the **Scheduling & Placement** tab. +2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. +3. Specify a key-value pair and an effect: - Key: Acts as the identifier of the taint. - - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. + - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. {/* Is this correct? Can we give an example? */} - Effect: Specifies what happens to Pods that do not tolerate the taint: - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. diff --git a/pages/kubernetes/menu.ts b/pages/kubernetes/menu.ts index 4c0db1d8fb..7abef6af8d 100644 --- a/pages/kubernetes/menu.ts +++ b/pages/kubernetes/menu.ts @@ -26,6 +26,10 @@ export const kubernetesMenu = { label: 'Manage a Kapsule cluster', slug: 'edit-cluster', }, + { + label: 'Manage Kapsule node pools', + slug: 'manage-node-pools', + }, { label: 'Create a Kosmos cluster', slug: 'create-kosmos-cluster', @@ -42,10 +46,6 @@ export const kubernetesMenu = { label: 'Connect to a cluster with kubectl', slug: 'connect-cluster-kubectl', }, - { - label: 'Manage Kapsule node pools', - slug: 'manage-node-pools', - }, { label: 'Deploy an image from Container Registry', slug: 'deploy-image-from-container-registry', From 7936761e27333e4f534765e96b4eb8d4e241ca2b Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Fri, 12 Jun 2026 17:57:06 +0200 Subject: [PATCH 04/22] feat(k8s): add taints, startup taints, node labels MTA-7162 --- pages/kubernetes/how-to/create-cluster.mdx | 4 +- .../how-to/create-kosmos-cluster.mdx | 40 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index 5c35a49465..895858616c 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -61,7 +61,7 @@ This section outlines the settings for your cluster pools. You can configure as * Select the **[node type](/kubernetes/concepts/#node)** for the pool. * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. * Configure **pool options** or retain default settings. Configuration options include: - * **Operations** tab: Choose whether to enable autoscaling and [autoheal](/kubernetes/concepts/#autoheal), and whether to add [node labels](/kubernetes/concepts/#node-labels). + * **Operations** tab: Configure node count and choose whether to enable autoscaling and [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. * Enter the pool's details. @@ -70,7 +70,7 @@ This section outlines the settings for your cluster pools. You can configure as You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. -3. Once all pools are configured, click **Review**, then click **Submit** to finalize your cluster setup. +3. Once all pools are configured, click **Review**. ## Review configuration diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index f4cad40b3a..f4dd4b740c 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -3,7 +3,7 @@ title: How to create a Kubernetes Kosmos cluster description: Learn how to create a Kubernetes Kosmos cluster with managed Scaleway Instances and external nodes from any cloud provider. tags: kubernetes kosmos kosmos-cluster cluster dates: - validation: 2025-10-20 + validation: 2026-06-12 posted: 2021-05-31 --- import Requirements from '@macros/iam/requirements.mdx' @@ -38,7 +38,7 @@ Kubernetes Kosmos provides an alternative to a classic [Kubernetes Kapsule](/kub * Specify the Kubernetes **version** for your cluster. 5. Provide a **name** for the cluster. Optionally, you can add a description and tags for better organization. -6. Click **Configure pools** to proceed. +6. If you want to add pools, click **Configure pools** to proceed. If you do not wish to add any pools, click **[Review](#review-configuration)**. ## Pool configuration @@ -46,28 +46,28 @@ This section outlines the settings for your cluster pools. You can configure as 1. Choose the pool type. Available types are **Scaleway** or **multi-cloud**. 2. Specify the following for each pool: - * For **Scaleway** pools: - * Choose the **Availability Zone** for the pool's nodes. - * Select the **node type** for the pool. - * Configure **pool options**, including node count and whether to enable autoscaling. Options also include enabling autoheal and linking to a placement group, or you can retain default settings. - - Unsure about the autoheal feature? [Learn more about autoheal.](/kubernetes/concepts/#autoheal) + * For **Scaleway** pools: + * Choose the **Availability Zone** for the pool's nodes. + * Select the **node type** for the pool. + * Configure **pool options** or retain default settings. Configuration options include: + * **Operations** tab: Configure node count and choose whether to enable autoscaling and [autoheal](/kubernetes/concepts/#autoheal). + * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. + * Enter the pool's details. + * Add [node labels](/kubernetes/concepts/#node-labels), if required. + * For **multi-cloud** pools: + * Specify the external nodes to be added to the pool. + + Note that autoscaling and autohealing are not available for multi-cloud pools. - * For **multi-cloud** pools: - * Specify the external nodes to be added to the pool. - - Note that autoscaling and autohealing are not available for multi-cloud pools. - -2. Click **Add pool** to integrate the pool into the cluster. -3. To add more pools, click **Expand** and repeat the steps above. - - You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click **Remove** within the respective pool. - -4. Once all pools are configured, click **Review** to finalize your cluster setup. +3. To add more pools, click **Add pool** and repeat the steps above. + + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. + +4. Once all pools are configured, click **Review**. ## Review configuration -1. Review the configuration details of your Kubernetes cluster and its pools. +1. Review the configuration details of your Kubernetes cluster and its pools (if any). To modify any element, click the **Edit** icon next to the respective configuration component. From f37ae44ac9ff783142da04e8089968e23b62a660 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Mon, 15 Jun 2026 09:33:06 +0200 Subject: [PATCH 05/22] feat(k8s): add taints, startup taints, node labels MTA-7162 --- pages/kubernetes/concepts.mdx | 2 +- .../how-to/create-kosmos-cluster.mdx | 3 +- .../kubernetes/how-to/edit-kosmos-cluster.mdx | 22 +++-- pages/kubernetes/quickstart.mdx | 95 +++++++++---------- 4 files changed, 61 insertions(+), 61 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index bfde091cf8..b73b9816e3 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -161,7 +161,7 @@ This can be done using the `NodePort` configuration, which opens a static port o ## Startup taints -A startup taint is a temporary taint that is applied while a node is initializing. The taint remains in place until a controller or you remove it. For example, Cilium adds a default startup taint, and when Cilium completes initialization, Cilium's controller automatically removes that taint, allowing workloads to be scheduled. +A startup taint is a temporary taint that is applied while a node is initializing. The taint remains in place until a controller or you remove it. For example, Cilium adds a default startup taint, and when initialization has completed, Cilium's controller automatically removes that taint, allowing workloads to be scheduled. You can use startup taints to prevent any workload from being placed on a node before node setup is complete. diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index f4dd4b740c..1d9897a364 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -44,11 +44,12 @@ Kubernetes Kosmos provides an alternative to a classic [Kubernetes Kapsule](/kub This section outlines the settings for your cluster pools. You can configure as many pools for your cluster as you require. -1. Choose the pool type. Available types are **Scaleway** or **multi-cloud**. +1. Choose the pool type. Available types are **Scaleway** or **Multi-cloud**. 2. Specify the following for each pool: * For **Scaleway** pools: * Choose the **Availability Zone** for the pool's nodes. * Select the **node type** for the pool. + * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Configure node count and choose whether to enable autoscaling and [autoheal](/kubernetes/concepts/#autoheal). * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. diff --git a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx index 27a2c4b7fb..6d3aed2bf4 100644 --- a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx @@ -13,10 +13,12 @@ import image2 from './assets/scaleway-kosmos-add-application.webp' import image3 from './assets/scaleway-kosmos-generate-api-key.webp' -You can add nodes and pools to your Kosmos cluster from the [Scaleway console](https://console.scaleway.com) or by using the [API](https://www.scaleway.com/en/developers/). Here, we show you how to edit from the console. +You can add nodes and pools to your Kosmos cluster from the [Scaleway console](https://console.scaleway.com) or by using the [API](https://www.scaleway.com/en/developers/). Here, we show you how to edit your cluster from the console. - This document concerns the management of a Kosmos cluster. For a Kapsule cluster, refer to the [corresponding documentation for Kapsule](/kubernetes/how-to/edit-cluster/) + This document concerns the management of a Kosmos cluster. For a Kapsule cluster, refer to the corresponding documentation for Kapsule: + - [How to manage a Kubernetes Kapsule cluster](/kubernetes/how-to/edit-cluster/) + - [How to manage Kubernetes Kapsule node pools](/kubernetes/how-to/manage-node-pools/) @@ -32,23 +34,23 @@ You can add nodes and pools to your Kosmos cluster from the [Scaleway console](h ## How to add a multi-cloud pool to your Kosmos cluster -A multi-cloud pool allows you to attach external Instances and servers to your cluster. Instances added to the same pool do not need to share the same configuration, nor do they have to be managed by the same Cloud provider. +A multi-cloud pool allows you to attach external Instances and servers to your cluster. Instances added to the same pool do not need to share the same configuration, nor do they have to be managed by the same cloud provider. 1. Click **Kubernetes** in the Containers section of the side menu. The Kubernetes creation page displays. 2. From the drop-down menu, select the geographical region you want to manage. 3. Click the cluster you want to add a pool to. -4. Click the **Pools** tab. +4. Click the **Pools & Nodes** tab. 5. Click the **+ Add pool** button. The pool creation wizard displays. 6. Complete the following steps of the wizard: * Choose a **pool type**. This can be a Scaleway Kubernetes Kapsule pool or a Kubernetes multi-cloud pool. This document concerns the addition of a multi-cloud pool. - * A **name** for the pool and, optionally, a description and tags. -7. Click **Add pool** to finish. + * Add a **name** for the pool and, optionally, a description and tags. +7. Click **Review**, then click **Submit**. ## How to add external nodes to your multi-cloud pool In order to add external nodes to your multi-cloud cluster, you must first [create a multi-cloud pool](#how-to-add-a-multi-cloud-pool-to-your-kosmos-cluster). For security reasons, it is recommended to configure an API key with the `KubernetesExternalNodeRegister` IAM permission set. -1. Click **IAM & API keys** on the top-right drop-down menu of the Scaleway console. The [Identity and Access Management dashboard](https://console.scaleway.com/iam/) displays. +1. Click **IAM & API keys** in the top-right drop-down menu of the Scaleway console. The [Identity and Access Management dashboard](https://console.scaleway.com/iam/) displays. 2. [Create an IAM Policy](/iam/how-to/create-policy/) with the `KubernetesExternalNodeRegister` PermissionSet only. 3. [Create an IAM Application](/iam/how-to/create-application/) linked with the policy created in the previous step. @@ -60,7 +62,7 @@ In order to add external nodes to your multi-cloud cluster, you must first [crea 5. Click **Kubernetes** in the Compute section of the side menu. The Kubernetes creation page displays. 6. Click the cluster you want to add external nodes to. -7. Click **Nodes** on the tab. +7. Click the **Pools & Nodes** tab. 8. Click **+ Add external node**. The instructions for adding an external node display. ## How to configure external nodes to join the cluster @@ -97,7 +99,7 @@ In order to add external nodes to your multi-cloud cluster, you must first [crea 1. Click **Kubernetes** in the Compute section of the side menu. The Kubernetes creation page displays. 2. From the drop-down menu, select the geographical region you want to manage. 3. Click the cluster in question. -4. Click the **Nodes** tab. +4. Click the **Pools & Nodes** tab. 5. Click next to the node you want to edit, then click **Delete** on the menu. A pop-up asks you to confirm the action. 6. Click **Delete node**. @@ -118,6 +120,6 @@ The new `k8s-agent` upgrades the node in-place without adding a new "virtual" no The Kubernetes version of the existing nodes in your multi-cloud pool can be upgraded in place. Your workload will theoretically keep running during the upgrade, but it is best to drain the node before the upgrade. -1. In the Pools section of your Kosmos cluster, click **Upgrade** next to the node pool. This will not cause any of your existing nodes to upgrade, but will instead ensure that any new nodes added to the pool will start up with the newer version. +1. In the **Pools & Nodes** section of your Kosmos cluster, click **Upgrade** next to the node pool. This will not cause any of your existing nodes to upgrade, but will instead ensure that any new nodes added to the pool will start up with the newer version. 2. Download the latest version of the `k8s-agent` and relaunch it as you would do for a fresh node install. Refer to [How to configure external nodes to join the cluster](#how-to-configure-external-nodes-to-join-the-cluster) for the installation steps. 3. The node will upgrade in place and rejoin the cluster with the new Kubernetes version. diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index ad52023605..3f4ba7010f 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -9,7 +9,7 @@ dates: import Requirements from '@macros/iam/requirements.mdx' -Scaleway Kubernetes [Kapsule](/kubernetes/concepts/#kubernetes-kapsule) and [Kosmos](/kubernetes/concepts/#kubernetes-kosmos) provide a managed environment to create, configure, and run a cluster of preconfigured machines for containerized applications. This allows you to create Kubernetes clusters without the complexity of managing the infrastructure. You can create a Kapsule cluster to your required specifications, edit it after creation, and delete it all when you no longer need it. You might also want to check out our how-to on [deploying an image on your cluster](/kubernetes/how-to/deploy-image-from-container-registry/). +Scaleway Kubernetes [Kapsule](/kubernetes/concepts/#kubernetes-kapsule) and [Kosmos](/kubernetes/concepts/#kubernetes-kosmos) provide a managed environment to create, configure, and run a cluster of preconfigured machines for containerized applications. This allows you to create Kubernetes clusters without the complexity of managing the infrastructure. You can create a Kapsule cluster to match your required specifications, edit it after creation, and delete it all when you no longer need it. You might also want to check out our how-to on [deploying an image on your cluster](/kubernetes/how-to/deploy-image-from-container-registry/). ## Console overview Discover the Kubernetes interface on the Scaleway console. @@ -20,14 +20,10 @@ Discover the Kubernetes interface on the Scaleway console. - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -## How to create a Kubernetes cluster +## How to create a Kubernetes Kapsule cluster ### Cluster configuration - - This guide covers the creation of a **Kubernetes Kapsule** cluster. For Kubernetes Kosmos clusters, refer to the [Kubernetes Kosmos documentation](/kubernetes/how-to/create-kosmos-cluster/). - - 1. Navigate to **Kubernetes** under the **Containers** section of the [Scaleway console](https://console.scaleway.com/) side menu. The Kubernetes dashboard displays. 2. From the drop-down menu, select the geographical region where you want to create your cluster. 3. Click **Create cluster** to launch the cluster creation wizard. @@ -66,21 +62,14 @@ This section outlines the settings for your cluster pools. You can configure as Need advice on choosing a node type? [Learn more about Kubernetes nodes.](/kubernetes/concepts/#node) * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. - * Configure **pool options**, including node count and whether to enable autoscaling. Options also include enabling autoheal and linking to a placement group, or you can retain default settings. - - - Unsure about the autoheal feature? [Learn more about autoheal.](/kubernetes/concepts/#autoheal) - - Need more information about placement groups? [Learn more about placement groups.](/instances/concepts/#placement-groups) - - * Enable full isolation, if required. - - Need more information on full isolation? [Learn more about full isolation.](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation) - -2. Click **Add pool** to integrate the pool into the cluster. -3. To add more pools, click **Expand** and repeat the steps above. + * Configure **pool options**, including node count and whether to enable autoscaling. Options also include enabling [autoheal](/kubernetes/concepts/#autoheal) and [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), linking to a [placement group](/instances/concepts/#placement-groups), or configuring [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints). You can also choose to retain default settings. + * Enter the pool's details. + * Add [node labels](/kubernetes/concepts/#node-labels), if required. +2. To add more pools, click **Add pool** and repeat the steps above. - You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click **Remove** within the respective pool. + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. -4. Once all pools are configured, click **Review** to finalize your cluster setup. +3. Once all pools are configured, click **Review** to finalize your cluster setup. ### Review configuration @@ -88,45 +77,28 @@ This section outlines the settings for your cluster pools. You can configure as To modify any element, click the **Edit** icon next to the respective configuration component. -2. Click **Create cluster** to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list. +2. Click **Submit** to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list. You can now download the `kubeconfig` file for your cluster and learn [how to connect to a Kubernetes Kapsule cluster with kubectl](/kubernetes/how-to/connect-cluster-kubectl/). -## How to add a Scaleway pool to a Kubernetes cluster - -1. Click **Kubernetes** in the **Containers** section of the side menu. The Kubernetes dashboard displays. -2. From the drop-down menu, select the geographical region you want to manage. -3. Click next to the cluster you want to edit. Click **Add pool** in the menu. The pool configuration wizard displays. -4. This page concerns the configuration of your cluster. Enter the following information: - - The geographical **region** of the pool. - - The **node type** for the pool. - - If required, configure the **pool options** like autoscaling, autohealing, or link the pool to an existing placement group. - - The **name** for the pool. Optionally, you can assign tags to it. -5. Click **Add pool**. -## How to add a multi-cloud pool to a Kubernetes cluster +## How to create a Kubernetes Kosmos cluster -1. Click **Kubernetes** in the **Containers** section of the side menu. The Kubernetes dashboard displays. -2. From the drop-down menu, select the geographical region you want to manage. -3. Click next to the pool you want to edit. Click **Add pool** in the menu. The pool configuration wizard displays. -4. Click **Add pool**. - -### How to add external nodes to a multi-cloud pool +### Cluster configuration 1. Click **Kubernetes** in the **Containers** section of the [Scaleway console](https://console.scaleway.com) side menu. The Kubernetes dashboard displays. 2. From the drop-down menu, select the geographical region you want to manage. -3. Click **Create cluster**. The first page of the cluster creation wizard displays. This concerns the configuration of your cluster. +3. Click **Create cluster**. The first page of the cluster creation wizard displays. 4. Complete the following steps of the wizard: - * Choose a **cluster type**. Select **Kubernetes Kosmos** to create a cluster, that allows you to attach a compute Instance or dedicated server from any Cloud provider to a Scaleway Kubernetes control plane. + * Choose a **cluster type**. Select **Kubernetes Kosmos** to create a cluster that allows you to attach a compute Instance or dedicated server from any Cloud provider to a Scaleway Kubernetes control plane. This document concerns the creation and management of a **Kubernetes Kosmos** cluster. To create a Kubernetes Kapsule cluster, refer to the [Kubernetes Kapsule documentation](/kubernetes/how-to/create-cluster/). - * The geographical **region** of the cluster. - * The Kubernetes **version** for the cluster. - * A **name** for the cluster and, optionally, a description and tags. -5. Click **Create cluster** to create your cluster without any Scaleway pools. - If you choose this option, your cluster and its control plane are deployed, and you are taken to the cluster's overview tab. Continue to [How to manage your Kubernetes Kosmos cluster](/kubernetes/how-to/edit-kosmos-cluster/) to find out how to add multi-cloud pools to your cluster. + * Confirm the geographical **region** of the cluster. + * Select the Kubernetes **version** for the cluster. + * Add **name** for the cluster and, optionally, a description, node labels, and tags. +5. Click **Configure pools** to proceed. + - Alternatively, click **Add and configure a pool** to add a pool of Scaleway nodes to your cluster. In this case, the second page of the cluster creation wizard displays. This concerns the settings for your pool. 6. Enter the following information to configure a Scaleway pool: * The **Availability Zone** in which all your pool's nodes will be created. * The **node type** you need. @@ -138,9 +110,34 @@ This section outlines the settings for your cluster pools. You can configure as Bear in mind that we **do not provide support on external nodes**. - - For more information about adding external nodes to your Kosmos cluster, refer to our dedicated [How to manage a Kosmos cluster](/kubernetes/how-to/edit-kosmos-cluster/) documentation. - + +### Pool configuration + +In a Kosmos cluster, you can add either: +- **Scaleway** pools composed exclusively of Scaleway Instances, or +- **Multi-cloud** pools built from external Instances and servers + +This section explains how to add a Scaleway pool. + +For instructions on creating a Multi‑cloud pool and attaching external nodes to your Kosmos cluster, refer to our [dedicated documentation](/kubernetes/how-to/edit-kosmos-cluster/). + +To add a Scaleway pool to your Kosmos cluster: + +1. Choose the **Scaleway** pool type. +2. Configure your pool: + - Select the geographical **region** of the pool. + - Select the **node type** for the pool. + - If required, configure the **pool options** such as autoscaling, autohealing, taints, or link the pool to an existing placement group. + - Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/concepts/#node-labels) to it. +3. Click **Review**. + +### Review configuration + +1. Review the configuration details of your Kubernetes cluster and its pools (if any). + + To modify any element, click the **Edit** icon next to the respective configuration component. + +2. Click **Submit** to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list. ## How to edit a Kubernetes cluster From 637a9c32aa5538ea39cec9d629bab5118a2b5be9 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Mon, 15 Jun 2026 17:58:41 +0200 Subject: [PATCH 06/22] feat(k8s): add taints, startup taints, node labels MTA-7162 --- pages/kubernetes/concepts.mdx | 11 +-- pages/kubernetes/how-to/create-cluster.mdx | 12 ++-- .../how-to/create-kosmos-cluster.mdx | 43 ++++++++++-- pages/kubernetes/how-to/edit-cluster.mdx | 8 +-- .../kubernetes/how-to/edit-kosmos-cluster.mdx | 17 ++--- pages/kubernetes/how-to/manage-node-pools.mdx | 67 +++++++++++++------ pages/kubernetes/quickstart.mdx | 56 ++++++++-------- 7 files changed, 130 insertions(+), 84 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index b73b9816e3..d9f35f6edc 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -119,19 +119,12 @@ Kubernetes runs your workload by placing containers into Pods to run on nodes. A ## Node labels -Node labels are key‑value pairs attached to a node. By referencing those labels in a Pod spec you can: +Node labels are key‑value pairs you can attach to a node to enable you to implement Pod scheduling constraints. By referencing your node labels in a Pod specification, you can: - **Require** the Pod to run only on nodes that match the label(s), or - **Prefer** the Pod to run on nodes that match the label(s). -To express those constraints, you specify one or both of the following node selection mechanisms for a Pod: - -- `nodeSelector`: The scheduler places the Pod only on nodes that contain all specified labels. -- `nodeAffinity`: It lets you define how strict label‑based rules are: - - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. - - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. - -These constraints are evaluated against every node in a node pool during scheduling. +The constraints are evaluated against every node in the node pool during scheduling. ## Pods diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index 895858616c..a09ed0145c 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -12,8 +12,8 @@ import Requirements from '@macros/iam/requirements.mdx' Scaleway Kubernetes Kapsule provides a managed environment for creating, configuring, and operating a cluster of preconfigured nodes for containerized applications. This service allows you to deploy [Kubernetes](https://kubernetes.io) clusters without the complexity of managing the underlying infrastructure. Key benefits include: - * Dynamic scaling of Pods based on workload demands. - * Simplified cluster management via [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/), the Kubernetes command-line tool. + * Dynamic scaling of Pods based on workload demands + * Simplified cluster management via [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/), the Kubernetes command-line tool To facilitate cluster administration, Scaleway provides a `.kubeconfig` file, enabling you to manage your cluster locally using `kubectl`. This tool is essential for executing commands against Kubernetes clusters. @@ -44,7 +44,7 @@ To facilitate cluster administration, Scaleway provides a `.kubeconfig` file, en * Specify the **Kubernetes version** for your cluster. 5. Enter the **cluster's details**. Provide a name for the cluster. Optionally, you can add a description and tags for better organization. -6. Configure the **Private Network** for the cluster to ensure secure and isolated network communication. Each cluster is auto-configured with a /22 IP subnet. Click **Select Private Network** to: +6. Configure the **Private Network** for the cluster to ensure secure and isolated network communication. Each cluster is auto-configured with a /22 IP subnet. Click **Select a Private Network** to: * Attach an existing Private Network (VPC) within the same Availability Zone from the drop-down menu. * Attach a new Private Network to the cluster. @@ -61,11 +61,11 @@ This section outlines the settings for your cluster pools. You can configure as * Select the **[node type](/kubernetes/concepts/#node)** for the pool. * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. * Configure **pool options** or retain default settings. Configuration options include: - * **Operations** tab: Configure node count and choose whether to enable autoscaling and [autoheal](/kubernetes/concepts/#autoheal). + * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. - * Enter the pool's details. - * Add [node labels](/kubernetes/concepts/#node-labels), if required. + * Enter the pool's name and optional tags. + * Add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. 2. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index 1d9897a364..d2ac85f9cf 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -38,7 +38,7 @@ Kubernetes Kosmos provides an alternative to a classic [Kubernetes Kapsule](/kub * Specify the Kubernetes **version** for your cluster. 5. Provide a **name** for the cluster. Optionally, you can add a description and tags for better organization. -6. If you want to add pools, click **Configure pools** to proceed. If you do not wish to add any pools, click **[Review](#review-configuration)**. +6. If you want to add pools, click **Configure pools (optional)** to proceed. If you do not wish to add any pools, click **[Review](#review-configuration)**. ## Pool configuration @@ -51,10 +51,10 @@ This section outlines the settings for your cluster pools. You can configure as * Select the **node type** for the pool. * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. * Configure **pool options** or retain default settings. Configuration options include: - * **Operations** tab: Configure node count and choose whether to enable autoscaling and [autoheal](/kubernetes/concepts/#autoheal). - * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. - * Enter the pool's details. - * Add [node labels](/kubernetes/concepts/#node-labels), if required. + * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). + * **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. + * Enter the pool's name and optional tags. + * Add [node labels](#how-to-configure-node-labels), if required. * For **multi-cloud** pools: * Specify the external nodes to be added to the pool. @@ -66,10 +66,41 @@ This section outlines the settings for your cluster pools. You can configure as 4. Once all pools are configured, click **Review**. +### How to configure startup taints or taints + +1. On the page of the pool that you wish to configure, click the **Scheduling & Placement** tab. +2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. +3. Specify a key-value pair and an effect: + - Key: Acts as the identifier of the taint. + - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. {/* Is this correct? Can we give an example? */} + - Effect: Specifies what happens to Pods that do not tolerate the taint: + - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. + - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. + - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. + + +### How to configure node labels + +By attaching nodes to a pool, you can: + +- **Require** Pods to run only on nodes that match the label(s), or +- **Prefer** Pods to run on nodes that match the label(s). + +1. On the page of the pool where you wish to define node labels, go to section **Pool details** > **Node labels**. +2. Specify a key and a value. + +To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: + +- `nodeSelector`: The scheduler places the Pod only on nodes that contain all specified labels. +- `nodeAffinity`: It lets you define how strict label‑based rules are: + - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. + - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. + + ## Review configuration 1. Review the configuration details of your Kubernetes cluster and its pools (if any). To modify any element, click the **Edit** icon next to the respective configuration component. -2. Click **Create cluster** to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list. +2. Click **Submit** to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list. diff --git a/pages/kubernetes/how-to/edit-cluster.mdx b/pages/kubernetes/how-to/edit-cluster.mdx index 9fba378dd1..bc3830d604 100644 --- a/pages/kubernetes/how-to/edit-cluster.mdx +++ b/pages/kubernetes/how-to/edit-cluster.mdx @@ -9,7 +9,7 @@ dates: import Requirements from '@macros/iam/requirements.mdx' -You can manage and edit the parameters of your cluster from the [Scaleway console](https://console.scaleway.com) or by using the [API](https://www.scaleway.com/en/developers/). Here, we show you how to edit from the console. +You can manage and edit the parameters of your cluster from the [Scaleway console](https://console.scaleway.com) or by using the [API](https://www.scaleway.com/en/developers/). Here, we show you how to edit a cluster from the console. @@ -23,9 +23,9 @@ You can manage and edit the parameters of your cluster from the [Scaleway consol 2. From the drop-down menu, select the geographical region you want to manage. 3. Click next to the cluster you want to edit to display the options menu: The following information and configuration options are available for your cluster: - * **Add a pool**: Add additional computing resources to the cluster - * **Download kubeconfig**: Download the `.kubeconfig` file of the cluster - * **Delete**: Delete the cluster + * **[Add a pool](/kubernetes/quickstart/#pool-configuration)**: Add additional computing resources to the cluster + * **Download [kubeconfig](/kubernetes/concepts/#kubeconfig)**: Download the `.kubeconfig` file of the cluster + * **[Delete](/kubernetes/quickstart/#how-to-delete-a-kubernetes-cluster)**: Delete the cluster Click the cluster name to see the cluster information and have a complete overview of its resources and settings. diff --git a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx index 6d3aed2bf4..43ae347bcc 100644 --- a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx @@ -22,7 +22,7 @@ You can add nodes and pools to your Kosmos cluster from the [Scaleway console](h - Nodes from multi-cloud pools cannot benefit from the autohealing and autoscaling features of Scaleway Kapsule pool. Since Scaleway does not have access to your other providers’ accounts, it is not possible to carry out actions such as automatic deletion, creation, and reboot of external nodes. + Nodes from multi-cloud pools cannot benefit from the autohealing and autoscaling features of a Scaleway Kapsule pool. Since Scaleway does not have access to your other providers’ accounts, it is not possible to carry out actions such as automatic deletion, creation, and reboot of external nodes. @@ -42,8 +42,8 @@ A multi-cloud pool allows you to attach external Instances and servers to your c 4. Click the **Pools & Nodes** tab. 5. Click the **+ Add pool** button. The pool creation wizard displays. 6. Complete the following steps of the wizard: - * Choose a **pool type**. This can be a Scaleway Kubernetes Kapsule pool or a Kubernetes multi-cloud pool. This document concerns the addition of a multi-cloud pool. - * Add a **name** for the pool and, optionally, a description and tags. + * Choose the **Multi-cloud** pool type. + * Add a **name** for the pool and, optionally, a description and tags. {/* Are node labels available for Kosmos multi-cloud? */} 7. Click **Review**, then click **Submit**. ## How to add external nodes to your multi-cloud pool @@ -60,10 +60,11 @@ In order to add external nodes to your multi-cloud cluster, you must first [crea Identity and Access Management (IAM) allows you to share access to the management of your Scaleway resources and Organization settings, in a controlled and secure manner. For more information, refer to our [dedicated IAM documentation](/iam/quickstart/). -5. Click **Kubernetes** in the Compute section of the side menu. The Kubernetes creation page displays. -6. Click the cluster you want to add external nodes to. -7. Click the **Pools & Nodes** tab. -8. Click **+ Add external node**. The instructions for adding an external node display. +5. Click **Kubernetes** in the **Containers** section of the side menu. +6. From the drop-down menu, select the geographical region where your clusters are. The list of your Kubernetes clusters displays. +7. Click the cluster you want to add external nodes to. +8. Click the **Pools & Nodes** tab. +9. Click **+ Add external node**. The instructions for adding an external node display. ## How to configure external nodes to join the cluster @@ -96,7 +97,7 @@ In order to add external nodes to your multi-cloud cluster, you must first [crea ## How to detach nodes from your multi-cloud pool -1. Click **Kubernetes** in the Compute section of the side menu. The Kubernetes creation page displays. +1. Click **Kubernetes** under the **Containers** section of the [Scaleway console](https://console.scaleway.com/) side menu. 2. From the drop-down menu, select the geographical region you want to manage. 3. Click the cluster in question. 4. Click the **Pools & Nodes** tab. diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index d858bb4fd3..d60d03e436 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -25,19 +25,18 @@ This documentation provides step-by-step instructions on how to manage Kubernete 1. Navigate to **Kubernetes** under the **Containers** section of the [Scaleway console](https://console.scaleway.com/) side menu. The Kubernetes dashboard displays. 2. Click the Kapsule cluster name you want to manage. The cluster information page displays. -3. Click your existing pool. The pool overview page displays. 3. Click the **Pools & Nodes** tab to display the pool configuration of the cluster. 4. Click **Add pool** to launch the pool creation wizard. 5. Configure the pool: - Choose the **Availability Zone** for the pool. - - Choose the commercial type of Instance for the pool. - - Configure the system volume. + - Choose the commercial type of Instance (**node type**) for the pool. + - Configure the **system volume**. - Configure pool options. Configuration options include: - - **Operations** tab: Choose whether to enable autoscaling and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). + - **Operations** tab: Choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - - **Scheduling & Placement** tab: Configure [startup taints](#how-to-configure-startup-taints-or-taints) or [taints](#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. - - Enter the pool's details. - - Add [node labels](/kubernetes/concepts/#node-labels), if required. + - **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. + - Enter the pool's name and optional tags. + - Add [node labels](#how-to-configure-node-labels), if required. 6. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. @@ -49,6 +48,37 @@ This documentation provides step-by-step instructions on how to manage Kubernete Alternatively, you can use the Scaleway CLI to [create node pools](https://cli.scaleway.com/k8s/#create-a-new-pool-in-a-cluster). +## How to configure startup taints or taints + +1. Navigate to the page of the pool that you wish to configure. Once there, click the **Scheduling & Placement** tab. +2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. +3. Specify a key-value pair and an effect: + - Key: Acts as the identifier of the taint. + - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. {/* Is this correct? Can we give an example? */} + - Effect: Specifies what happens to Pods that do not tolerate the taint: + - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. + - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. + - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. + + +## How to configure node labels + +By attaching nodes to a pool, you can: + +- **Require** Pods to run only on nodes that match the label(s), or +- **Prefer** Pods to run on nodes that match the label(s). + +1. Navigate to the page of the pool where you wish to define node labels. +2. In section **Pool details** > **Node labels**, specify a key and a value. + +To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: + +- `nodeSelector`: The scheduler places the Pod only on nodes that contain all specified labels. +- `nodeAffinity`: It lets you define how strict label‑based rules are: + - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. + - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. + + ## How to edit an existing Kubernetes Kapsule node pool 1. Navigate to **Kubernetes** under the **Containers** section of the [Scaleway console](https://console.scaleway.com/) side menu. The Kubernetes dashboard displays. @@ -56,26 +86,19 @@ This documentation provides step-by-step instructions on how to manage Kubernete 3. Click the **Pools & Nodes** tab to display the pool configuration of the cluster. 4. Click > **Edit** next to the node pool you want to edit. 5. Configure the pool: + - **Operations** tab: + - Configure [autoscaling](/kubernetes/concepts/#autoscale) + - Enable or disable the [autoheal feature](/kubernetes/reference-content/using-kapsule-autoheal-feature/) + - **Scheduling & Placement** tab: + - Update [startup taints and taints](#how-to-configure-startup-taints-or-taints) - Update pool tags - - Configure autoscaling - - Enable or disable the [autoheal feature](/kubernetes/reference-content/using-kapsule-autoheal-feature/) + - Update [node labels](#how-to-configure-node-labels) 6. Click **Update pool** to update the pool configuration. Alternatively, you can use the Scaleway CLI to [update a node pool](https://cli.scaleway.com/k8s/#update-a-pool-in-a-cluster). - - -## How to configure startup taints or taints + -1. Navigate to the page of the pool that you wish to configure. Once there, click the **Scheduling & Placement** tab. -2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. -3. Specify a key-value pair and an effect: - - Key: Acts as the identifier of the taint. - - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. {/* Is this correct? Can we give an example? */} - - Effect: Specifies what happens to Pods that do not tolerate the taint: - - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. - - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. ## How to migrate existing workloads to a new Kubernetes Kapsule node pool @@ -104,7 +127,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete 1. Navigate to **Kubernetes** under the **Containers** section of the [Scaleway console](https://console.scaleway.com/) side menu. The Kubernetes dashboard displays. 2. Click the Kapsule cluster name you want to manage. The cluster information page displays. -3. Click the **Pools** tab to display the pool configuration of the cluster. +3. Click the **Pools & Nodes** tab to display the pool configuration of the cluster. 4. Click > **Delete** next to the node pool you want to delete. 5. Click **Delete pool** in the pop-up to confirm deletion of the pool. diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 3f4ba7010f..116a25e12c 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -9,7 +9,7 @@ dates: import Requirements from '@macros/iam/requirements.mdx' -Scaleway Kubernetes [Kapsule](/kubernetes/concepts/#kubernetes-kapsule) and [Kosmos](/kubernetes/concepts/#kubernetes-kosmos) provide a managed environment to create, configure, and run a cluster of preconfigured machines for containerized applications. This allows you to create Kubernetes clusters without the complexity of managing the infrastructure. You can create a Kapsule cluster to match your required specifications, edit it after creation, and delete it all when you no longer need it. You might also want to check out our how-to on [deploying an image on your cluster](/kubernetes/how-to/deploy-image-from-container-registry/). +Scaleway Kubernetes [Kapsule](/kubernetes/concepts/#kubernetes-kapsule) and [Kosmos](/kubernetes/concepts/#kubernetes-kosmos) provide a managed environment to create, configure, and run a cluster of preconfigured machines for containerized applications. This allows you to create Kubernetes clusters without the complexity of managing the infrastructure. You can create a cluster to match your required specifications, edit it after creation, and delete it all when you no longer need it. You might also want to check out our how-to on [deploying an image on your cluster](/kubernetes/how-to/deploy-image-from-container-registry/). ## Console overview Discover the Kubernetes interface on the Scaleway console. @@ -34,7 +34,7 @@ Discover the Kubernetes interface on the Scaleway console. * Select **Kubernetes Kapsule** as the cluster type, which uses exclusively Scaleway Instances. - This guide covers the creation of a **Kubernetes Kapsule** cluster. For Kubernetes Kosmos clusters, refer to the [Kubernetes Kosmos documentation](/kubernetes/how-to/create-kosmos-cluster/). + This guide covers the creation of a **Kubernetes Kapsule** cluster. For Kubernetes Kosmos clusters, refer to the [Kubernetes Kosmos quickstart procedure](#how-to-create-a-kubernetes-kosmos-cluster) or the [Kubernetes Kosmos documentation](/kubernetes/how-to/create-kosmos-cluster/). * Confirm the geographical **region** for the cluster. * Select the control plane offer for your cluster. Options include shared or dedicated control planes. @@ -43,7 +43,7 @@ Discover the Kubernetes interface on the Scaleway console. * Specify the **Kubernetes version** for your cluster. 5. Enter the **cluster's details**. Provide a name for the cluster. Optionally, you can add a description and tags for better organization. -6. Configure the **Private Network** for the cluster to ensure secure and isolated network communication. Each cluster is auto-configured with a /22 IP subnet. Click **Select Private Network** to: +6. Configure the **Private Network** for the cluster to ensure secure and isolated network communication. Each cluster is auto-configured with a /22 IP subnet. Click **Select a Private Network** to: * Attach an existing Private Network (VPC) within the same Availability Zone from the drop-down menu. * Attach a new Private Network to the cluster. @@ -62,9 +62,9 @@ This section outlines the settings for your cluster pools. You can configure as Need advice on choosing a node type? [Learn more about Kubernetes nodes.](/kubernetes/concepts/#node) * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. - * Configure **pool options**, including node count and whether to enable autoscaling. Options also include enabling [autoheal](/kubernetes/concepts/#autoheal) and [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), linking to a [placement group](/instances/concepts/#placement-groups), or configuring [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints). You can also choose to retain default settings. + * Configure **pool options**, including node count and whether to enable [autoscaling](/kubernetes/concepts/#autoscale). Options also include enabling [autoheal](/kubernetes/concepts/#autoheal) and [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), linking to a [placement group](/instances/concepts/#placement-groups), or configuring [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints). You can also choose to retain default settings. * Enter the pool's details. - * Add [node labels](/kubernetes/concepts/#node-labels), if required. + * Add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. 2. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. @@ -87,29 +87,16 @@ This section outlines the settings for your cluster pools. You can configure as 1. Click **Kubernetes** in the **Containers** section of the [Scaleway console](https://console.scaleway.com) side menu. The Kubernetes dashboard displays. 2. From the drop-down menu, select the geographical region you want to manage. -3. Click **Create cluster**. The first page of the cluster creation wizard displays. +3. Click **Create cluster** to launch cluster creation wizard. 4. Complete the following steps of the wizard: * Choose a **cluster type**. Select **Kubernetes Kosmos** to create a cluster that allows you to attach a compute Instance or dedicated server from any Cloud provider to a Scaleway Kubernetes control plane. - This document concerns the creation and management of a **Kubernetes Kosmos** cluster. To create a Kubernetes Kapsule cluster, refer to the [Kubernetes Kapsule documentation](/kubernetes/how-to/create-cluster/). + This document concerns the creation and management of a **Kubernetes Kosmos** cluster. To create a Kubernetes Kapsule cluster, refer to the [Kubernetes Kapsule quickstart procedure](#how-to-create-a-kubernetes-kapsule-cluster) or the [Kubernetes Kapsule documentation](/kubernetes/how-to/create-cluster/). * Confirm the geographical **region** of the cluster. * Select the Kubernetes **version** for the cluster. - * Add **name** for the cluster and, optionally, a description, node labels, and tags. -5. Click **Configure pools** to proceed. - - -6. Enter the following information to configure a Scaleway pool: - * The **Availability Zone** in which all your pool's nodes will be created. - * The **node type** you need. - * The configuration for your **pool options**, including the number of nodes and whether to enable autoscale. You can also choose whether to enable autoheal and whether to link the cluster to a placement group. Alternatively, you can leave these options at default values. -7. Click **Create cluster**. Your cluster is deployed, and you are taken to the cluster’s **Overview** tab. - - The Kosmos agent/installer supports Ubuntu 24.04 and may work on Debian based distributions. - It is available for `arm64` or `amd64` server architectures - - Bear in mind that we **do not provide support on external nodes**. - + * Add **name** for the cluster and, optionally, a description and tags. +5. If you want to add pools, click **Configure pools (optional)** to proceed. If you do not wish to add any pools, click **[Review](#kosmos-review-configuration)**. ### Pool configuration @@ -125,19 +112,30 @@ To add a Scaleway pool to your Kosmos cluster: 1. Choose the **Scaleway** pool type. 2. Configure your pool: - - Select the geographical **region** of the pool. - - Select the **node type** for the pool. - - If required, configure the **pool options** such as autoscaling, autohealing, taints, or link the pool to an existing placement group. - - Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/concepts/#node-labels) to it. -3. Click **Review**. + * Select the **Availability Zone** of the pool. + * Select a **node type** for the pool. + * Configure the **system volume**. + * If required, configure **pool options** such as [autoscaling](/kubernetes/concepts/#autoscale), [autoheal](/kubernetes/concepts/#autoheal), [taints](/kubernetes/concepts/#taints), or link the pool to an existing [placement group](/instances/concepts/#placement-groups). Alternatively, you can leave these options at default values. + * Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/concepts/#node-labels) to it. +2. To add more pools, click **Add pool** and repeat the steps above. + + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. + +3. Once all pools are configured, click **Review** to finalize your cluster setup. -### Review configuration +### Review configuration 1. Review the configuration details of your Kubernetes cluster and its pools (if any). To modify any element, click the **Edit** icon next to the respective configuration component. 2. Click **Submit** to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list. + + The Kosmos agent/installer supports Ubuntu 24.04 and may work on Debian based distributions. + It is available for `arm64` or `amd64` server architectures. + + Bear in mind that we **do not provide support on external nodes**. + ## How to edit a Kubernetes cluster @@ -146,7 +144,7 @@ To add a Scaleway pool to your Kosmos cluster: 3. Click next to the cluster you want to edit. 4. Choose the option you require: * **Add pool**: Add additional computing resources to the cluster. - * **Get kubeconfig**: Download the `.kubeconfig` file of the cluster. + * **Generate kubeconfig**: Download the `.kubeconfig` file of the cluster. * **Delete**: Delete the cluster. From d1c08a361a83a12a7e86f16ba691547e51d137c3 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Tue, 16 Jun 2026 10:41:29 +0200 Subject: [PATCH 07/22] feat(k8s): improved ssh command MTA-7162 --- pages/kubernetes/how-to/edit-kosmos-cluster.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx index 43ae347bcc..fb79d65062 100644 --- a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx @@ -71,7 +71,7 @@ In order to add external nodes to your multi-cloud cluster, you must first [crea 1. Get your server's public IP and SSH to the server: ```bash - ssh @ + ssh -i ~/path/to/ @ ``` 2. Download the `k8s-agent` program. The releases and source code are available on [GitHub](https://github.com/scaleway/k8s-agent). From 5b4a06c09d870287b180324d74a89a2a85e0eb5f Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Tue, 16 Jun 2026 14:06:18 +0200 Subject: [PATCH 08/22] feat(k8s): refinements MTA-7162 --- pages/kubernetes/concepts.mdx | 7 +++---- .../how-to/create-kosmos-cluster.mdx | 6 ++++-- .../kubernetes/how-to/edit-kosmos-cluster.mdx | 2 +- pages/kubernetes/how-to/manage-node-pools.mdx | 16 ++++++++++++--- pages/kubernetes/quickstart.mdx | 20 ++++++++++++++----- 5 files changed, 36 insertions(+), 15 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index d9f35f6edc..da609a126a 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -174,8 +174,7 @@ As a general guideline, your system volume disk should have a capacity of at lea ## Taints A taint is a node-level restriction that prevents a set of Pods from being scheduled, unless the Pods explicitly tolerate the node. -A taint's impact is determined by its `effect` value: -- `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. -- `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. -- `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. \ No newline at end of file +A taint's impact is determined by its `effect` value. `NoSchedule` blocks Pods from being scheduled, `PreferNoSchedule` tries to avoid scheduling them but will fall back if no other node fits, and `NoExecute` both evicts any already‑running non‑tolerating pods and prevents new ones from being scheduled. + +Taints enable you to enforce sophisticated placement constraints — such as isolating sensitive workloads or nodes with expensive or specialized hardware — making them essential for meeting the advanced scheduling needs of large‑scale environments. \ No newline at end of file diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index d2ac85f9cf..01e5b146ad 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -55,11 +55,13 @@ This section outlines the settings for your cluster pools. You can configure as * **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. * Enter the pool's name and optional tags. * Add [node labels](#how-to-configure-node-labels), if required. - * For **multi-cloud** pools: + * For **Multi-cloud** pools: * Specify the external nodes to be added to the pool. Note that autoscaling and autohealing are not available for multi-cloud pools. + * Enter the pool's name and optional tags. + * Add [node labels](#how-to-configure-node-labels), if required. 3. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. @@ -72,7 +74,7 @@ This section outlines the settings for your cluster pools. You can configure as 2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. 3. Specify a key-value pair and an effect: - Key: Acts as the identifier of the taint. - - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. {/* Is this correct? Can we give an example? */} + - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. - Effect: Specifies what happens to Pods that do not tolerate the taint: - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. diff --git a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx index fb79d65062..4f632d0f47 100644 --- a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx @@ -43,7 +43,7 @@ A multi-cloud pool allows you to attach external Instances and servers to your c 5. Click the **+ Add pool** button. The pool creation wizard displays. 6. Complete the following steps of the wizard: * Choose the **Multi-cloud** pool type. - * Add a **name** for the pool and, optionally, a description and tags. {/* Are node labels available for Kosmos multi-cloud? */} + * Add a **name** for the pool and, optionally, a description, tags, and [node labels](/kubernetes/concepts/#node-labels). 7. Click **Review**, then click **Submit**. ## How to add external nodes to your multi-cloud pool diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index d60d03e436..c1ca875ba1 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -32,7 +32,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete - Choose the commercial type of Instance (**node type**) for the pool. - Configure the **system volume**. - Configure pool options. Configuration options include: - - **Operations** tab: Choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). + - **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. - Enter the pool's name and optional tags. @@ -50,15 +50,25 @@ This documentation provides step-by-step instructions on how to manage Kubernete ## How to configure startup taints or taints +Note that the startup taints and taints you configure for your pool are automatically applied to any new node created within the pool. + 1. Navigate to the page of the pool that you wish to configure. Once there, click the **Scheduling & Placement** tab. -2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. +2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. The **Key**, **Value**, and **Effect** fields display. 3. Specify a key-value pair and an effect: - Key: Acts as the identifier of the taint. - - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. {/* Is this correct? Can we give an example? */} + - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. - Effect: Specifies what happens to Pods that do not tolerate the taint: - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. +4. Click the ** + Add startup taint** or ** + Add taint** button to add further startup taints or taints, respectively. + + + + Managing tolerations in your Pod YAML manifests remains your responsibility. You must add the appropriate tolerations to any Pod that needs to run on a tainted node. + + +We do not manage the Pod side (Tolerations). This remains the responsibility of the developer in their YAML manifests. ## How to configure node labels diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 116a25e12c..9b87710a30 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -34,7 +34,7 @@ Discover the Kubernetes interface on the Scaleway console. * Select **Kubernetes Kapsule** as the cluster type, which uses exclusively Scaleway Instances. - This guide covers the creation of a **Kubernetes Kapsule** cluster. For Kubernetes Kosmos clusters, refer to the [Kubernetes Kosmos quickstart procedure](#how-to-create-a-kubernetes-kosmos-cluster) or the [Kubernetes Kosmos documentation](/kubernetes/how-to/create-kosmos-cluster/). + This section covers the creation of a **Kubernetes Kapsule** cluster. For Kubernetes Kosmos clusters, refer to the [Kubernetes Kosmos quickstart procedure](#how-to-create-a-kubernetes-kosmos-cluster) or the [Kubernetes Kosmos documentation](/kubernetes/how-to/create-kosmos-cluster/). * Confirm the geographical **region** for the cluster. * Select the control plane offer for your cluster. Options include shared or dedicated control planes. @@ -62,7 +62,12 @@ This section outlines the settings for your cluster pools. You can configure as Need advice on choosing a node type? [Learn more about Kubernetes nodes.](/kubernetes/concepts/#node) * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. - * Configure **pool options**, including node count and whether to enable [autoscaling](/kubernetes/concepts/#autoscale). Options also include enabling [autoheal](/kubernetes/concepts/#autoheal) and [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), linking to a [placement group](/instances/concepts/#placement-groups), or configuring [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints). You can also choose to retain default settings. + * Configure **pool options**, including: + * **Operations** tab: Specifying node count and choosing whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal) + * **Network** tab: Enabling [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation) + * **Scheduling & Placement** tab: Configuring [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and linking to a [placement group](/instances/concepts/#placement-groups) + + You can also choose to retain default settings. * Enter the pool's details. * Add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. 2. To add more pools, click **Add pool** and repeat the steps above. @@ -91,7 +96,7 @@ This section outlines the settings for your cluster pools. You can configure as 4. Complete the following steps of the wizard: * Choose a **cluster type**. Select **Kubernetes Kosmos** to create a cluster that allows you to attach a compute Instance or dedicated server from any Cloud provider to a Scaleway Kubernetes control plane. - This document concerns the creation and management of a **Kubernetes Kosmos** cluster. To create a Kubernetes Kapsule cluster, refer to the [Kubernetes Kapsule quickstart procedure](#how-to-create-a-kubernetes-kapsule-cluster) or the [Kubernetes Kapsule documentation](/kubernetes/how-to/create-cluster/). + This section concerns the creation and management of a **Kubernetes Kosmos** cluster. To create a Kubernetes Kapsule cluster, refer to the [Kubernetes Kapsule quickstart procedure](#how-to-create-a-kubernetes-kapsule-cluster) or the [Kubernetes Kapsule documentation](/kubernetes/how-to/create-cluster/). * Confirm the geographical **region** of the cluster. * Select the Kubernetes **version** for the cluster. @@ -115,8 +120,13 @@ To add a Scaleway pool to your Kosmos cluster: * Select the **Availability Zone** of the pool. * Select a **node type** for the pool. * Configure the **system volume**. - * If required, configure **pool options** such as [autoscaling](/kubernetes/concepts/#autoscale), [autoheal](/kubernetes/concepts/#autoheal), [taints](/kubernetes/concepts/#taints), or link the pool to an existing [placement group](/instances/concepts/#placement-groups). Alternatively, you can leave these options at default values. - * Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/concepts/#node-labels) to it. + * If required, configure **pool options**. Options include: + * **Operations** tab: Specifying node count and choosing whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal) + * **Network** tab: Enabling [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation) + * **Scheduling & Placement** tab: Configuring [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), and linking to a [placement group](/instances/concepts/#placement-groups) + + Alternatively, you can leave these options at default values. + * Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/concepts/create-kosmos-cluster/#how-to-configure-node-labels) to it. 2. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. From 7a0ae4e8b4684674b5d10cf1b9b24d74d46cf75b Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Tue, 16 Jun 2026 14:29:59 +0200 Subject: [PATCH 09/22] feat(k8s): refinements MTA-7162 --- pages/kubernetes/how-to/create-kosmos-cluster.mdx | 2 +- pages/kubernetes/how-to/manage-node-pools.mdx | 2 +- pages/kubernetes/quickstart.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index 01e5b146ad..e454695646 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -83,7 +83,7 @@ This section outlines the settings for your cluster pools. You can configure as ### How to configure node labels -By attaching nodes to a pool, you can: +By attaching node labels to a pool, you can: - **Require** Pods to run only on nodes that match the label(s), or - **Prefer** Pods to run on nodes that match the label(s). diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index c1ca875ba1..778970eabe 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -73,7 +73,7 @@ We do not manage the Pod side (Tolerations). This remains the responsibility of ## How to configure node labels -By attaching nodes to a pool, you can: +By attaching node labels to a pool, you can: - **Require** Pods to run only on nodes that match the label(s), or - **Prefer** Pods to run on nodes that match the label(s). diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 9b87710a30..638b5a50d6 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -126,7 +126,7 @@ To add a Scaleway pool to your Kosmos cluster: * **Scheduling & Placement** tab: Configuring [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), and linking to a [placement group](/instances/concepts/#placement-groups) Alternatively, you can leave these options at default values. - * Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/concepts/create-kosmos-cluster/#how-to-configure-node-labels) to it. + * Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels) to it. 2. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. From 7ab31118d3aecee6f084477ad6a44e5d8ca5b01e Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Tue, 16 Jun 2026 14:45:06 +0200 Subject: [PATCH 10/22] feat(k8s): fix tab info MTA-7162 --- pages/kubernetes/quickstart.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 638b5a50d6..d70bc89244 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -122,7 +122,6 @@ To add a Scaleway pool to your Kosmos cluster: * Configure the **system volume**. * If required, configure **pool options**. Options include: * **Operations** tab: Specifying node count and choosing whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal) - * **Network** tab: Enabling [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation) * **Scheduling & Placement** tab: Configuring [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), and linking to a [placement group](/instances/concepts/#placement-groups) Alternatively, you can leave these options at default values. From 15a150a7e88e8a8ebf8191f79fb0e36032e5ff84 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Tue, 16 Jun 2026 14:49:18 +0200 Subject: [PATCH 11/22] feat(k8s): editorial change MTA-7162 --- pages/kubernetes/quickstart.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index d70bc89244..b5aa15fbd6 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -126,11 +126,11 @@ To add a Scaleway pool to your Kosmos cluster: Alternatively, you can leave these options at default values. * Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels) to it. -2. To add more pools, click **Add pool** and repeat the steps above. +3. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. -3. Once all pools are configured, click **Review** to finalize your cluster setup. +4. Once all pools are configured, click **Review** to finalize your cluster setup. ### Review configuration From a9788d690b99bd4fd962d3071d28c69d81c36365 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Tue, 16 Jun 2026 16:27:58 +0200 Subject: [PATCH 12/22] feat(k8s): editorial change MTA-7162 --- pages/kubernetes/concepts.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index da609a126a..b283cb8609 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -175,6 +175,9 @@ As a general guideline, your system volume disk should have a capacity of at lea A taint is a node-level restriction that prevents a set of Pods from being scheduled, unless the Pods explicitly tolerate the node. -A taint's impact is determined by its `effect` value. `NoSchedule` blocks Pods from being scheduled, `PreferNoSchedule` tries to avoid scheduling them but will fall back if no other node fits, and `NoExecute` both evicts any already‑running non‑tolerating pods and prevents new ones from being scheduled. +A taint's impact is determined by its `effect` value: +- `NoSchedule` blocks Pods from being scheduled +- `PreferNoSchedule` tries to avoid scheduling them but will fall back if no other node fits +- `NoExecute` both evicts any already‑running non‑tolerating pods and prevents new ones from being scheduled Taints enable you to enforce sophisticated placement constraints — such as isolating sensitive workloads or nodes with expensive or specialized hardware — making them essential for meeting the advanced scheduling needs of large‑scale environments. \ No newline at end of file From 47a5c9b6374597392fed803ab1ebbf8c3542623d Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Wed, 17 Jun 2026 09:49:57 +0200 Subject: [PATCH 13/22] feat(k8s): editorial changes MTA-7162 --- .../kubernetes/how-to/create-kosmos-cluster.mdx | 12 +++++++----- pages/kubernetes/how-to/manage-node-pools.mdx | 17 ++++++++--------- pages/kubernetes/quickstart.mdx | 14 +++++++------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index e454695646..fcf7630839 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -73,12 +73,13 @@ This section outlines the settings for your cluster pools. You can configure as 1. On the page of the pool that you wish to configure, click the **Scheduling & Placement** tab. 2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. 3. Specify a key-value pair and an effect: - - Key: Acts as the identifier of the taint. - - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. - - Effect: Specifies what happens to Pods that do not tolerate the taint: + - **Key**: Acts as the identifier of the taint. + - **Value**: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. + - **Effect**: Specifies what happens to Pods that do not tolerate the taint: - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. +4. Click the **+ Add startup taint** or **+ Add taint** button to add further startup taints or taints, respectively. ### How to configure node labels @@ -88,8 +89,9 @@ By attaching node labels to a pool, you can: - **Require** Pods to run only on nodes that match the label(s), or - **Prefer** Pods to run on nodes that match the label(s). -1. On the page of the pool where you wish to define node labels, go to section **Pool details** > **Node labels**. -2. Specify a key and a value. +1. On the page of the pool that you wish to configure, go to section **Pool details** > **Node labels**. +2. Specify a **Key** and a **Value**. +3. Click the **+ Add node label** button to add further node labels. To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 778970eabe..3380b3e379 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -52,24 +52,22 @@ This documentation provides step-by-step instructions on how to manage Kubernete Note that the startup taints and taints you configure for your pool are automatically applied to any new node created within the pool. -1. Navigate to the page of the pool that you wish to configure. Once there, click the **Scheduling & Placement** tab. +1. On the page of the pool that you wish to configure, click the **Scheduling & Placement** tab. 2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. The **Key**, **Value**, and **Effect** fields display. 3. Specify a key-value pair and an effect: - - Key: Acts as the identifier of the taint. - - Value: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. - - Effect: Specifies what happens to Pods that do not tolerate the taint: + - **Key**: Acts as the identifier of the taint. + - **Value**: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. + - **Effect**: Specifies what happens to Pods that do not tolerate the taint: - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. -4. Click the ** + Add startup taint** or ** + Add taint** button to add further startup taints or taints, respectively. +4. Click the **+ Add startup taint** or **+ Add taint** button to add further startup taints or taints, respectively. Managing tolerations in your Pod YAML manifests remains your responsibility. You must add the appropriate tolerations to any Pod that needs to run on a tainted node. -We do not manage the Pod side (Tolerations). This remains the responsibility of the developer in their YAML manifests. - ## How to configure node labels @@ -78,8 +76,9 @@ By attaching node labels to a pool, you can: - **Require** Pods to run only on nodes that match the label(s), or - **Prefer** Pods to run on nodes that match the label(s). -1. Navigate to the page of the pool where you wish to define node labels. -2. In section **Pool details** > **Node labels**, specify a key and a value. +1. On the page of the pool that you wish to configure, go to section **Pool details** > **Node labels**. +2. Specify a **Key** and a **Value**. +3. Click the **+ Add node label** button to add further node labels. To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index b5aa15fbd6..d4bb97a2d6 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -62,10 +62,10 @@ This section outlines the settings for your cluster pools. You can configure as Need advice on choosing a node type? [Learn more about Kubernetes nodes.](/kubernetes/concepts/#node) * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. - * Configure **pool options**, including: - * **Operations** tab: Specifying node count and choosing whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal) - * **Network** tab: Enabling [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation) - * **Scheduling & Placement** tab: Configuring [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and linking to a [placement group](/instances/concepts/#placement-groups) + * Configure **pool options**: + * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). + * **Network** tab: Choose whether to enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation). + * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link to a [placement group](/instances/concepts/#placement-groups). You can also choose to retain default settings. * Enter the pool's details. @@ -120,9 +120,9 @@ To add a Scaleway pool to your Kosmos cluster: * Select the **Availability Zone** of the pool. * Select a **node type** for the pool. * Configure the **system volume**. - * If required, configure **pool options**. Options include: - * **Operations** tab: Specifying node count and choosing whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal) - * **Scheduling & Placement** tab: Configuring [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), and linking to a [placement group](/instances/concepts/#placement-groups) + * If required, configure **pool options**: + * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). + * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), and link to a [placement group](/instances/concepts/#placement-groups). Alternatively, you can leave these options at default values. * Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels) to it. From 29afb56eef12e30500cb67236322210b9f8d9f2b Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 18 Jun 2026 15:12:29 +0200 Subject: [PATCH 14/22] feat(k8s): add CLI info MTA-7162 --- ...ng-managing-kubernetes-lifecycle-cliv2.mdx | 505 +++++++++++++++++- 1 file changed, 504 insertions(+), 1 deletion(-) diff --git a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx index 53d6e2f448..8ebd7312cb 100644 --- a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx +++ b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx @@ -183,7 +183,7 @@ Type the following command in your terminal: You will see an output similar to this: ``` -ID 12345678-1234-1234-4321-123456789123 +ID 87654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt now UpdatedAt now @@ -204,6 +204,499 @@ RootVolumeType l_ssd RootVolumeSize 150 GB PublicIPDisabled false Region fr-par + + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +``` + +## Configuring labels for your pool(s) + +To add a label to multiple pools, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. + +```bash +scw k8s pool set-label pool-id-1 pool-id-2 pool-id-3 key=my-label-key value=my-label-value +``` + +You will see an output similar to this: + +``` +ID 17654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name pool-name-1 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 2 +MinSize 0 +MaxSize 2 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: +my-label-key my-label-value + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +ID 27654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name pool-name-2 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: +my-label-key my-label-value + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +ID 37654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name pool-name-3 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: +my-label-key my-label-value + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +``` + +To remove a label from multiple pools, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. + +```bash +scw k8s pool remove-label pool-id-1 pool-id-2 pool-id-3 key=my-label-key +``` + +``` +ID 17654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 5 minutes ago +UpdatedAt now +Name pool-name-1 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 2 +MinSize 0 +MaxSize 2 +ContainerRuntime containerd +Autohealing false +Zone fr-srr-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-srr + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +ID 27654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name pool-name-2 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-srr-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-srr + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +ID 37654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name pool-name-3 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-srr-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-srr + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +my-startup-taint-key my-startup-taint-value NoExecute +``` + +## Configuring a startup taint for your pool(s) + +To add a [startup taint](/kubernetes/concepts/#startup-taints) to multiple pools, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. + +```bash +scw k8s pool set-startup-taint pool-id-1 pool-id-2 pool-id-3 key=my-startup-taint-key value=my-startup-taint-value effect=NoExecute +``` + +You will see an output similar to this: + +``` +ID 17654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name pool-name-1 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 2 +MinSize 0 +MaxSize 2 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +my-startup-taint-key my-startup-taint-value NoExecute +ID 27654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name pool-name-2 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +my-startup-taint-key my-startup-taint-value NoExecute +ID 37654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name pool-name-3 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +my-startup-taint-key my-startup-taint-value NoExecute +``` + + + The startup taints you configure for your pool(s) are automatically applied to any new node created within the pool. + + Remember to add the appropriate tolerations in your Pod YAML manifests for any Pod that needs to run on a tainted node. + + +To remove a startup taint from a pool, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. + +```bash +scw k8s pool remove-startup-taint pool-id-2 key=my-startup-taint-key +``` + +You will see an output similar to this: + +``` +ID 27654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 5 minutes ago +UpdatedAt now +Name pool-name-2 +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-srr-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-srr + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +``` + +## Configuring a taint for your pool(s) + +To add a [taint](/kubernetes/concepts/#taints) to your pool, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. + +```bash +scw k8s pool set-taint pool-id key=my-taint-key value=my-taint-value effect=NoExecute +``` + +You will see an output similar to this: + +``` +ID 17654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name my-pool-name +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 3 +MinSize 0 +MaxSize 2 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT +my-taint-key my-taint-value NoExecute + +Node startup taints: +KEY VALUE EFFECT +``` + + + The taints you configure for your pool(s) are automatically applied to any new node created within the pool. + + Remember to add the appropriate tolerations in your Pod YAML manifests for any Pod that needs to run on a tainted node. + + +To remove a taint from your pool, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. + +```bash +scw k8s pool remove-taint pool-id key=my-taint-key +``` + +You should get a similar output: + +``` +ID 17654321-1234-1234-4321-123456789123 +ClusterID 12345678-1234-1234-4321-123456789123 +CreatedAt 2 minutes ago +UpdatedAt now +Name my-pool-name +Status ready +Version 1.35.3 +NodeType gp1_xs +Autoscaling false +Size 2 +MinSize 0 +MaxSize 2 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 150 GB +PublicIPDisabled false +SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT ``` ## Deleting a Kubernetes pool @@ -242,6 +735,16 @@ RootVolumeType l_ssd RootVolumeSize 150 GB PublicIPDisabled false Region fr-par + + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT ``` Your pool has been deleted. From 231db2bd9512570087740437146510aa2ce83ced Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 18 Jun 2026 15:14:22 +0200 Subject: [PATCH 15/22] feat(k8s): improve terminology MTA-7162 --- .../api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx index 8ebd7312cb..46fbbb09f3 100644 --- a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx +++ b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx @@ -216,9 +216,9 @@ Node startup taints: KEY VALUE EFFECT ``` -## Configuring labels for your pool(s) +## Configuring node labels for your pool(s) -To add a label to multiple pools, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. +To add a node label to multiple pools, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash scw k8s pool set-label pool-id-1 pool-id-2 pool-id-3 key=my-label-key value=my-label-value From 86721997787a1ca87793edb249df6bf9bdc4b330 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 18 Jun 2026 16:51:31 +0200 Subject: [PATCH 16/22] feat(k8s): editorial changes MTA-7162 --- ...ng-managing-kubernetes-lifecycle-cliv2.mdx | 79 ++++++++++++------- 1 file changed, 51 insertions(+), 28 deletions(-) diff --git a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx index 46fbbb09f3..efffb9286c 100644 --- a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx +++ b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx @@ -187,7 +187,7 @@ ID 87654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt now UpdatedAt now -Name my-node-pool +Name name-of-your-pool Status scaling Version 1.29.1 NodeType gp1_xs @@ -205,7 +205,6 @@ RootVolumeSize 150 GB PublicIPDisabled false Region fr-par - Node labels: @@ -218,10 +217,14 @@ KEY VALUE EFFECT ## Configuring node labels for your pool(s) -To add a node label to multiple pools, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. +You can add a [node label](/kubernetes/concepts/#node-labels) to a single pool or multiple pools using the `scw k8s pool set-label` command. + +In the following example, you are going to add a node label to three pools. + +Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool set-label pool-id-1 pool-id-2 pool-id-3 key=my-label-key value=my-label-value +scw k8s pool set-label pool-id-1 pool-id-2 pool-id-3 key=your-label-key value=your-label-value ``` You will see an output similar to this: @@ -253,7 +256,7 @@ MaxUnavailable 1 MaxSurge 0 Node labels: -my-label-key my-label-value +your-label-key your-label-value Node taints: KEY VALUE EFFECT @@ -286,7 +289,7 @@ MaxUnavailable 1 MaxSurge 0 Node labels: -my-label-key my-label-value +your-label-key your-label-value Node taints: KEY VALUE EFFECT @@ -319,7 +322,7 @@ MaxUnavailable 1 MaxSurge 0 Node labels: -my-label-key my-label-value +your-label-key your-label-value Node taints: KEY VALUE EFFECT @@ -328,10 +331,14 @@ Node startup taints: KEY VALUE EFFECT ``` -To remove a label from multiple pools, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. +You can remove a node label from a single pool or multiple pools using the `scw k8s pool remove-label` command. + +In the following example, you are going to remove a node label from three pools. + +Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool remove-label pool-id-1 pool-id-2 pool-id-3 key=my-label-key +scw k8s pool remove-label pool-id-1 pool-id-2 pool-id-3 key=your-label-key ``` ``` @@ -434,15 +441,19 @@ KEY VALUE EFFECT Node startup taints: KEY VALUE EFFECT -my-startup-taint-key my-startup-taint-value NoExecute +your-startup-taint-key your-startup-taint-value NoExecute ``` ## Configuring a startup taint for your pool(s) -To add a [startup taint](/kubernetes/concepts/#startup-taints) to multiple pools, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. +You can add a [startup taint](/kubernetes/concepts/#startup-taints) to a single pool or multiple pools using the `scw k8s pool set-startup-taint` command. + +In the following example, you are going to add a startup taint to three pools. + +Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool set-startup-taint pool-id-1 pool-id-2 pool-id-3 key=my-startup-taint-key value=my-startup-taint-value effect=NoExecute +scw k8s pool set-startup-taint pool-id-1 pool-id-2 pool-id-3 key=your-startup-taint-key value=your-startup-taint-value effect=NoExecute ``` You will see an output similar to this: @@ -480,8 +491,8 @@ Node taints: KEY VALUE EFFECT Node startup taints: -KEY VALUE EFFECT -my-startup-taint-key my-startup-taint-value NoExecute +KEY VALUE EFFECT +your-startup-taint-key your-startup-taint-value NoExecute ID 27654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt 2 minutes ago @@ -514,8 +525,8 @@ Node taints: KEY VALUE EFFECT Node startup taints: -KEY VALUE EFFECT -my-startup-taint-key my-startup-taint-value NoExecute +KEY VALUE EFFECT +your-startup-taint-key your-startup-taint-value NoExecute ID 37654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt 2 minutes ago @@ -548,20 +559,24 @@ Node taints: KEY VALUE EFFECT Node startup taints: -KEY VALUE EFFECT -my-startup-taint-key my-startup-taint-value NoExecute +KEY VALUE EFFECT +your-startup-taint-key your-startup-taint-value NoExecute ``` - The startup taints you configure for your pool(s) are automatically applied to any new node created within the pool. + The startup taints you configure for your pool(s) are automatically applied to any new node created within the pool(s). Remember to add the appropriate tolerations in your Pod YAML manifests for any Pod that needs to run on a tainted node. -To remove a startup taint from a pool, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. +You can remove a startup taint from a single pool or multiple pools using the `scw k8s pool remove-startup-taint` command. + +In the following example, you are going to remove a startup taint from one pool. + +Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool remove-startup-taint pool-id-2 key=my-startup-taint-key +scw k8s pool remove-startup-taint pool-id-2 key=your-startup-taint-key ``` You will see an output similar to this: @@ -604,10 +619,14 @@ KEY VALUE EFFECT ## Configuring a taint for your pool(s) -To add a [taint](/kubernetes/concepts/#taints) to your pool, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. +You can add a [taint](/kubernetes/concepts/#taints) to a single pool or multiple pools using the `scw k8s pool set-taint` command. + +In the following example, you are going to add a taint to one pool. + +Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool set-taint pool-id key=my-taint-key value=my-taint-value effect=NoExecute +scw k8s pool set-taint pool-id key=your-taint-key value=your-taint-value effect=NoExecute ``` You will see an output similar to this: @@ -642,23 +661,27 @@ Node labels: Node taints: -KEY VALUE EFFECT -my-taint-key my-taint-value NoExecute +KEY VALUE EFFECT +your-taint-key your-taint-value NoExecute Node startup taints: KEY VALUE EFFECT ``` - The taints you configure for your pool(s) are automatically applied to any new node created within the pool. + The taints you configure for your pool(s) are automatically applied to any new node created within the pool(s). Remember to add the appropriate tolerations in your Pod YAML manifests for any Pod that needs to run on a tainted node. -To remove a taint from your pool, execute the following command in your terminal. Remember to replace the placeholder values with your actual values. +You can remove a taint from a single pool or multiple pools using the `scw k8s pool remove-taint` command. + +In the following example, you are going to remove a startup taint from one pool. + +Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool remove-taint pool-id key=my-taint-key +scw k8s pool remove-taint pool-id key=your-taint-key ``` You should get a similar output: From 7848ddccd615ed27720781f685fe3c0d26758a02 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 18 Jun 2026 16:55:35 +0200 Subject: [PATCH 17/22] feat(k8s): updated validation date MTA-7162 --- .../api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx index efffb9286c..86ddff3b2d 100644 --- a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx +++ b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx @@ -3,7 +3,7 @@ title: Creating and managing a Kubernetes Kapsule with CLI (v2) description: This page explains how to create and manage a Kubernetes Kapsule with CLI (v2) tags: kubernetes-kapsule cli cli-v2 kapsule dates: - validation: 2025-10-01 + validation: 2026-06-18 posted: 2021-08-05 --- import Requirements from '@macros/iam/requirements.mdx' From 53fe356563d5d3dc0e910061e1d2a0fe4a869fe8 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 18 Jun 2026 18:14:04 +0200 Subject: [PATCH 18/22] feat(k8s): editorial after tech review MTA-7162 --- ...ng-managing-kubernetes-lifecycle-cliv2.mdx | 273 ++++-------------- 1 file changed, 58 insertions(+), 215 deletions(-) diff --git a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx index 86ddff3b2d..09b1f955fc 100644 --- a/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx +++ b/pages/kubernetes/api-cli/creating-managing-kubernetes-lifecycle-cliv2.mdx @@ -215,16 +215,18 @@ Node startup taints: KEY VALUE EFFECT ``` -## Configuring node labels for your pool(s) +## Configuring a node label for your pool(s) -You can add a [node label](/kubernetes/concepts/#node-labels) to a single pool or multiple pools using the `scw k8s pool set-label` command. +### Adding a node label to your pool(s) -In the following example, you are going to add a node label to three pools. +You can add a [node label](/kubernetes/concepts/#node-labels) to a single pool or multiple pools using the `scw k8s pool set-label` command. + +In the following example, you are going to add a node label to one pool. Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool set-label pool-id-1 pool-id-2 pool-id-3 key=your-label-key value=your-label-value +scw k8s pool set-label pool-id key=your-label-key value=your-label-value ``` You will see an output similar to this: @@ -234,7 +236,7 @@ ID 17654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt 2 minutes ago UpdatedAt now -Name pool-name-1 +Name name-of-your-pool Status ready Version 1.35.3 NodeType gp1_xs @@ -263,82 +265,23 @@ KEY VALUE EFFECT Node startup taints: KEY VALUE EFFECT -ID 27654321-1234-1234-4321-123456789123 -ClusterID 12345678-1234-1234-4321-123456789123 -CreatedAt 2 minutes ago -UpdatedAt now -Name pool-name-2 -Status ready -Version 1.35.3 -NodeType gp1_xs -Autoscaling false -Size 1 -MinSize 0 -MaxSize 1 -ContainerRuntime containerd -Autohealing false -Zone fr-par-1 -RootVolumeType l_ssd -RootVolumeSize 150 GB -PublicIPDisabled false -SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh -Region fr-par - -Upgrade Policy: -MaxUnavailable 1 -MaxSurge 0 - -Node labels: -your-label-key your-label-value - -Node taints: -KEY VALUE EFFECT - -Node startup taints: -KEY VALUE EFFECT -ID 37654321-1234-1234-4321-123456789123 -ClusterID 12345678-1234-1234-4321-123456789123 -CreatedAt 2 minutes ago -UpdatedAt now -Name pool-name-3 -Status ready -Version 1.35.3 -NodeType gp1_xs -Autoscaling false -Size 1 -MinSize 0 -MaxSize 1 -ContainerRuntime containerd -Autohealing false -Zone fr-par-1 -RootVolumeType l_ssd -RootVolumeSize 150 GB -PublicIPDisabled false -SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh -Region fr-par - -Upgrade Policy: -MaxUnavailable 1 -MaxSurge 0 - -Node labels: -your-label-key your-label-value +``` -Node taints: -KEY VALUE EFFECT +To add a node label to multiple pools, specify the pool identifiers one after the other: -Node startup taints: -KEY VALUE EFFECT +```bash +scw k8s pool set-label pool-id-1 pool-id-2 pool-id-3 key=your-label-key value=your-label-value ``` +### Removing a node label from your pool(s) You can remove a node label from a single pool or multiple pools using the `scw k8s pool remove-label` command. -In the following example, you are going to remove a node label from three pools. +In the following example, you are going to remove a node label from one pool. Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool remove-label pool-id-1 pool-id-2 pool-id-3 key=your-label-key +scw k8s pool remove-label pool-id key=your-label-key ``` ``` @@ -346,7 +289,7 @@ ID 17654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt 5 minutes ago UpdatedAt now -Name pool-name-1 +Name name-of-your-pool Status ready Version 1.35.3 NodeType gp1_xs @@ -356,12 +299,12 @@ MinSize 0 MaxSize 2 ContainerRuntime containerd Autohealing false -Zone fr-srr-1 +Zone fr-par-1 RootVolumeType l_ssd RootVolumeSize 150 GB PublicIPDisabled false SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh -Region fr-srr +Region fr-par Upgrade Policy: MaxUnavailable 1 @@ -375,85 +318,25 @@ KEY VALUE EFFECT Node startup taints: KEY VALUE EFFECT -ID 27654321-1234-1234-4321-123456789123 -ClusterID 12345678-1234-1234-4321-123456789123 -CreatedAt 2 minutes ago -UpdatedAt now -Name pool-name-2 -Status ready -Version 1.35.3 -NodeType gp1_xs -Autoscaling false -Size 1 -MinSize 0 -MaxSize 1 -ContainerRuntime containerd -Autohealing false -Zone fr-srr-1 -RootVolumeType l_ssd -RootVolumeSize 150 GB -PublicIPDisabled false -SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh -Region fr-srr - -Upgrade Policy: -MaxUnavailable 1 -MaxSurge 0 - -Node labels: - - -Node taints: -KEY VALUE EFFECT - -Node startup taints: -KEY VALUE EFFECT -ID 37654321-1234-1234-4321-123456789123 -ClusterID 12345678-1234-1234-4321-123456789123 -CreatedAt 2 minutes ago -UpdatedAt now -Name pool-name-3 -Status ready -Version 1.35.3 -NodeType gp1_xs -Autoscaling false -Size 1 -MinSize 0 -MaxSize 1 -ContainerRuntime containerd -Autohealing false -Zone fr-srr-1 -RootVolumeType l_ssd -RootVolumeSize 150 GB -PublicIPDisabled false -SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh -Region fr-srr - -Upgrade Policy: -MaxUnavailable 1 -MaxSurge 0 - -Node labels: - - -Node taints: -KEY VALUE EFFECT +``` +To remove a node label from multiple pools, specify the pool identifiers one after the other: -Node startup taints: -KEY VALUE EFFECT -your-startup-taint-key your-startup-taint-value NoExecute +```bash +scw k8s pool remove-label pool-id-1 pool-id-2 pool-id-3 key=your-label-key ``` ## Configuring a startup taint for your pool(s) +### Adding a startup taint to your pool(s) + You can add a [startup taint](/kubernetes/concepts/#startup-taints) to a single pool or multiple pools using the `scw k8s pool set-startup-taint` command. -In the following example, you are going to add a startup taint to three pools. +In the following example, you are going to add a startup taint to one pool. Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool set-startup-taint pool-id-1 pool-id-2 pool-id-3 key=your-startup-taint-key value=your-startup-taint-value effect=NoExecute +scw k8s pool set-startup-taint pool-id key=your-startup-taint-key value=your-startup-taint-value effect=NoExecute ``` You will see an output similar to this: @@ -463,7 +346,7 @@ ID 17654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt 2 minutes ago UpdatedAt now -Name pool-name-1 +Name name-of-your-pool Status ready Version 1.35.3 NodeType gp1_xs @@ -493,74 +376,12 @@ KEY VALUE EFFECT Node startup taints: KEY VALUE EFFECT your-startup-taint-key your-startup-taint-value NoExecute -ID 27654321-1234-1234-4321-123456789123 -ClusterID 12345678-1234-1234-4321-123456789123 -CreatedAt 2 minutes ago -UpdatedAt now -Name pool-name-2 -Status ready -Version 1.35.3 -NodeType gp1_xs -Autoscaling false -Size 1 -MinSize 0 -MaxSize 1 -ContainerRuntime containerd -Autohealing false -Zone fr-par-1 -RootVolumeType l_ssd -RootVolumeSize 150 GB -PublicIPDisabled false -SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh -Region fr-par - -Upgrade Policy: -MaxUnavailable 1 -MaxSurge 0 - -Node labels: - - -Node taints: -KEY VALUE EFFECT - -Node startup taints: -KEY VALUE EFFECT -your-startup-taint-key your-startup-taint-value NoExecute -ID 37654321-1234-1234-4321-123456789123 -ClusterID 12345678-1234-1234-4321-123456789123 -CreatedAt 2 minutes ago -UpdatedAt now -Name pool-name-3 -Status ready -Version 1.35.3 -NodeType gp1_xs -Autoscaling false -Size 1 -MinSize 0 -MaxSize 1 -ContainerRuntime containerd -Autohealing false -Zone fr-par-1 -RootVolumeType l_ssd -RootVolumeSize 150 GB -PublicIPDisabled false -SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh -Region fr-par - -Upgrade Policy: -MaxUnavailable 1 -MaxSurge 0 - -Node labels: +``` +To add a startup taint to multiple pools, specify the pool identifiers one after the other: -Node taints: -KEY VALUE EFFECT - -Node startup taints: -KEY VALUE EFFECT -your-startup-taint-key your-startup-taint-value NoExecute +```bash +scw k8s pool set-startup-taint pool-id-1 pool-id-2 pool-id-3 key=your-startup-taint-key value=your-startup-taint-value effect=NoExecute ``` @@ -569,6 +390,8 @@ your-startup-taint-key your-startup-taint-value NoExecute Remember to add the appropriate tolerations in your Pod YAML manifests for any Pod that needs to run on a tainted node. +### Removing a startup taint from your pool(s) + You can remove a startup taint from a single pool or multiple pools using the `scw k8s pool remove-startup-taint` command. In the following example, you are going to remove a startup taint from one pool. @@ -576,7 +399,7 @@ In the following example, you are going to remove a startup taint from one pool. Execute the following command in your terminal. Remember to replace the placeholder values with your actual values. ```bash -scw k8s pool remove-startup-taint pool-id-2 key=your-startup-taint-key +scw k8s pool remove-startup-taint pool-id key=your-startup-taint-key ``` You will see an output similar to this: @@ -586,7 +409,7 @@ ID 27654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt 5 minutes ago UpdatedAt now -Name pool-name-2 +Name name-of-your-pool Status ready Version 1.35.3 NodeType gp1_xs @@ -596,12 +419,12 @@ MinSize 0 MaxSize 1 ContainerRuntime containerd Autohealing false -Zone fr-srr-1 +Zone fr-par-1 RootVolumeType l_ssd RootVolumeSize 150 GB PublicIPDisabled false SecurityGroupID 11a22334-ab45-56bc-cc7d-7de8ef8f99gh -Region fr-srr +Region fr-par Upgrade Policy: MaxUnavailable 1 @@ -616,9 +439,16 @@ KEY VALUE EFFECT Node startup taints: KEY VALUE EFFECT ``` +To remove a startup taint from multiple pools, specify the pool identifiers one after the other: + +```bash +scw k8s pool remove-startup-taint pool-id-1 pool-id-2 pool-id-3 key=your-startup-taint-key value=your-startup-taint-value effect=NoExecute +``` ## Configuring a taint for your pool(s) +### Adding a taint to your pool(s) + You can add a [taint](/kubernetes/concepts/#taints) to a single pool or multiple pools using the `scw k8s pool set-taint` command. In the following example, you are going to add a taint to one pool. @@ -636,7 +466,7 @@ ID 17654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt 2 minutes ago UpdatedAt now -Name my-pool-name +Name name-of-your-pool Status ready Version 1.35.3 NodeType gp1_xs @@ -668,12 +498,20 @@ Node startup taints: KEY VALUE EFFECT ``` +To add a taint to multiple pools, specify the pool identifiers one after the other: + +```bash +scw k8s pool set-taint pool-id-1 pool-id-2 pool-id-3 key=your-taint-key value=your-taint-value effect=NoExecute +``` + The taints you configure for your pool(s) are automatically applied to any new node created within the pool(s). Remember to add the appropriate tolerations in your Pod YAML manifests for any Pod that needs to run on a tainted node. +### Removing a taint from your pool(s) + You can remove a taint from a single pool or multiple pools using the `scw k8s pool remove-taint` command. In the following example, you are going to remove a startup taint from one pool. @@ -691,7 +529,7 @@ ID 17654321-1234-1234-4321-123456789123 ClusterID 12345678-1234-1234-4321-123456789123 CreatedAt 2 minutes ago UpdatedAt now -Name my-pool-name +Name name-of-your-pool Status ready Version 1.35.3 NodeType gp1_xs @@ -721,6 +559,11 @@ KEY VALUE EFFECT Node startup taints: KEY VALUE EFFECT ``` +To remove a taint from multiple pools, specify the pool identifiers one after the other: + +```bash +scw k8s pool remove-taint pool-id-1 pool-id-2 pool-id-3 key=your-taint-key +``` ## Deleting a Kubernetes pool From 37914572c39e9834162d77b7f640fe6550d6ef7c Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Fri, 19 Jun 2026 13:54:14 +0200 Subject: [PATCH 19/22] Editorial change (review comment) Co-authored-by: Firdevs Arslan --- pages/kubernetes/how-to/manage-node-pools.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 3380b3e379..6fa57773fd 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -122,7 +122,7 @@ To implement the scheduling constraints related to the node labels you have just 2. Run `kubectl get nodes` to check that the new nodes are in a `Ready` state. 3. Cordon the nodes in the old node pool to prevent new Pods from being scheduled there. For each node, run: `kubectl cordon ` - You can use a selector on the pool name label to cordon or drain multiple nodes at the same time if your app allows it (e.g., `kubectl cordon -l k8s.scaleway.com/pool-name=mypoolname`) + You can use a selector on the pool name label to cordon or drain multiple nodes at the same time if your app allows it (e.g., `kubectl cordon -l k8s.scaleway.com/pool-name=mypoolname`). 4. Drain the nodes to evict the Pods gracefully. - For each node, run: `kubectl drain --ignore-daemonsets --delete-emptydir-data` From beda8581b38fb9b3f31d3a4673b8e90fb1445f5d Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Fri, 19 Jun 2026 13:54:55 +0200 Subject: [PATCH 20/22] Editorial change (review comment) Co-authored-by: Firdevs Arslan --- pages/kubernetes/concepts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index b283cb8609..9bae89a554 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -154,7 +154,7 @@ This can be done using the `NodePort` configuration, which opens a static port o ## Startup taints -A startup taint is a temporary taint that is applied while a node is initializing. The taint remains in place until a controller or you remove it. For example, Cilium adds a default startup taint, and when initialization has completed, Cilium's controller automatically removes that taint, allowing workloads to be scheduled. +A startup taint is a temporary taint that is applied while a node is initializing. The taint remains in place until you or a controller remove it. For example, Cilium adds a default startup taint, and when initialization has completed, Cilium's controller automatically removes that taint, allowing workloads to be scheduled. You can use startup taints to prevent any workload from being placed on a node before node setup is complete. From c325d84afee5e026ab917d978d516f5f03fa1f3d Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Fri, 19 Jun 2026 14:45:09 +0200 Subject: [PATCH 21/22] feat(k8s): refinements MTA-7162 --- pages/kubernetes/concepts.mdx | 6 +++--- pages/kubernetes/how-to/create-kosmos-cluster.mdx | 4 +++- pages/kubernetes/how-to/manage-node-pools.mdx | 4 ++-- pages/kubernetes/quickstart.mdx | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index b283cb8609..f07d412007 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -154,7 +154,7 @@ This can be done using the `NodePort` configuration, which opens a static port o ## Startup taints -A startup taint is a temporary taint that is applied while a node is initializing. The taint remains in place until a controller or you remove it. For example, Cilium adds a default startup taint, and when initialization has completed, Cilium's controller automatically removes that taint, allowing workloads to be scheduled. +A startup taint is a temporary taint that is applied while a node is initializing. The taint remains in place until you or a controller remove it. For example, Cilium adds a default startup taint, and when initialization has completed, Cilium's controller automatically removes that taint, allowing workloads to be scheduled. You can use startup taints to prevent any workload from being placed on a node before node setup is complete. @@ -177,7 +177,7 @@ A taint is a node-level restriction that prevents a set of Pods from being sched A taint's impact is determined by its `effect` value: - `NoSchedule` blocks Pods from being scheduled -- `PreferNoSchedule` tries to avoid scheduling them but will fall back if no other node fits -- `NoExecute` both evicts any already‑running non‑tolerating pods and prevents new ones from being scheduled +- `PreferNoSchedule` tries to avoid scheduling Pods but may still do so if no other node fits +- `NoExecute` evicts any already‑running non‑tolerating Pods and prevents new ones from being scheduled Taints enable you to enforce sophisticated placement constraints — such as isolating sensitive workloads or nodes with expensive or specialized hardware — making them essential for meeting the advanced scheduling needs of large‑scale environments. \ No newline at end of file diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index fcf7630839..c4e81581d4 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -70,8 +70,10 @@ This section outlines the settings for your cluster pools. You can configure as ### How to configure startup taints or taints +The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kubernetes/concepts/#taints) you configure for your pool are automatically applied to any new node created within the pool. + 1. On the page of the pool that you wish to configure, click the **Scheduling & Placement** tab. -2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. +2. Select the **Startup taints** or the **Taints** checkbox, depending on what you wish to configure. 3. Specify a key-value pair and an effect: - **Key**: Acts as the identifier of the taint. - **Value**: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 3380b3e379..0b024d2c66 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -50,10 +50,10 @@ This documentation provides step-by-step instructions on how to manage Kubernete ## How to configure startup taints or taints -Note that the startup taints and taints you configure for your pool are automatically applied to any new node created within the pool. +The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kubernetes/concepts/#taints) you configure for your pool are automatically applied to any new node created within the pool. 1. On the page of the pool that you wish to configure, click the **Scheduling & Placement** tab. -2. Select the **[Startup taints](/kubernetes/concepts/#startup-taints)** or the **[Taints](/kubernetes/concepts/#taints)** checkbox, depending on what you wish to configure. The **Key**, **Value**, and **Effect** fields display. +2. Select the **Startup taints** or the **Taints** checkbox, depending on what you wish to configure. The **Key**, **Value**, and **Effect** fields display. 3. Specify a key-value pair and an effect: - **Key**: Acts as the identifier of the taint. - **Value**: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index d4bb97a2d6..8c54e3ae96 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -92,7 +92,7 @@ This section outlines the settings for your cluster pools. You can configure as 1. Click **Kubernetes** in the **Containers** section of the [Scaleway console](https://console.scaleway.com) side menu. The Kubernetes dashboard displays. 2. From the drop-down menu, select the geographical region you want to manage. -3. Click **Create cluster** to launch cluster creation wizard. +3. Click **Create cluster** to launch the cluster creation wizard. 4. Complete the following steps of the wizard: * Choose a **cluster type**. Select **Kubernetes Kosmos** to create a cluster that allows you to attach a compute Instance or dedicated server from any Cloud provider to a Scaleway Kubernetes control plane. From 144463f1b80c7dfa1b2094c9da748479e7e6dd63 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Fri, 26 Jun 2026 12:55:05 +0200 Subject: [PATCH 22/22] feat(k8s): updated tab changes + added delete icon MTA-7162 --- pages/kubernetes/how-to/create-cluster.mdx | 8 ++++---- pages/kubernetes/how-to/create-kosmos-cluster.mdx | 12 ++++++------ pages/kubernetes/how-to/manage-node-pools.mdx | 14 +++++++------- pages/kubernetes/quickstart.mdx | 15 ++++++++------- 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index a09ed0145c..fd6b4cffa6 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -63,12 +63,12 @@ This section outlines the settings for your cluster pools. You can configure as * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. - * Enter the pool's name and optional tags. - * Add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. + * **Scheduling** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. + * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). + * Enter the pool's name and optional tags. 2. To add more pools, click **Add pool** and repeat the steps above. - You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. 3. Once all pools are configured, click **Review**. diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index c4e81581d4..9cdfbb4a3b 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -52,9 +52,9 @@ This section outlines the settings for your cluster pools. You can configure as * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). - * **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. - * Enter the pool's name and optional tags. - * Add [node labels](#how-to-configure-node-labels), if required. + * **Scheduling** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and add [node labels](#how-to-configure-node-labels), if required. + * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). + * Enter the pool's name and optional tags. * For **Multi-cloud** pools: * Specify the external nodes to be added to the pool. @@ -64,7 +64,7 @@ This section outlines the settings for your cluster pools. You can configure as * Add [node labels](#how-to-configure-node-labels), if required. 3. To add more pools, click **Add pool** and repeat the steps above. - You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. 4. Once all pools are configured, click **Review**. @@ -72,7 +72,7 @@ This section outlines the settings for your cluster pools. You can configure as The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kubernetes/concepts/#taints) you configure for your pool are automatically applied to any new node created within the pool. -1. On the page of the pool that you wish to configure, click the **Scheduling & Placement** tab. +1. On the page of the pool that you wish to configure, click the **Scheduling** tab. 2. Select the **Startup taints** or the **Taints** checkbox, depending on what you wish to configure. 3. Specify a key-value pair and an effect: - **Key**: Acts as the identifier of the taint. @@ -91,7 +91,7 @@ By attaching node labels to a pool, you can: - **Require** Pods to run only on nodes that match the label(s), or - **Prefer** Pods to run on nodes that match the label(s). -1. On the page of the pool that you wish to configure, go to section **Pool details** > **Node labels**. +1. On the page of the pool that you wish to configure, go to section **Scheduling** tab > **Node labels**. 2. Specify a **Key** and a **Value**. 3. Click the **+ Add node label** button to add further node labels. diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 3db33ba24b..a8a6e894f8 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -34,12 +34,12 @@ This documentation provides step-by-step instructions on how to manage Kubernete - Configure pool options. Configuration options include: - **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - - **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and link your pool to a [placement group](/instances/concepts/#placement-groups), if required. + - **Scheduling** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and add [node labels](#how-to-configure-node-labels), if required. + - **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). - Enter the pool's name and optional tags. - - Add [node labels](#how-to-configure-node-labels), if required. 6. To add more pools, click **Add pool** and repeat the steps above. - You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. 7. Click **Review** once you have configured the desired pools. A summary of your configuration displays. 8. Verify your configuration and click **Submit** to add the pool(s) to your Kapsule cluster. @@ -52,7 +52,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kubernetes/concepts/#taints) you configure for your pool are automatically applied to any new node created within the pool. -1. On the page of the pool that you wish to configure, click the **Scheduling & Placement** tab. +1. On the page of the pool that you wish to configure, click the **Scheduling** tab. 2. Select the **Startup taints** or the **Taints** checkbox, depending on what you wish to configure. The **Key**, **Value**, and **Effect** fields display. 3. Specify a key-value pair and an effect: - **Key**: Acts as the identifier of the taint. @@ -76,7 +76,7 @@ By attaching node labels to a pool, you can: - **Require** Pods to run only on nodes that match the label(s), or - **Prefer** Pods to run on nodes that match the label(s). -1. On the page of the pool that you wish to configure, go to section **Pool details** > **Node labels**. +1. On the page of the pool that you wish to configure, go to section **Scheduling** tab > **Node labels**. 2. Specify a **Key** and a **Value**. 3. Click the **+ Add node label** button to add further node labels. @@ -98,10 +98,10 @@ To implement the scheduling constraints related to the node labels you have just - **Operations** tab: - Configure [autoscaling](/kubernetes/concepts/#autoscale) - Enable or disable the [autoheal feature](/kubernetes/reference-content/using-kapsule-autoheal-feature/) - - **Scheduling & Placement** tab: + - **Scheduling** tab: - Update [startup taints and taints](#how-to-configure-startup-taints-or-taints) + - Update [node labels](#how-to-configure-node-labels) - Update pool tags - - Update [node labels](#how-to-configure-node-labels) 6. Click **Update pool** to update the pool configuration. diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 8c54e3ae96..b06b06db53 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -65,14 +65,14 @@ This section outlines the settings for your cluster pools. You can configure as * Configure **pool options**: * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Choose whether to enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation). - * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and link to a [placement group](/instances/concepts/#placement-groups). + * **Scheduling** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. + * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). You can also choose to retain default settings. - * Enter the pool's details. - * Add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. + * Enter the pool's details. 2. To add more pools, click **Add pool** and repeat the steps above. - You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. 3. Once all pools are configured, click **Review** to finalize your cluster setup. @@ -122,13 +122,14 @@ To add a Scaleway pool to your Kosmos cluster: * Configure the **system volume**. * If required, configure **pool options**: * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). - * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), and link to a [placement group](/instances/concepts/#placement-groups). + * **Scheduling** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels), if required. + * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). Alternatively, you can leave these options at default values. - * Specify a **name** for the pool. Optionally, you can assign tags or [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels) to it. + * Specify a **name** for the pool. Optionally, you can assign tags to it. 3. To add more pools, click **Add pool** and repeat the steps above. - You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the trash bin icon next to the respective pool. + You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. 4. Once all pools are configured, click **Review** to finalize your cluster setup.