How To: Deploy a Kubernetes cluster (sys-admin nomination required)

Prerequisites

The user has to be registered in the IAM system for INFN-Cloud https://iam.cloud.infn.it/login. Only registered users can login into the INFN-Cloud dashboard https://my.cloud.infn.it/login.

User responsabilities

Important

The solution described in this guide consists on the deployment of a Kubernetes cluster on top of Virtual Machines instantiated on INFN-CLOUD infrastructure. The instantiation of a VM comes with the responsibility of maintaining it and all the services it hosts. In particular, be careful when updating the operating system packages, as they could incorrectly modify the current version of the cluster (v1.19) and cause it to malfunction.

Please read the INFN Cloud AUP in order to understand the responsabilities you have in managing this service.

Kubernetes cluster configuration

Note

If you belong to multiple projects, aka multiple IAM-groups, after login into the dashboard, from the upper right corner, select the one to be used for the deployment you intend to perform. Not all solutions are available for all projects. The resources used for the deployment will be accounted to the respective project, and impact on their available quota. See figure below.

../_images/howto1_01.png

Select the “Kubernetes cluster” button and then “configure”. The configuration menu shows only your projects allowed to instantiate it.

Select project in configuration

Once done the configuration form appears. Parameters are splitted in two pages: “Basic” and “Advanced” configuration.

Kubernetes basic configurazion
Kubernetes advanced configurazion

Basic configuration

Default parameters are ready for the submission of a cluster composed by 1 master and 1 slave. By default the provider where the cluster will be instantiated is automatically selected by the INFN Cloud orchestrator service.

The user has to specify:

  • the flavor of master and slave selecting between medium (2 VCPUs, 4GB RAM) and large (4 VCPUs, 8 GB RAM)
  • the number of slaves if more than one in needed
  • admin_token: the password that will be used as the admin token to access the Kubernetes and Grafana dashboards.

If needed, a single port or a range can be specified to be open on the master. By policy the open ports on providers are higher than 8000.

Kubernetes basic configurazion

Advanced configuration

The user can select:

  • the timeout for the deployment
  • “no cluster deletion” in case of failure
  • don’t send the confirmation email when complete
  • the manual scheduling, selecting the provider where the cluster will be created. The list of providers is related to the project.
Kubernetes providers

Deployment result

To check the status of the deployment and its details select the “deployments” button. Here all the user’s deployments are reported with “deployment identifier”, “status”, “creation time”, the “resources provider” and the button “Details”.

Kubernetes deployment result

For each deployment the button “Details” allows:

  • to delete the cluster
  • to show the tosca template of the cluster (with the default values)
  • to retrieve the deployment log file that contains error messages in case of failure
  • to lock the deployment

Clicking on the “deployment identifier” or on “Details” button the details of the deployed cluster are shown:

  • the “Overview” of the cluster
  • the “Input Values” used for the cluster configuration
  • the “Output Values” to access the cluster, as the kubernetes and grafana dashboard endpoints, the kubeconfig file to download and the ssh keys to access the created VMs.
Kubernetes overview
Kubernetes input value
Kubernetes output value

Troubleshooting

In both the cases (auto and manual scheduling) the success of creation depends on the provider resources availability. Otherwise a “no quota” is reported as failure reason.