⚒️Kubernetes

Ce document décrit comment configurer un Cluster SingleNode sécurisé géré avec Muppy Pack8s (HA Multi Cloud)

Actuellement, l'installation d'un cluster microk8s n'est géré que sur Ubuntu 20.04 ou 24.04. Les versions de microk8s supportées pour Ubuntu 20.04 et 22.04 sont respectivement la 1.28 et 1.30.

Muppy requière une interface privée pour installer microk8s. Les interfaces privées peuvent être fourni par votre cloud provider ou en utilisant tailscale

Introduction

Un cluster single node est un cluster k8s qui ne contient qu'une seul noeud sur lequel tournent:

  • le Control Plane

  • Kubelet (worker)

  • PostgreSQL (cf. options)

Après avoir enrôlé votre Host avec Muppy, celui-ci est prêt pour l'installation d'un cluster microk8s. Si vous n'avez pas d'interface privée, nous vous conseillons d'utiliser tailscale.

Il y a trois options pour PostreSQL:

  • Ne pas l'installer

  • l'installer sur le Node

  • l'installer sur un host distinct.

Stratégies de sécurité

2 stratégies de sécurité des Clusters Kubernetes sont gérées par Muppy actuellement:

  • Private

  • Public (Mode WAF ou Whitelist)

Private

Dans ce mode, tout est publié sur l'IP Privée (Tailscale) et le firewall est configurée pour ne laisser passer que les flux administratifs.

Cette stratégie est bien adaptée aux serveurs de developpement ou contenant des informations sensibles. Mais ils sont complètement isolés.

Dans cette confguration, aucun service n'est configuré sur l'IP Public.

Public

Dans ce mode, chaque Service peut être publié sur l'interface Public ou Private.

Pour cela, Muppy installe un Router TCP (Level 4) qui redirige le traffic TCP de l'IP Public vers l'IP Privée.

En complément, les Services publiés sur l'interface Public peuvent être filtrés en utilisant:

  • ipWhiteListing ; l'accès est réservé à une liste d'address IP qui peut être mise à jour dynamiquement (CIDR Dynamic Range)

  • TocToc ; l'accès est géré par Muppy TocToc qui permet de gérer les accès par email ou autres moyens.

  • HTTP Basic Auth ; permet d'ajouter une protection rudimentaire par user et mot de passe (A absolument éviter).

Ces 3 systèmes de filtrage sont adaptés aux sites réservés à un usage interne, mais ils sont inutiles pour un site Public.

Pour maximiser la sécurité, les packages d'infrastructure déployés par Muppy, sont toujours déployés sur l'IP Private et filtrés par IP Whitelisting.

Sites internet Public

Pour les sites complètement Public, Muppy permet de filtrer toutes les requêtes avec OWASP ModSecurity Core Rule Set.

Si votre site Public est ouvert à une volume important, nous vous conseillons de déployer un niveau de filtrage / sécurité supplémentaire.

Conclusion

Avant de lancer l'installation, vous devez avoir:

  • Sélectionné une stratégie de sécurité: private ou public

  • [Option] Défini une liste d'IP Fixes autorisées à accéder aux services publiés par le cluster

Prérequis

  1. Le Host doit disposer d'au moins une interface Private.

  2. Vous avez défini la stratégie de sécurité à appliquer au Cluster parmis les options suivantes:

    • IP Publique + Mesh VPN (Tailscale, Nebula, Wireguard,...)

    • IP Publique + IP Private

    • IP Private

  3. Vous avez créer un CIDR Dynamic Range qui contient au minimum l'IP Public du Host. Ceci est obligtoire car Muppy va protéger les Dashboards en les publiant sur le réseau Private et en les "whitelistant" avec le contenu de ce CIDR Dynamic Range. Vous devez ajouter l'IP public du Host pour laisser passer le traffic Tailscale.

  4. Si le cluster est accessible publiquement, vous devez autoriser le traffic entrant sur le(s) port(s) 443 (et 80). Pour cela, utilisez l'onglet UFW de l'objet Host de Muppy.

Pour l'instant seul l'option IP Publique + Tailscale rentre dans le cadre du support.

Installation

Les étapes d'installation sont les suivantes:

  • Provisionner un Host avec Ubuntu 20.04 et enrollez le dans Muppy.

  • Installer Tailscale

  • Installer microk8s

  • Installer PostgreSQL

  • Installer les packages d'infrastructure

Références

Last updated