ITSkillsCenter
Développement Web

Kubernetes pour débutants : orchestrer ses conteneurs

9 دقائق للقراءة
Miniature - Kubernetes pour débutants : orchestrer ses conteneurs

Ce que vous saurez faire

Ce tutoriel s’adresse aux administrateurs systeme des PME senegalaises qui gerent des serveurs Linux pour leur entreprise. Que vous administriez un serveur web pour une boutique en ligne a Dakar, un serveur de fichiers pour une fiduciaire a Thies, ou une machine de developpement pour une startup a Saint-Louis, la maitrise des commandes Linux essentielles est indispensable. Vous apprendrez a naviguer dans le systeme de fichiers, gerer les utilisateurs et permissions, surveiller les processus, configurer le reseau, installer des paquets, et diagnostiquer les problemes courants. A la fin de ce guide, vous disposerez d’une boite a outils complete de commandes pour administrer efficacement n’importe quel serveur Linux, que ce soit Ubuntu, Debian, CentOS ou Rocky Linux, qui sont les distributions les plus repandues dans l’hebergement africain.

Etape 1 : Se connecter et explorer l’environnement

Apres avoir accede au serveur via SSH, commencez par identifier l’environnement. La commande whoami retourne l’utilisateur courant, hostname le nom de la machine, et uname -a les informations du noyau. Ces commandes simples permettent de confirmer que vous etes connecte au bon serveur.

whoami
hostname
uname -a
# Linux srv-ecom 5.15.0-88-generic #98-Ubuntu SMP x86_64 GNU/Linux

cat /etc/os-release
# PRETTY_NAME="Ubuntu 22.04.3 LTS"
uptime
# 14:23:01 up 45 days, 3:12, 2 users, load average: 0.15, 0.22, 0.18

La commande uptime affiche depuis combien de temps le serveur tourne et sa charge moyenne. Une charge superieure au nombre de CPU indique un serveur surcharge.

Etape 2 : Naviguer dans le systeme de fichiers

Les commandes de navigation sont pwd (repertoire courant), cd (changer de repertoire), et ls (lister). Utilisez toujours ls -lah pour voir les permissions, la taille lisible et les fichiers caches.

pwd
# /home/admin

cd /var/www/html
ls -lah
# drwxr-xr-x 5 www-data www-data 4.0K Apr 15 10:23 .
# -rw-r--r-- 1 www-data www-data  12K Apr 15 10:20 index.php
# -rw-r--r-- 1 www-data www-data 2.3K Apr 10 15:45 .htaccess

cd ~        # Retour au home
cd -        # Retour au repertoire precedent
tree -L 2   # Affiche l'arborescence sur 2 niveaux

Etape 3 : Rechercher des fichiers efficacement

Pour trouver des fichiers, utilisez find (recherche temps reel) ou locate (recherche par index). La commande find est plus puissante avec ses filtres.

# Trouver tous les fichiers .log modifies ces 7 derniers jours
find /var/log -name "*.log" -mtime -7

# Trouver les fichiers de plus de 100 Mo
find /var -type f -size +100M -exec ls -lh {} \;

# Trouver et supprimer les fichiers .tmp de plus de 30 jours
find /tmp -name "*.tmp" -mtime +30 -delete

# Recherche rapide par nom (necessite updatedb)
sudo updatedb
locate nginx.conf

Etape 4 : Rechercher du contenu avec grep

La commande grep recherche des motifs dans les fichiers. Combinee avec des pipes, elle devient un outil d’analyse puissant pour parcourir des logs ou du code.

# Rechercher "erreur" dans tous les logs
grep -i "erreur" /var/log/syslog

# Recherche recursive avec numeros de ligne
grep -rn "TODO" /var/www/html/

# Afficher 3 lignes avant et apres chaque match
grep -B 3 -A 3 "500 Internal" /var/log/nginx/access.log

# Compter les requetes 404 du jour
grep "$(date +%d/%b/%Y)" /var/log/nginx/access.log | grep -c " 404 "

# Exclure certains motifs
grep -v "healthcheck" /var/log/nginx/access.log

Etape 5 : Gerer les permissions et proprietes

Linux utilise un systeme de permissions base sur proprietaire/groupe/autres, avec lecture (r), ecriture (w), execution (x). Les commandes chmod et chown modifient ces attributs.

# Voir les permissions
ls -l script.sh
# -rw-r--r-- 1 admin admin 1.2K Apr 15 script.sh

# Rendre executable pour le proprietaire
chmod u+x script.sh

# Permissions standards pour un site web
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

# Permission sensible pour cles SSH
chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh/

Les permissions 755 signifient rwxr-xr-x (proprietaire peut tout, autres peuvent lire et executer). Ne donnez jamais 777 en production.

Etape 6 : Gerer les utilisateurs et groupes

Pour creer un utilisateur employe sans acces root, utilisez adduser (interactif) ou useradd (scriptable). Ajoutez-le au groupe sudo uniquement si necessaire.

# Creer un nouvel utilisateur
sudo adduser fatou
# Set password, Full Name, etc.

# Ajouter au groupe sudo (pouvoir admin)
sudo usermod -aG sudo fatou

# Verifier les groupes d'un utilisateur
groups fatou
# fatou : fatou sudo www-data

# Lister tous les utilisateurs avec shell
cat /etc/passwd | grep -v nologin

# Changer le mot de passe
sudo passwd fatou

# Supprimer un utilisateur et son home
sudo deluser --remove-home ancien_stagiaire

Etape 7 : Surveiller les processus

Les commandes ps, top, et htop listent les processus. htop est plus visuel mais doit etre installe. Utilisez kill pour terminer un processus.

# Installer htop
sudo apt install htop -y
htop    # Interface interactive, q pour quitter

# Lister tous les processus
ps aux | head -20

# Chercher un processus specifique
ps aux | grep nginx

# Top 10 des processus consommant le plus de RAM
ps aux --sort=-%mem | head -11

# Tuer un processus par PID
kill 1234
kill -9 1234    # Force (SIGKILL)

# Tuer par nom
pkill -f "python mon_script"

Etape 8 : Surveiller disque et memoire

Sur un serveur de PME, le remplissage du disque est une cause frequente d’incident. Les commandes df et du permettent d’identifier les problemes avant qu’ils ne bloquent la production.

# Espace disque par partition
df -h
# /dev/sda1       50G   42G  5.5G  89% /

# Taille des repertoires (tri decroissant)
sudo du -h --max-depth=1 /var | sort -hr | head
# 15G     /var/log
# 8.2G    /var/lib/mysql
# 3.1G    /var/www

# Memoire disponible
free -h
#               total   used   free   shared  buff/cache  available
# Mem:          7.8Gi  2.1Gi  1.2Gi   0.3Gi    4.5Gi      5.2Gi

# Activite en temps reel
vmstat 2 5      # Stats toutes les 2s, 5 fois

Etape 9 : Gerer les paquets logiciels

Sur Debian/Ubuntu, utilisez apt. Sur CentOS/Rocky/RHEL, utilisez dnf ou yum. Mettez toujours l’index a jour avant d’installer.

# Debian/Ubuntu
sudo apt update
sudo apt upgrade -y
sudo apt install nginx certbot python3-pip -y
sudo apt remove --purge ancien_paquet
apt list --installed | grep nginx

# CentOS/Rocky/RHEL
sudo dnf check-update
sudo dnf update -y
sudo dnf install nginx certbot
sudo dnf remove ancien_paquet

# Verifier les mises a jour de securite (Ubuntu)
sudo unattended-upgrade --dry-run

Etape 10 : Configurer le reseau

Les commandes reseau essentielles incluent ip, ss, et ping. L’ancienne commande ifconfig est remplacee par ip sur les systemes modernes.

# Voir les interfaces
ip addr show
ip a        # Forme courte

# Routes
ip route show

# Connexions ecoutees
sudo ss -tulpn
# tcp  LISTEN  0  511  *:80    users:(("nginx",pid=1234))
# tcp  LISTEN  0  128  *:22    users:(("sshd",pid=567))

# Tester la connectivite
ping -c 4 8.8.8.8
ping -c 4 google.com

# Tracer le chemin reseau
traceroute orange.sn

# DNS
dig itskillscenter.io
nslookup example.com

Etape 11 : Archiver et compresser

Les sauvegardes utilisent tar combine avec gzip. Pour une PME, la regle 3-2-1 s’applique : 3 copies, 2 supports, 1 hors-site.

# Creer une archive compressee
tar -czvf backup_www_$(date +%F).tar.gz /var/www/html/

# Lister le contenu sans extraire
tar -tzvf backup_www_2026-04-23.tar.gz | head

# Extraire
tar -xzvf backup_www_2026-04-23.tar.gz -C /tmp/restore/

# Compression individuelle
gzip gros_fichier.log        # devient gros_fichier.log.gz
gunzip gros_fichier.log.gz

# Format zip (compatible Windows)
zip -r archive.zip dossier/
unzip archive.zip

Etape 12 : Consulter les logs

Les logs sont dans /var/log/. Sur les systemes modernes avec systemd, utilisez journalctl. Suivez un log en temps reel avec tail -f.

# Dernieres lignes d'un log
tail -n 50 /var/log/syslog

# Suivi en temps reel
sudo tail -f /var/log/nginx/error.log

# Logs d'un service via journalctl
sudo journalctl -u nginx -f
sudo journalctl -u mysql --since "1 hour ago"

# Logs du boot courant
sudo journalctl -b

# Messages kernel
dmesg | tail -30

Etape 13 : Gerer les services avec systemd

Systemd est le gestionnaire de services standard. Utilisez systemctl pour demarrer, arreter, et activer les services au boot.

# Statut d'un service
sudo systemctl status nginx

# Demarrer / arreter / redemarrer
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx    # Sans interruption

# Activer au demarrage
sudo systemctl enable nginx
sudo systemctl disable nginx

# Lister tous les services actifs
systemctl list-units --type=service --state=running

# Services echoues
systemctl --failed

Etape 14 : Raccourcis et productivite

Les alias et l’historique boostent votre efficacite. Ajoutez vos raccourcis dans ~/.bashrc.

# Editer le bashrc
nano ~/.bashrc

# Ajouter a la fin :
alias ll='ls -lah'
alias gs='git status'
alias ports='sudo ss -tulpn'
alias logs='sudo tail -f /var/log/syslog'

# Recharger
source ~/.bashrc

# Historique des commandes
history | tail -20
history | grep "apt install"    # Retrouver une installation
!123        # Rejouer la commande numero 123 de l'historique
!!          # Rejouer la derniere commande
sudo !!     # Rejouer avec sudo

Erreurs

Utiliser sudo sans comprendre : taper systematiquement sudo avant chaque commande cree des fichiers appartenant a root dans votre home, ce qui causera des problemes de permissions plus tard. Utilisez sudo uniquement pour les operations systeme.

rm -rf sans reflexion : la commande rm -rf /* ou pire rm -rf / detruit le systeme. Verifiez toujours votre chemin avant d’executer. En cas de doute, prefixez par ls pour voir ce qui sera supprime.

Ignorer les permissions : mettre 777 sur des fichiers web est une faille de securite majeure. Tout attaquant qui obtient une execution limitee peut alors modifier votre site. Respectez 644 pour les fichiers et 755 pour les dossiers.

Editer /etc/sudoers directement : n’utilisez jamais nano ou vim directement sur ce fichier. Une erreur de syntaxe peut vous bloquer l’acces sudo. Utilisez toujours sudo visudo qui valide la syntaxe avant de sauvegarder.

Ne pas verifier l’espace disque : un serveur dont le disque est plein refuse les connexions SSH, arrete MySQL, et bloque nginx. Surveillez avec df -h et mettez en place des alertes a 80% de remplissage.

Supprimer les logs manuellement : au lieu de rm /var/log/*.log, configurez logrotate. La suppression brutale peut laisser des descripteurs ouverts qui continuent a consommer de l’espace sans liberer.

Checklist

Commandes essentielles maitrisees : ls -lah, cd, pwd, find, grep.

Permissions comprises : 644 pour fichiers, 755 pour dossiers, 600 pour cles privees.

chown et chmod utilises correctement sur /var/www/html.

Utilisateur non-root cree avec sudo pour les operations quotidiennes.

Processus surveilles avec htop ou ps aux.

Espace disque verifie avec df -h, alerte configuree a 80%.

Memoire surveillee avec free -h.

Paquets mis a jour regulierement avec apt update && apt upgrade.

Services geres avec systemctl (start, enable, status).

Logs consultes via tail -f et journalctl -u service.

Ports ecoutes listes avec sudo ss -tulpn.

Sauvegardes creees avec tar -czvf et testees en restauration.

Alias productivite ajoutes dans ~/.bashrc.

sudo visudo utilise pour editer /etc/sudoers (jamais nano directement).

Historique exploite avec history | grep et !!.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité