Scaleway Elements Kubernetes Kapsule

Scaleway Elements Kubernetes Kapsule Overview

Scaleway Elements Kubernetes Kapsule provides a managed environment to create, configure and run a cluster of preconfigured machines for containerized applications. You will be able to create Kubernetes clusters without the complexity to manage the infrastructure.

The service offers full flexibility such as:

  • Scaling the number of pods depending on the workload.
  • Managing your cluster easily via the Kubectl

To administrate your Kubernetes Cluster easily, Scaleway provides a .kubeconfig file that allows to manage your cluster from your local computer by using kubectl. Kubectl is the command line interface for running commands against Kubernetes clusters.

To learn more about Scaleway Elements Kubernetes Kapsule, refer to the FAQ.

Requirements:

Core concepts

Kubernetes

Kubernetes is an extensible open-source platform, built to manage containerized workloads and services. For more detailed information, refer to our Introduction into Kubernetes and the official documentation.

Cluster

A cluster is a set of machines, called nodes, running containerized applications managed by Kubernetes. The Kubernetes Control Plane and associated load balancers are managed by Scaleway. A cluster has several worker nodes and at least one control plane. Each cluster is built for High Availability with a redundancy on the Control Plane.

Consider the following when creating a Control Plane:

  • A cluster belongs to one region
  • A cluster requires a Load Balancer (managed by Scaleway) in order correctly balance the traffic between the API masters.
  • As the clusters control plane and load balancer are managed by Scaleway, it is not possible to access them directly or to configure them individually.
  • A cluster requires a minimum of one pool of worker machines in order to deploy Kubernetes resources. (Pods must run on a worker node).

Pool

The Pool resource is a group of Scaleway compute instances, organized by type (e.g., GP1-S, GP1-M).

It represents the computing power of the cluster and contains the Kubernetes nodes, on which the containers run.

Consider the following when creating a Pool:

  • Containers require a minimum of one compute instance in the Pool.
  • A maximum of 20 compute instances can be added to a Pool.
  • A pool belongs to only one cluster, in the same region.

Load Balancer

Load balancing refers to efficiently distributing incoming network traffic across a group of backend servers. Scaleway services manage the traffic between the API masters. As a user, the load balancer is a service entirely managed by Scaleway.

You can create a Load Balancer, at extra charge, using the Kubernetes service type.

Namespaces

Namespaces are used in Kubernetes to divide cluster resources between multiple users. For detailed information, refer to Kubernetes official documentation on Namespaces

Ingress

An API object that manages external access to the services in a cluster, typically HTTPS. Ingress can provide load balancing, SSL termination and name-based virtual hosting.

Creating a Cluster

1 . Sign in to your Scaleway account

2 . Click Kapsule on the side menu. The Kapsule page is displayed.

3 . Click Create a cluster

4 . On the Create a Cluster page, enter:

  • A name for the cluster and optionally a description:

  • The geographical region of the cluster (Currently Kapsule is available in the PARIS region):

  • The Kubernetes version for the cluster:

  • The number of nodes in the cluster as well as the instance type of the nodes:

  • If required, configure advanced options which includes the container network interface, the ingress controller, the Kubernetes dashboard configuration (by default, the dashboard option is selected.) as well as cluster tags, which can help you to organize your cluster. Keep the default settings if you don’t know what these values mean:

5 . Click Create Cluster

Your cluster is being deployed

Once your cluster is created, it appears in the Clusters List.

Editing a Cluster

Several options are available from the pop-up menu on the cluster list page:

  • More info: See detailed information about the Cluster
  • Add a pool: Add additional computing resources to the Cluster
  • Get kubeconfig: Download the .kubeconfig file of the Cluster
  • Delete: Delete the Cluster

Monitoring a Cluster

To view your cluster information, click on the cluster itself. The cluster overview page provides several information:

  • Cluster information
  • Cluster tags
  • Renewal of the kubeconfig file to restore access permissions
  • Download of the kubeconfig file
  • The option to delete the cluster

If you click on the Pools tab, you are able to add, edit or delete a pool on your cluster.

If you click on the Nodes tab, you are able to reboot or replace nodes on your cluster.

Connecting to a Kubernetes Cluster via kubectl

Once the cluster is created, a .kubeconfig file is available for download to manage several Kubernetes clusters.

1 . Download the .kubeconfig files from the Clusters Details page:

2 . Set a variable for the .kubeconfig file. You have two options to do so:

# export KUBECONFIG=/$HOME/Downloads/myconfig
# kubectl get nodes

or

# mv $HOME/Downloads/myconfig $HOME/.kube/config
# kubectl get nodes

3 . Configure the kubectl program:

bash
# Use provided .kubeconfig file to access scw Kubernetes cluster
kubectl config --kubeconfig path/to/.kubeconfig/file set-context ...

Accessing the Kubernetes Dashboard using the kubectl

1 . Download the .kubeconfig file of your cluster from the console:

2 . Access the dashboard through kubectl proxy

kubectl proxy

3 . Open a browser and paste the following URL (for Kubernetes v1.16): http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

For Kubernetes prior to version 1.16 use the following URL: http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/.

4 . Select Kubeconfig as authentication method, choose the kubeconfig file to use and validate

Important: The Kubernetes dashboard is only available if the dashboard option is selected.

Deploying an Ingress Controller with the Cluster

An Ingress Controller is an entry point that ingests your HTTP/HTTPS traffic and dispatches it to your services. More closely, it is a reverse proxy that will dynamically configure itself and will forward HTTP/HTTPS traffic to your services.

It is possible to configure an Ingress Controller during cluster creation. Click on Advanced Options and click on Yes to enable the Ingress Controller. It is possible to setup traefik or Nginx:

Accessing the Nodes Public IPs

  • To access the nodes public IP, you can use the command below:
    kubectl get nodes -o wide
    

Scaleway Elements Kubernetes Kapsule Limitations

Kapsule presents the following limitations:

  • Cluster’s nodes cannot be accessed via SSH
  • /etc folder on Kubernetes Kapsule nodes might be used for internal cluster actions. Prefer /home or /data for local storage, even though local storage is not recommended in stateless Kubernetes clusters.

Going further?

To learn more about Scaleway Elements Kubernetes Kapsule, refer to

Discover a New Cloud Experience

Deploy SSD Cloud Servers in seconds.