blog » self-hosted » orchestration » minimalistic-ufw-config-for-k3s

Configuration UFW minimaliste pour K3s

Si vous installez Kubernetes (K3s dans mon cas) et tombez sur une erreur comme :

2025-11-04T11:43:39Z ERR Error watching kubernetes events error=
"could not retrieve server version: Get \"https://10.43.0.1:443/version\": 
dial tcp 10.43.0.1:443: connect: connection refused" providerName=kubernetes

…il se peut que votre pare-feu soit en cause. C’était le problème sur mon nœud.

J’avais une configuration UFW très restrictive, n’autorisant que 80/tcp, 443/tcp et 22/tcp. Mais Kubernetes a besoin de ports supplémentaires et de plages internes pour fonctionner correctement.

La documentation K3s pour Ubuntu/Debian recommande d’ouvrir :

ufw allow 6443/tcp #apiserver
ufw allow from 10.42.0.0/16 to any #pods
ufw allow from 10.43.0.0/16 to any #services

Si vous voulez une configuration minimaliste mais fonctionnelle, vous pouvez affiner les règles à l’aide du tableau officiel des règles entrantes. Voici la configuration que j’utilise personnellement :

# --- RÉINITIALISATION & RÈGLES DE BASE ---
sudo ufw --force reset
sudo ufw default deny incoming
sudo ufw default allow outgoing

# --- SERVICES PUBLICS : HTTP, HTTPS, SSH ---
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp

# --- RÉSEAU INTERNE DU CLUSTER (10.42.0.0/16) ---
# K3s / Kubernetes API
sudo ufw allow from 10.42.0.0/16 to any port 6443 proto tcp

# Métriques du kubelet
sudo ufw allow from 10.42.0.0/16 to any port 10250 proto tcp

# Flannel VXLAN
sudo ufw allow from 10.42.0.0/16 to any port 8472 proto udp

# --- ACCÈS LOCALHOST ---
sudo ufw allow in on lo

# --- ACTIVER LE PARE-FEU ---
sudo ufw enable
sudo ufw status numbered

Brève explication des règles

Qu’est-ce que 10.42.0.0/16 ?

10.42.0.0/16 est une plage CIDR. Elle décrit toutes les adresses IP de : 10.42.0.0 à 10.42.255.255.

C’est le réseau par défaut des pods géré par K3s (via Flannel). Tout le trafic pod-à-pod ou pod-à-nœud circule dans cette plage. Le bloquer casserait le cluster.

Que fait une règle comme sudo ufw allow from 10.42.0.0/16 to any port 6443 proto tcp ?

Cette règle :

En d’autres mots : « Autorise le trafic en provenance des pods vers le serveur API. »

Sans cela, les nœuds et les composants du plan de contrôle (control plane) ne peuvent pas communiquer.

Que signifie sudo ufw allow in on lo ?

La règle dit simplement : « Autoriser le trafic local » :

De nombreuses applications s’attendent à pouvoir communiquer librement avec 127.0.0.1. Bloquer ce trafic les casserait.

Mon Chatbot
Bonjour! Je suis disponible pour répondre à toutes questions sur Mathieu. Comment puis-je vous aider?