How to create a Kubernetes Kosmos cluster
Kubernetes Kosmos provides an alternative to a classic Kubernetes Kapsule. With Kubernetes Kosmos, you can create a Kubernetes cluster comprising both managed Scaleway Instances (with autohealing and autoscaling) and external instances and servers from any other cloud provider. Scaleway ensures the high availability of your services globally, across different zones, regions, and providers. In addition to the Kubernetes Kapsule pricing, you are charged for the Kubernetes Kosmos control plane and an additional fee for managed external nodes.
Before you start
To complete the actions presented below, you must have:
- A Scaleway account logged into the console
- Owner status or IAM permissions allowing you to perform actions in the intended Organization
Cluster configuration
- Navigate to Kubernetes under the Containers section of the Scaleway console side menu. The Kubernetes dashboard displays.
- From the drop-down menu, select the geographical region you want to manage.
- Click Create cluster to launch the cluster creation wizard.
- On the cluster configuration page, provide the following details:
- Check the Organization and Project for the new cluster.
- Select Kubernetes Kosmos as the cluster type.
- Verify the geographical region for the cluster.
- Select the control plane offer for your cluster. Options include shared or dedicated control planes.
- Specify the Kubernetes version for your cluster.
- Provide a name for the cluster. Optionally, you can add a description and tags for better organization.
- If you want to add pools, click Configure pools (optional) to proceed. If you do not wish to add any pools, click Review.
Pool configuration
This section outlines the settings for your cluster pools. You can configure as many pools for your cluster as you require.
- Choose the pool type. Available types are Scaleway or Multi-cloud.
- Specify the following for each pool:
- For Scaleway pools:
- Choose the Availability Zone for the pool's nodes.
- Select the node type for the pool.
- Configure the system volume. This volume contains the operating system of the nodes in your pool.
- Configure pool options or retain default settings. Configuration options include:
- Operations tab: Configure node count and choose whether to enable autoscaling and autoheal.
- Scheduling tab: Configure startup taints and/or taints, and add node labels, if required.
- Placement tab: Link to a security group or a placement group.
- Enter the pool's name and optional tags.
- For Multi-cloud pools:
- Specify the external nodes to be added to the pool.
- Enter the pool's name and optional tags.
- Add node labels, if required.
- For Scaleway pools:
- To add more pools, click Add pool and repeat the steps above.
- Once all pools are configured, click Review.
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.
- On the page of the pool that you wish to configure, click the Scheduling tab.
- Select the Startup taints or the Taints checkbox, depending on what you wish to configure.
- 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.
- Click the + Add startup taint or + Add taint button to add further startup taints or taints, respectively.
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).
- On the page of the pool that you wish to configure, go to section Scheduling tab > Node labels.
- Specify a Key and a Value.
- 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.
Review configuration
- Review the configuration details of your Kubernetes cluster and its pools (if any).
- Click Submit to deploy your cluster. Once deployment is complete, the cluster appears in the clusters list.