Skip to content

feat(k8s): update doc to make it generic #5170

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions menu/navigation.json
Original file line number Diff line number Diff line change
Expand Up @@ -1919,10 +1919,6 @@
"label": "Use the scratch storage on H100 GPU Instances with Kapsule",
"slug": "use-scratch-storage-h100"
},
{
"label": "Migrate existing ENT1 pools to POP2 Instances",
"slug": "migrate-ent1-pools-to-pop2"
},
{
"label": "Deploy x86 and ARM images in Kubernetes",
"slug": "deploy-x86-arm-images"
Expand Down Expand Up @@ -2050,6 +2046,10 @@
{
"label": "Wildcard DNS routing",
"slug": "wildcard-dns"
},
{
"label": "Migrate end-of-life pools to newer Instances",
"slug": "migrate-end-of-life-pools-to-newer-instances"
}
],
"label": "Additional Content",
Expand Down
97 changes: 0 additions & 97 deletions pages/kubernetes/how-to/migrate-ent1-pools-to-pop2.mdx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
meta:
title: Migrating pools of End-of-Life Instances to newer Instances in your Kubernetes Kapsule cluster
description: A step-by-step guide to transitioning from deprecated Instance types to newer ones in Scaleway's Kubernetes Kapsule clusters, ensuring minimal disruption and optimal performance.
content:
h1: Migrating End-of-Life instance pools in your Kubernetes Kapsule cluster
paragraph: A step-by-step guide to transitioning from deprecated Instance types to more recent ones in Scaleway's Kubernetes Kapsule clusters, ensuring minimal disruption and optimal performance.
tags: kubernetes kapsule instance-migration
dates:
validation: 2025-01-24
posted: 2025-01-24
categories:
- containers
---

Scaleway is deprecating support for certain Instance types that have reached their End of Life (EOL).
This guide outlines the recommended steps to migrate your Kubernetes Kapsule cluster node pools from deprecated Instance types to currently supported ones.

<Macro id="requirements" />

* A Scaleway account logged into the [Scaleway console](https://console.scaleway.com)
* [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing actions in the intended Organization
* [Created](/kubernetes/how-to/create-cluster) a Kubernetes Kapsule or Kosmos cluster


## Identifying deprecated Instance pools

1. Log in to the [Scaleway Console](https://console.scaleway.com).
2. Navigate to **Kubernetes** under the **Containers** section in the side menu of the console.
3. From the drop-down menu, select the geographical region you want to manage.
4. Select the cluster containing the node pools using deprecated Instances.
5. In the **Pools** tab, check the **Instance type** column for any pools using deprecated or soon-to-be-removed types.


## Creating replacement pools with supported Instance types

1. For each ENT1 pool identified:
- Click **+ Create pool** (or **Add pool**).
- Choose a supported Instance type from the **Node Type** dropdown menu.
- Configure the pool settings (e.g., Availability Zone, size, autoscaling, autoheal) to mirror the existing pool configuration as closely as possible.
- Click **Create** (or **Add pool**) to initiate the new pool.

2. Monitor the status of the new nodes until they reach **Ready** state:
- In the **Pools** tab of the console.
- Alternatively, use `kubectl` with the command:
```bash
kubectl get nodes
```

<Message type="tip">
Schedule this migration during a maintenance window or low-traffic period to minimize service disruption.
</Message>


## Migrating workloads to the new pool

1. [**Cordon**](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_cordon/) the deprecated nodes to prevent them from receiving new pods:
```bash
kubectl cordon <deprecated-node-name>
```

2. **Drain** the deprecated nodes to reschedule workloads onto the new nodes:

```bash
kubectl drain <deprecated-node-name> --ignore-daemonsets --delete-emptydir-data
```

<Message type="note">
The flags `--ignore-daemonsets` and `--delete-emptydir-data` may be necessary depending on your environment. Refer to the official [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#drain) for detailed information on these options.
</Message>

These commands ensure that your workloads are running on the new nodes before proceeding to delete the old pool.


## Removing deprecated Instance pools

After verifying that workloads have been rescheduled, continue by deleting the old pool(s).

1. Return to your cluster’s **Pools** tab and wait a few minutes to ensure all workloads have been rescheduled onto new nodes.
2. Click <Icon name="more" /> next to the deprecated pool.
3. Select **Delete pool**.
4. Confirm the deletion.


## Verifying migration success

1. Check your nodes:

```bash
kubectl get nodes
```

<Message type="note">
Only nodes based on supported Instance types should now be listed.
</Message>

2. Test your applications to confirm they are functioning correctly on the new nodes.


<Message type="tip">
Minimize downtime by maintaining multiple replicas of key workloads and setting up [Pod Disruption Budgets (PDBs)](https://kubernetes.io/docs/tasks/run-application/configure-pdb/).
</Message>

<Message type="note">
If you require assistance during the transitioning process, please [contact our Support team](https://console.scaleway.com/support/tickets).
</Message>
Loading