Skip to navigationSkip to main contentSkip to footerScaleway Docs HomepageAsk our AI
Ask our AI

How to manage Kubernetes Kapsule node pools

This documentation provides step-by-step instructions on how to manage Kubernetes Kapsule node pools using the Scaleway console.

Before you start

To complete the actions presented below, you must have:

How to create a new Kubernetes Kapsule node pool

Tip

Kubernetes Kapsule supports using both fully isolated and controlled isolation node pools within the same cluster. Learn more.

  1. Navigate to Kubernetes under the Containers section of the Scaleway console 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 & 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 (node type) for the pool.
    • Configure the system volume.
    • Configure pool options. Configuration options include:
    • Enter the pool's name and optional tags.
  6. To add more pools, click Add pool and repeat the steps above.
    Tip

    You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the delete icon 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.
Note

Alternatively, you can use the Scaleway CLI to create node pools.

How to configure startup taints or taints

The startup taints and 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 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.
    • 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.
Note

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.

How to configure node labels

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 Scheduling tab > 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:

  • 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 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 & Nodes tab to display the pool configuration of the cluster.
  4. Click more icon > Edit next to the node pool you want to edit.
  5. Configure the pool:
  6. Click Update pool to update the pool configuration.
Note

Alternatively, you can use the Scaleway CLI to update a node pool.

How to migrate existing workloads to a new Kubernetes Kapsule node pool

Important

Always ensure that your data is backed up before performing any operations that could affect it.

  1. Create the new node pool with the desired configuration either from the console or by using the Scaleway CLI tool scw.
    Tip

    Ensure that the new node pool is properly labeled if necessary.

  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 <node-name>
    Tip

    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 <node-name> --ignore-daemonsets --delete-emptydir-data
    • The --ignore-daemonsets flag is used because daemon sets manage Pods across all nodes and will automatically reschedule them.
    • The --delete-emptydir-data flag is necessary if your Pods use emptyDir volumes, but use this option carefully as it will delete the data stored in these volumes.
    • Refer to the official Kubernetes documentation for further information.
  5. Run kubectl get pods -o wide after draining, to verify that the Pods have been rescheduled to the new node pool.
  6. Delete the old node pool once you confirm that all workloads are running smoothly on the new node pool.

How to delete an existing Kubernetes Kapsule node pool

  1. Navigate to Kubernetes under the Containers section of the Scaleway console 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 & Nodes tab to display the pool configuration of the cluster.
  4. Click more icon > Delete next to the node pool you want to delete.
  5. Click Delete pool in the pop-up to confirm deletion of the pool.
    Important

    This action will permanently destroy your pool and all its data.

Note

Alternatively, you can use the Scaleway CLI to delete a node pool.

Still need help?

Create a support ticket
No Results