Catégorie 04SKILLS

Kubernetes Skill

Kubernetes + Helm — orchestration Drupal à l'échelle

Installation
kubectl (Linux)curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" chmod +x kubectl && sudo mv kubectl /usr/local/bin/
Helmcurl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Skill Claude — Globalmkdir -p ~/.claude/skills/kubernetes
SKL
À propos

Skill Claude pour déployer et opérer des sites Drupal sur Kubernetes. Couvre les Deployments, Services, Ingress, PersistentVolumeClaims, ConfigMaps, Secrets, HPA, et l'empaquetage avec Helm Charts. Inclut les patterns spécifiques Drupal (sessions, fichiers partagés, migrations de DB).

Commandes
CommandeDescription
kubectl get pods -n NAMESPACELister les pods d'un namespace avec leur statut
kubectl logs -f PODNAME -c CONTAINERSuivre les logs d'un container en temps réel
kubectl exec -it PODNAME -- bashShell interactif dans un pod
kubectl rollout restart deployment/drupalRolling restart sans downtime
kubectl apply -f manifests/Appliquer tous les manifestes d'un dossier
helm upgrade --install RELEASE ./chart -f values.yamlDéployer ou mettre à jour via Helm
kubectl port-forward svc/drupal 8080:80Accéder au service localement via port-forward
kubectl top pods -n NAMESPACEConsommation CPU/mémoire des pods
Exemples
Déployer Drupal avec un Helm ChartCODE
# Créer la structure du chart
helm create drupal-chart

# Valeurs de base (values.yaml)
# image: { repository: registry/drupal, tag: "1.0.0" }
# replicaCount: 3
# pvc: { storage: 10Gi, storageClass: longhorn }

# Déployer en production
helm upgrade --install drupal-prod ./drupal-chart \
  -f values.yaml \
  -f values-prod.yaml \
  --namespace production \
  --create-namespace \
  --atomic  # rollback auto si échec
Job de migration Drupal post-déploiementCODE
"Génère un Kubernetes Job qui s'exécute après le déploiement pour :
1. Attendre que le pod drupal-web soit Ready (initContainer avec wait)
2. Lancer drush updb -y dans le même container que le deployment
3. Lancer drush cim -y
4. Lancer drush cr
5. Se terminer avec le code d'exit de drush
Job avec backoffLimit: 3, restartPolicy: Never"
Debug d'un pod en erreurCODE
# Voir les events récents
kubectl describe pod PODNAME -n production | tail -20

# Logs du container qui a crashé
kubectl logs PODNAME --previous -c php-fpm

# Créer un pod de debug avec la même image
kubectl run debug --rm -it \
  --image=registry/drupal:1.2.3 \
  --namespace=production \
  -- bash