muppy.io
  • ⛏️Qu'est ce que muppy.io ?
  • ⚒️Concepts Muppy
  • Quickstarts
    • ✏️Introduction
  • Guides
    • ⛏️Muppy Core
      • Hosts
        • Création et enrôlement d'un Host
          • ✏️Server Types
          • ✏️Configuration réseaux spécifiques
        • ⚒️Host's Users
        • ⚒️Host's Network information
        • ⚒️Host's Metrics
      • Tasks et Fact Collectors
        • ⚒️Exécution des Tasks (Task Runs)
          • ⚒️Exécution asynchrone des Tasks (Launch as Job)
        • ⚒️Synchronisation des Tasks et Scripts
        • ⚒️Liste des Scripts
        • ⚒️Liste des Tasks
        • ⚒️Création de Task "Shell Script"
        • ⚒️Liste des Fact Definitions
      • ⛏️Firewall UFW
        • Désactiver UFW globalement
        • ✏️Page 1
      • SSH Keys
        • Gestion des SSH Keys
        • Gestion des "authorized_keys"
        • Extraction Clef Privée d'un User User
      • ⚒️Systemd Service Units
        • ⚙️Liste des Systemd Units
        • ➕Création de Systemd Units
        • 📰Systemctl status et log
        • ✏️Edition des Systemd Units
    • 🐘PostgreSQL
      • PostgreSQL Base
        • Installation de PostgreSQL
        • Gestion des Clusters
          • Création
          • Configuration
          • Contrôle
          • Administration (basique)
        • Backup, Restore et Copy de Databases
          • Databases Backups (pg_dump)
          • PostgreSQL Backup
          • pg_dump Restore
          • Database Copy
          • pg_restore Callback Task
        • Backups Planifiés
        • Gestion rétention des Backups
      • PostgreSQL Replication
        • Créer un RCS
        • Visualiser un RCS
        • Suivre la Replication
        • Ajouter des Standbys
        • Restructurer un RCS
        • Intégration d'un RCS
        • Reconfigurer un RCS
      • PostgreSQL HA
        • Configuration
        • Activation et Désactivation
        • Monitoring
        • pglookout Heartbeat
      • PostgreSQL PITR
        • Configuration de WAL-G
        • Lancement des Clusters Backups
        • Liste des Clusters Backups (WAL-G)
        • Purge des fichiers de Backup PITR
        • Monitoring du PITR
        • Objets S3 stockés par WAL-G
        • Restauration PITR
      • PostgreSQL Tools
        • pgBadger - log analysis
    • Muppy Pack
      • ⛏️Packs
      • Concepts
      • ⛏️Muppy Cluster
        • Cluster Security
        • PostgreSQL Cluster Resources
      • ⛏️Reverse Proxy
    • ✏️Configuration
      • 👫Gestion des Users Muppy
      • 🏬S3 Buckets
      • 💬Notifications Teams
      • ✏️Notifications Slack
    • ⛏️Odizy
      • Odizy Workflow
        • Test Servers
      • Accéder à vos serveurs
      • Restaurer un backup sur le serveur de staging
      • Activer un serveur Standby
      • ⛏️Configuration LXC CI/CD
      • Activate and Launch remote Code-Server (VS Code from coder.com)
    • ⚒️Kubernetes
      • ⚒️Installer Tailscale
      • ⚒️Installer un cluster microk8s
      • ⚒️Installer PostgrSQL
      • ⚒️Installer les packages d'infrastructures
  • 📡Muppy Enterprise
    • Introduction
    • ⛏️Configuer une Instance Muppy Enterprise
    • 🌡️Monitoring Muppy Enterprise
  • ⛏️Work in progress
    • ⛏️Code Server
    • ⛏️Muppy Development Servers
      • Move Development Server
Powered by GitBook
On this page
  • Introduction
  • Stratégies de sécurité
  • Private
  • Public
  • Conclusion
  • Prérequis
  • Installation
  • Références
  1. Guides

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

PreviousActivate and Launch remote Code-Server (VS Code from coder.com)NextInstaller Tailscale

Last updated 5 months ago

⚒️
https://microk8s.io/docs/configure-host-interfaces