Kubernetes is an open-source platform that enables developers to manage their containerized applications. Scaleway Kubernetes Kapsule and Kosmos are powerful tools to help you manage your containerized workloads and services.
They both provide a managed environment for creating, configuring, and running clusters of pre-configured machines.
The primary difference between Kapsule and Kosmos is that Kapsule clusters are composed solely of Scaleway Instances. In contrast, Kosmos is a managed Multi-Cloud Kubernetes Engine that allows you to connect Instances and virtual or dedicated servers from any cloud provider to a single managed Control-Plane.
containerd
and crio
are considered stable. NB: containerd
ships with gvisor
for untrusted workloads).Refer to our dedicated concepts page to find definitions of all Kubetnetes-related terminology.
Requirements
To perform the following steps, you must first ensure that:
curl
1. Configure your environment variables.
Note: This is an optional step that seeks to simplify your usage of the APIs.
2. Edit the POST request payload you will use to create your Kubernetes cluster. Replace the parameters in the following example:
Parameter | Description |
---|---|
project_id | The ID of the Project you want to create your Kubernetes cluster in. To find your Project ID you can list the projects or consult the Scaleway console. |
type | The type of the cluster (possible values are kapsule , multicloud ). |
name | REQUIRED Name of the cmister. |
description | Description of the cluster. |
tags | Tags associated with the cluster. |
version | REQUIRED Kubernetes version of the cluster. |
cni | REQUIRED Container Network Interface (CNI) plugin that will run on the cluster. The default value is unknown_cni . |
pools | Pools to be created along with the cluster. |
name | REQUIRED Name of the pool. |
node-type | REQUIRED The node type of the Scaleway Instance wanted for the pool. |
size | REQUIRED The number of nodes in the pool. |
tags | Tags associated with the pool. |
zone | Availability zone in which the pools will be deployed in. |
root_volume_type | The root volume type. The default value is default_volume_type . |
root_volume_size | The system volume disk size in bytes. |
Create a Kapsule cluster and node pool by running the following command. Make sure you include the payload you edited in the previous step.
List your Kapsule Clusters.
You will see detailed information about your clusters.
Download the kubeconfig file for your cluster
Tip: Add ?dl=1
at the end of the URL to directly get the base64
-decoded kubeconfig. If not, the kubeconfig will be base64
-encoded.
Connect to your cluster using kubectl.
Delete your cluster.
Scaleway's infrastructure is spread across different regions and Availability Zones.
Kubernetes Kapsule and Kosmos are available in the Paris, Amsterdam and Warsaw regions, which are represented by the following path parameters:
fr-par
nl-ams
pl-waw
Kubernetes Kosmos and Kapsule supports at least the latest version of the last 3 major Kubernetes releases.
A cluster is a fully managed Kubernetes cluster.
It is composed of different pools, each pool containing the same kind of nodes.
List all the existing Kubernetes clusters in a specific Region.
created_at_asc
, created_at_desc
, updated_at_asc
, updated_at_desc
, name_asc
, name_desc
, status_asc
, status_desc
, version_asc
and version_desc
. The default value is created_at_asc
.unknown
, creating
, ready
, deleting
, deleted
, updating
, locked
and pool_required
. The default value is unknown
.Create a new Kubernetes cluster on a Scaleway account.
organization_id
and project_id
may be set.organization_id
and project_id
may be set.unknown_cni
, cilium
, calico
, weave
, flannel
and kilo
. The default value is unknown_cni
.unknown_ingress
, none
, nginx
, traefik
and traefik2
. The default value is unknown_ingress
.unknown
, creating
, ready
, deleting
, deleted
, updating
, locked
and pool_required
. The default value is unknown
.unknown_cni
, cilium
, calico
, weave
, flannel
and kilo
. The default value is unknown_cni
.unknown_ingress
, none
, nginx
, traefik
and traefik2
. The default value is unknown_ingress
.Get details about a specific Kubernetes cluster.
unknown
, creating
, ready
, deleting
, deleted
, updating
, locked
and pool_required
. The default value is unknown
.unknown_cni
, cilium
, calico
, weave
, flannel
and kilo
. The default value is unknown_cni
.unknown_ingress
, none
, nginx
, traefik
and traefik2
. The default value is unknown_ingress
.Update a specific Kubernetes cluster. Note that this method is designed to update details such as name, description, tags and configuration. However, you cannot upgrade a cluster with this method. To do so, use the dedicated endpoint.
unknown_ingress
, none
, nginx
, traefik
and traefik2
. The default value is unknown_ingress
.unknown
, creating
, ready
, deleting
, deleted
, updating
, locked
and pool_required
. The default value is unknown
.unknown_cni
, cilium
, calico
, weave
, flannel
and kilo
. The default value is unknown_cni
.unknown_ingress
, none
, nginx
, traefik
and traefik2
. The default value is unknown_ingress
.Delete a specific cluster and all its associated pools and nodes. Note that this method will not delete any Load Balancers or Block Volumes that are associated with the cluster.
unknown
, creating
, ready
, deleting
, deleted
, updating
, locked
and pool_required
. The default value is unknown
.unknown_cni
, cilium
, calico
, weave
, flannel
and kilo
. The default value is unknown_cni
.unknown_ingress
, none
, nginx
, traefik
and traefik2
. The default value is unknown_ingress
.List the versions that a specific Kubernetes cluster is allowed to upgrade to. Results will comprise every patch version greater than the current patch, as well as one minor version ahead of the current version. Any upgrade skipping a minor version will not work.
Download the Kubernetes cluster config file (AKA kubeconfig) for a specific cluster in order to use it with, for instance, kubectl
. Tips: add ?dl=1
at the end of the URL to directly get the base64 decoded kubeconfig. If not, the kubeconfig will be base64 encoded.
Reset the admin token for a specific Kubernetes cluster. This will invalidate the old admin token (which will not be usable afterwards) and create a new one. Note that you will need to redownload kubeconfig in order to keep interacting with the cluster.
Change type of a specific Kubernetes cluster.
unknown
, creating
, ready
, deleting
, deleted
, updating
, locked
and pool_required
. The default value is unknown
.unknown_cni
, cilium
, calico
, weave
, flannel
and kilo
. The default value is unknown_cni
.unknown_ingress
, none
, nginx
, traefik
and traefik2
. The default value is unknown_ingress
.Upgrade a specific Kubernetes cluster and/or its associated pools to a specific and supported Kubernetes version.
unknown
, creating
, ready
, deleting
, deleted
, updating
, locked
and pool_required
. The default value is unknown
.unknown_cni
, cilium
, calico
, weave
, flannel
and kilo
. The default value is unknown_cni
.unknown_ingress
, none
, nginx
, traefik
and traefik2
. The default value is unknown_ingress
.A pool is a set of identical nodes. A pool has a name, a size (its current number of nodes), node number limits (min, max), and a Scaleway Instance type. Changing those limits increases/decreases the size of a pool. Thus, the pool will grow or shrink inside those limits when autoscaling is enabled, depending on its load. A "default pool" is automatically created with every cluster.
List all the existing pools for a specific Kubernetes cluster.
created_at_asc
, created_at_desc
, updated_at_asc
, updated_at_desc
, name_asc
, name_desc
, status_asc
, status_desc
, version_asc
and version_desc
. The default value is created_at_asc
.Create a new pool in a specific Kubernetes cluster.
unknown_runtime
, docker
, containerd
and crio
. The default value is unknown_runtime
.default_volume_type
, l_ssd
and b_ssd
. The default value is default_volume_type
.unknown
, ready
, deleting
, deleted
, scaling
, warning
, locked
and upgrading
. The default value is unknown
.unknown_runtime
, docker
, containerd
and crio
. The default value is unknown_runtime
.default_volume_type
, l_ssd
and b_ssd
. The default value is default_volume_type
.Get details about a specific pool in a Kubernetes cluster.
unknown
, ready
, deleting
, deleted
, scaling
, warning
, locked
and upgrading
. The default value is unknown
.unknown_runtime
, docker
, containerd
and crio
. The default value is unknown_runtime
.default_volume_type
, l_ssd
and b_ssd
. The default value is default_volume_type
.Update attributes of a specific pool, such as size, autoscaling settings, and tags.
unknown
, ready
, deleting
, deleted
, scaling
, warning
, locked
and upgrading
. The default value is unknown
.unknown_runtime
, docker
, containerd
and crio
. The default value is unknown_runtime
.default_volume_type
, l_ssd
and b_ssd
. The default value is default_volume_type
.Delete a specific pool from a cluster. All of the pool's nodes will also be deleted.
unknown
, ready
, deleting
, deleted
, scaling
, warning
, locked
and upgrading
. The default value is unknown
.unknown_runtime
, docker
, containerd
and crio
. The default value is unknown_runtime
.default_volume_type
, l_ssd
and b_ssd
. The default value is default_volume_type
.Upgrade the Kubernetes version of a specific pool. Note that this will work when the targeted version is the same than the version of the cluster.
unknown
, ready
, deleting
, deleted
, scaling
, warning
, locked
and upgrading
. The default value is unknown
.unknown_runtime
, docker
, containerd
and crio
. The default value is unknown_runtime
.default_volume_type
, l_ssd
and b_ssd
. The default value is default_volume_type
.A node (short for worker node) is an abstraction for a Scaleway Instance. A node is always part of a pool. Each of them will have Kubernetes software automatically installed and configured by Scaleway. Please note that Kubernetes nodes cannot be accessed with SSH.
List all the existing nodes for a specific Kubernetes cluster.
created_at_asc
and created_at_desc
. The default value is created_at_asc
.Get details about a specific Kubernetes node.
unknown
, creating
, not_ready
, ready
, deleting
, deleted
, locked
, rebooting
, creation_error
, upgrading
, starting
and registering
. The default value is unknown
.Delete a specific node. Note that when there is not enough space to reschedule all the pods (in a one-node cluster for instance), you may experience some disruption of your applications.
unknown
, creating
, not_ready
, ready
, deleting
, deleted
, locked
, rebooting
, creation_error
, upgrading
, starting
and registering
. The default value is unknown
.Reboot a specific node. This node will first be cordoned, meaning that scheduling will be disabled. Then the existing pods on the node will be drained and rescheduled onto another schedulable node. Note that when there is not enough space to reschedule all the pods (in a one-node cluster, for instance), you may experience some disruption of your applications.
unknown
, creating
, not_ready
, ready
, deleting
, deleted
, locked
, rebooting
, creation_error
, upgrading
, starting
and registering
. The default value is unknown
.Get metadata about a Kosmos node. This method is not intended to be directly called by end users, only by the kapsule-node-agent.
A version is a vanilla Kubernetes version like x.y.z
. It comprises a major version x, a minor version y, and a patch version z. Scaleway's managed Kubernetes, Kapsule, will support at minimum the last patch version for the last three minor releases. Also, each version has a different set of container runtimes, CNIs, ingresses, feature gates, and admission plugins available.
List all available versions for the creation of a new Kubernetes cluster.
Get a specific Kubernetes version and the details about the version.