|
| 1 | +--- |
| 2 | +meta: |
| 3 | + title: Migrating pools of End-of-Life Instances to newer Instances in your Kubernetes Kapsule cluster |
| 4 | + 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. |
| 5 | +content: |
| 6 | + h1: Migrating End-of-Life instance pools in your Kubernetes Kapsule cluster |
| 7 | + 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. |
| 8 | +tags: kubernetes kapsule instance-migration |
| 9 | +dates: |
| 10 | + validation: 2025-01-24 |
| 11 | + posted: 2025-01-24 |
| 12 | +categories: |
| 13 | + - containers |
| 14 | +--- |
| 15 | + |
| 16 | +Scaleway is deprecating support for certain Instance types that have reached their End of Life (EOL). |
| 17 | +This guide outlines the recommended steps to migrate your Kubernetes Kapsule cluster node pools from deprecated Instance types to currently supported ones. |
| 18 | + |
| 19 | +<Macro id="requirements" /> |
| 20 | + |
| 21 | +* A Scaleway account logged into the [Scaleway console](https://console.scaleway.com) |
| 22 | +* [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing actions in the intended Organization |
| 23 | +* [Created](/kubernetes/how-to/create-cluster) a Kubernetes Kapsule or Kosmos cluster |
| 24 | + |
| 25 | + |
| 26 | +## Identifying deprecated Instance pools |
| 27 | + |
| 28 | +1. Log in to the [Scaleway Console](https://console.scaleway.com). |
| 29 | +2. Navigate to **Kubernetes** under the **Containers** section in the side menu of the console. |
| 30 | +3. From the drop-down menu, select the geographical region you want to manage. |
| 31 | +4. Select the cluster containing the node pools using deprecated Instances. |
| 32 | +5. In the **Pools** tab, check the **Instance type** column for any pools using deprecated or soon-to-be-removed types. |
| 33 | + |
| 34 | + |
| 35 | +## Creating replacement pools with supported Instance types |
| 36 | + |
| 37 | +1. For each ENT1 pool identified: |
| 38 | + - Click **+ Create pool** (or **Add pool**). |
| 39 | + - Choose a supported Instance type from the **Node Type** dropdown menu. |
| 40 | + - Configure the pool settings (e.g., Availability Zone, size, autoscaling, autoheal) to mirror the existing pool configuration as closely as possible. |
| 41 | + - Click **Create** (or **Add pool**) to initiate the new pool. |
| 42 | + |
| 43 | + |
| 44 | +2. Monitor the status of the new nodes until they reach **Ready** state: |
| 45 | + - In the **Pools** tab of the console. |
| 46 | + - Alternatively, use `kubectl` with the command: |
| 47 | + ```bash |
| 48 | + kubectl get nodes |
| 49 | + ``` |
| 50 | + |
| 51 | +<Message type="tip"> |
| 52 | + Schedule this migration during a maintenance window or low-traffic period to minimize service disruption. |
| 53 | +</Message> |
| 54 | + |
| 55 | + |
| 56 | +## Migrating workloads to the new pool |
| 57 | + |
| 58 | +1. [**Cordon**](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_cordon/) the deprecated nodes to prevent them from receiving new pods: |
| 59 | + ```bash |
| 60 | + kubectl cordon <deprecated-node-name> |
| 61 | + ``` |
| 62 | + |
| 63 | +2. **Drain** the deprecated nodes to reschedule workloads onto the new nodes: |
| 64 | + |
| 65 | + ```bash |
| 66 | + kubectl drain <deprecated-node-name> --ignore-daemonsets --delete-emptydir-data |
| 67 | + ``` |
| 68 | + |
| 69 | + <Message type="note"> |
| 70 | + 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. |
| 71 | + </Message> |
| 72 | + |
| 73 | +These commands ensure that your workloads are running on the new nodes before proceeding to delete the old pool. |
| 74 | + |
| 75 | + |
| 76 | +## Removing deprecated Instance pools |
| 77 | + |
| 78 | +After verifying that workloads have been rescheduled continue by deleting the old pool(s). |
| 79 | + |
| 80 | +1. Return to your cluster’s **Pools** tab and wait a few minutes to ensure all workloads have been rescheduled onto new nodes. |
| 81 | +2. Click <Icon name="more" /> next to the deprecated pool. |
| 82 | +3. Select **Delete pool**. |
| 83 | +4. Confirm the deletion. |
| 84 | + |
| 85 | + |
| 86 | +## Verifying migration success |
| 87 | + |
| 88 | +1. Check your nodes: |
| 89 | + |
| 90 | + ```bash |
| 91 | + kubectl get nodes |
| 92 | + ``` |
| 93 | + |
| 94 | + <Message type="note"> |
| 95 | + Only nodes based on supported Instance types should now be listed. |
| 96 | + </Message> |
| 97 | + |
| 98 | +2. Test your applications to confirm they are functioning correctly on the new nodes. |
| 99 | + |
| 100 | + |
| 101 | +<Message type="tip"> |
| 102 | + 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/). |
| 103 | +</Message> |
| 104 | + |
| 105 | +<Message type="note"> |
| 106 | + If you require assistance during the transitioning process, please [contact our Support team](https://console.scaleway.com/support/tickets). |
| 107 | +</Message> |
0 commit comments