Administration Avancée¶
Table des Matières¶
- Gestion des Utilisateurs
- Installation de Cluster
- Architectures HA et Non-HA
- Procédure d'Installation
- Maintenance des Nœuds
- Mises à Jour de Cluster
- Gestion d'ETCD
- Récupération d'un Membre Corrompu
- Sauvegarde et Restauration
Gestion des Utilisateurs¶
Création d'un Utilisateur avec Certificat¶
-
Génération du CSR :
openssl req -new -newkey rsa:4096 -nodes -keyout user.key -out user.csr -subj "/CN=username/O=group" -
Création de la CSR Kubernetes :
apiVersion: certificates.k8s.io/v1 kind: CertificateSigningRequest metadata: name: user-access spec: request: $(cat user.csr | base64 | tr -d '\n') signerName: kubernetes.io/kube-apiserver-client expirationSeconds: 86400 usages: - client auth -
Approbation et Récupération du Certificat :
kubectl certificate approve user-access kubectl get csr user-access -o jsonpath='{.status.certificate}' | base64 -d > user.crt -
Configuration RBAC :
kubectl create role dev --verb=create,list,update,delete --resource=pods kubectl create rolebinding dev-binding --role=dev --user=username -
Création du Kubeconfig :
kubectl config set-credentials username --client-key=user.key --client-certificate=user.crt --embed-certs=true kubectl config set-context username --cluster=cluster-name --user=username
Installation de Cluster¶
Architectures HA et Non-HA¶
- Non-HA : Single control plane
- HA : Multiple control planes avec load balancer (VIP)
Procédure d'Installation¶
-
Prérequis Communs :
swapoff -a apt-get update && apt-get install -y containerd kubelet kubeadm kubectl -
Initialisation du Control Plane :
kubeadm init --control-plane-endpoint "VIP:6443" --upload-certs -
Configuration du Réseau :
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml -
Joindre les Workers :
kubeadm join VIP:6443 --token <token> --discovery-token-ca-cert-hash <hash>
Maintenance des Nœuds¶
Drain d'un Nœud¶
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data
Réintégration¶
kubectl uncordon <node>
Mises à Jour de Cluster¶
Processus de Mise à Jour¶
-
Mise à Jour de kubeadm :
apt-get update && apt-get install -y kubeadm=1.26.0-00 -
Planification et Application :
kubeadm upgrade plan kubeadm upgrade apply v1.26.0 -
Mise à Jour des Composants :
apt-get install -y kubelet=1.26.0-00 kubectl=1.26.0-00 systemctl daemon-reload systemctl restart kubelet
Gestion d'ETCD¶
Récupération d'un Membre Corrompu¶
-
Sauvegarde :
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 snapshot save snapshot.db -
Réinitialisation :
mv /etc/kubernetes/manifests/etcd.yaml /tmp rm -rf /var/lib/etcd/member -
Réintégration :
kubeadm join phase control-plane-join etcd
Sauvegarde et Restauration¶
-
Sauvegarde Régulière :
etcdctl snapshot save /backup/etcd-snapshot-$(date +%F).db -
Restauration :
etcdctl snapshot restore /backup/etcd-snapshot.db --data-dir /var/lib/etcd-new chown -R etcd:etcd /var/lib/etcd-new
Bonnes Pratiques¶
- Sécurité : Rotation régulière des certificats
- Sauvegarde : Planification de sauvegardes ETCD quotidiennes
- Monitoring : Surveillance des ressources et des nœuds
- Documentation : Maintien d'un journal des changements
Documentation Officielle Kubernetes
Guide de Sauvegarde ETCD