Étape 1 : Créer les fichiers YAML
Crée ces deux fichiers localement sur ta machine (là où kubectl est configuré).
apache-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: apache-deployment
spec:
replicas: 2
selector:
matchLabels:
app: apache
template:
metadata:
labels:
app: apache
spec:
containers:
- name: apache
image: httpd:2.4
ports:
- containerPort: 80
apache-service.yaml
apiVersion: v1
kind: Service
metadata:
name: apache-service
spec:
type: NodePort
selector:
app: apache
ports:
- port: 80
targetPort: 80
nodePort: 30080
Étape 2 : Appliquer les fichiers YAML
Ouvre un terminal dans le répertoire où tu as enregistré les fichiers, puis exécute :
kubectl apply -f apache-deployment.yaml
kubectl apply -f apache-service.yaml
Étape 3 : Vérifier que tout fonctionne
Vérifier les Pods
kubectl get pods
Tu devrais voir 2 pods apache-deployment-xxxxx avec le statut Running.
ℹ️ Info : Si les pods se bloquent en état
0/1 ContainerCreating, lance cette commande pour diagnostiquer le problème :kubectl describe pod <nom-du-pod>Si tu retrouves une erreur de ce type :
Failed to create pod sandbox: plugin type="flannel" failed (add): failed to find plugin "flannel" in path [/usr/lib/cni]Il faut créer le lien symbolique manquant sur tous les nœuds Workers :
sudo mkdir -p /usr/lib/cni sudo ln -s /opt/cni/bin/* /usr/lib/cni/Après avoir exécuté ces commandes sur tous les Workers, les pods devraient passer à l''état
Running.
Vérifier le Service
kubectl get service apache-service
Tu devrais obtenir un résultat similaire à :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
apache-service NodePort 10.96.0.1 <none> 80:30080/TCP 2m
Étape 4 : Accéder au serveur Apache
Utilise un navigateur ou curl pour accéder à Apache à l''adresse suivante, en remplaçant <IP-VM-WORKER> par l''adresse IP d''une machine worker :
http://<IP-VM-WORKER>:30080
Pour connaître l''adresse IP d''un nœud worker :
kubectl get nodes -o wide
