Skip to content

Installing an OVH Kubernetes Cluster managed with Muppy

This document describes how to configure an OVH Managed Kubernetes Cluster for use with muppy.io / Pack8s.

OVH Public Cloud - Managed Kubernetes Service

First, select or create an OVH Public Cloud project.

Creating a vRack

If you do not have one, create a vRack and attach your Public Cloud project to it.

Creating a Private Network

Create the private network that the K8s cluster and the database will use.

  • Select the Location
  • Name your private network
  • Check Create a Gateway and connect to the private network
  • Check Define a VLAN ID

Launch the creation of the Private Network.

Warning

The VLAN ID determines the IP address range that is allocated: 10.{ID}.0.0/16

Creating a Managed Kubernetes Service

  • Select Managed Kubernetes Service
  • Click Create a Cluster
  • Select a location — it must be the same as the PostgreSQL cluster's.
  • Select the K8s version — take the recommended one
  • Select a private network for this cluster:
    • Attached private network: select the private network you have just created
    • Network gateway: when this option is on, the nodes' outgoing traffic goes through a gateway, which lets you control the IP the nodes use to reach external resources.
  • Select a node type (use Discovery D2-8 for test / dev)
  • Configure the size of the node pool:

    • You can choose between Autoscaling and a fixed number of nodes. Check Autoscaling enabled for Dev / Test.
  • Select the billing mode (Hourly is fine for Dev / Test, but remember to shut your servers down.)

Warning

A Gateway is mandatory if you want all your nodes — including those provisioned dynamically — to have a fixed, known IP.

Creating a PostgreSQL cluster

Create an instance with the following characteristics:

  • Model: it must be identical across every replicated PostgreSQL instance.
  • Location: the location must be compatible with the Managed Kubernetes Cluster, if you use one.
  • Image: a supported Ubuntu LTS
  • SSH key: Muppy's
  • Instance name: the name must not refer to the instance's model, but keeping the location in it is useful.
  • Automated backup: if the size of your databases allows it, take a Rotation 7.
  • Network:
    • Private mode, and select the Private network you created.
    • Check Attach a Floating IP to this instance (see the note below)
  • Billing period: unless the database is meant for testing — and therefore temporary — select Monthly.

Note

The Floating IP is needed to:

  • let the server join an RCS
  • let muppy connect to the server.

Creating an RCS

On the Primary PostgreSQL Cluster, check:

  • that the IPs are consistent:
    • Host IP: the Host's private IP
    • Control: the IP Muppy uses to connect over SSH. At OVH, this is usually a public Floating IP.
    • Public IP: use the Detect button (the IP depends on the gateway)

Warning

If these 3 IPs are not configured correctly, setting up the RCS and High Availability will fail.

Enrolling the k8s Cluster in Muppy

Then you must:

  • create the k8s Cluster in Muppy
  • install the Muppy Infrastructure Packages

Creating the k8s Cluster in Muppy

From the Muppy / K8s / K8s Clusters menu:

  • Create a Cluster
  • Upload the Cluster's Kubeconfig file
    • How the Kubeconfig file is obtained depends on the provider
  • Set the Qualifier, the Provider and the Availability Zone
  • Click Update Info and check that Muppy retrieves the Namespaces.

Installing the Infrastructure Packages

Installing the Infrastructure Packages is documented here: Infrastructure Packages

Note the following specifics of OVH Managed Kubernetes Clusters (OVH MKS):

  • Cert-Manager is deployed in the cluster
  • Traefik is configured as an Ingress and connected to a Kubernetes Load Balancer
  • Certificates can be verified over HTTP or over DNS.