Kubernetes Kapsule by Scaleway is a managed, production-ready environment for deploying, managing and scaling containerized applications. It installs and operates Kubernetes Clusters, allowing you to get up and running with them in no time.
"Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available." -- What is kubernetes
containerd
and crio
are considered stable. NB: containerd
ships with gvisor
for untrusted workloads).This API allows you to:
The Cluster Master directs the worker nodes, making scheduling decisions, responding to events, implementing changes, and monitoring the Cluster. Its components (kube-apiserver, kube-scheduler and kube-controller-manager) are managed by Scaleway to ensure the Master remains highly available. Consequently, you cannot set your own parameters on the Kubernetes api-server, controller-manager and scheduler. Scaleway takes care of your control plane: its health is continuously monitored and watched by a dedicated team. Its availability enables the Master to get upgraded or rebooted without any downtime, and the team can perform maintenance operations on your clusters in total transparency.
Component on the master that exposes the Kubernetes API. It is the front-end for the Kubernetes control plane. It is managed by Scaleway.
Component on the master that watches newly created pods that have no assigned node, and selects a node for them to run on. It is managed by Scaleway.
Component on the master that runs controllers of Kubernetes. It is managed by Scaleway.
Scaleway Load Balancers are used to route requests toward the multiple control-plane replicas. This enables high availability for your Cluster.
Consistent and highly-available key value store used as Kubernetes backing store for all cluster data.
The Cloud Controller Manager runs controllers that interact with Scaleway cloud, allowing to create load balancer objects and to retrieve information about your cluster (node public IP, node location, node commercial type...)
Deamon that reports nodes statuses to the orchestrator, allowing -for instance- healing actions when a node has been down for a certain period of time.
Cluster resources (i.e. nodes) are managed within pools. A pool has a name (optional), a size (its current number of nodes), and nodes number limits (min, max). Changing those limits increases/decreases the size of a pool. Thus, when autoscaling is enabled, the pool will grow or shrink inside those limits, depending on its cluster load. A "default pool" is automatically created with every Cluster and can't be deleted.
A Node (short for Worker Node) is an abstraction for a Scaleway instance. It is part of a pool and is instantiated by Scaleway, making Kubernetes software installed and configured automatically on it. Please note that Kubernetes nodes cannot be accessed with ssh.
Container Network Interface (https://github.com/containernetworking/cni) is a standard designed to ease configuration of container networking at their creation/deletion. Various projects have been released to address Kubernetes networking requirements and provide the networking features that cluster administrators require. Kubernetes Kapsule supports the following CNI plugins : cilium (https://cilium.io/), flannel (https://github.com/coreos/flannel), calico (https://github.com/projectcalico/cni-plugin) & weave (https://www.weave.works/oss/net/).
A cluster is a fully managed Kubernetes cluster.
It is composed of different pools, each pool containing the same kind of nodes.
This method allows to list all the existing Kubernetes clusters in an account.
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
.This method allows to create a new Kubernetes cluster on an 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
.This method allows to 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
.This method allows to update a specific Kubernetes cluster. Note that this method is not made to upgrade a Kubernetes cluster.
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
.This method allows to 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
.This method allows to list the versions that a specific Kubernetes cluster is allowed to upgrade to. Note that it will be every patch version greater than the actual one as well a one minor version ahead of the actual one. Upgrades skipping a minor version will not work.
This method allows to 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.
This method allows to reset the admin token for a specific Kubernetes cluster. This will invalidate the old admin token (which will not be usable after) and create a new one. Note that the redownload of the kubeconfig will be necessary to keep interacting with the cluster (if the old admin token was used).
This method allows to 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), nodes number limits (min, max) and a Scaleway instance type. Changing those limits increases/decreases the size of a pool. Thus, when autoscaling is enabled, the pool will grow or shrink inside those limits, depending on its load. A "default pool" is automatically created with every cluster.
This method allows to 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
.This method allows to 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
.This method allows to get details about a specific pool.
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
.This method allows to update some attributes of a specific pool such as the size, the autoscaling enablement, the 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
.This method allows to delete a specific pool from a cluster, deleting all the nodes associated with it.
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
.This method allows to 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. It is part of a pool and is instantiated by Scaleway, making Kubernetes software installed and configured automatically on it. Please note that Kubernetes nodes cannot be accessed with ssh.
This method allows to list all the existing nodes for a specific Kubernetes cluster.
created_at_asc
and created_at_desc
. The default value is created_at_asc
.This method allows to 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
.This method allows to 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
.This method allows to reboot a specific node. This node will frist be cordoned, meaning that scheduling will be disabled. Then the existing pods on the node will be drained and reschedule 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
.A version is a vanilla Kubernetes version like x.y.z
.
It is composed of a major version x, a minor version y and a patch version z.
Scaleway's managed Kubernetes, Kapsule, will at least support the last patch version for the last three minor release.
Also each version have a different set of container runtimes, CNIs, ingresses, feature gates and admission plugins available.
This method allows to list all available versions for the creation of a new Kubernetes cluster.
This method allows to get a specific Kubernetes version and the details about the version.