13.2. GESTION DE KUBERNETES
13.2.1. Accès au Cluster Kubernetes
13.2.2. Cluster Kubernetes - contrôle d’accès
13.2.3. Cluster Kubernetes - résolution des problèmes
13.2.4. Cluster Kubernetes - mise à niveau du package
13.2.1. Accès au Cluster Kubernetes
Après l'installation réussie du cluster, il existe de multiples façons d'y accéder pour en démarrer la gestion :
- Tableau de bord Kubernetes
- Client kubectl
Tableau de bord Kubernetes
1. La fenêtre qui apparaît après l'installation fournit toutes les données nécessaires pour se connecter au tableau de bord de Kubernetes : le lien et le jeton d'accès (Acces Token).
Ces mêmes informations vous sont également envoyées par e-mail.
2. Suivez le lien, sélectionnez l'option Token, et collez la valeur requise.
Conseil : Il est également possible de se connecter avec le fichier kubeconfig ; cependant, vous devrez installer kubectl et définir le bon contexte (voir la section ci-dessous).
3. Si vous avez perdu l'e-mail avec le jeton d'accès au cluster Kubernetes, vous pouvez le consulter en exécutant la commande suivante sur le nœud maître (par exemple via Web SSH) :
Maintenant, vous pouvez à nouveau accéder au tableau de bord Kubernetes.
Client Kubectl
Kubectl est un outil de ligne de commande pour contrôler un cluster Kubernetes. RAGNARØKKR l'installe automatiquement sur tous les nœuds maîtres lors de la création de l'environnement. Vous pouvez commencer à travailler avec votre cluster en utilisant Kubectl immédiatement, il suffit de se connecter au nœud requis via SSH.
1. Suivez les étapes d'installation pour utiliser un kubectl local. Ensuite, lancez une commande pour établir une connexion à distance :
Remplacez respectivement {api-endpoint} et {token} par l'URL de l'API distante et le jeton d’accès.
Conseil : si vous n'avez pas activé l'API distant (remote API) lors de l'installation, vous pouvez le faire via l'add-on intégré disponible pour les nœuds maîtres dans le tableau de bord RAGNARØKKR.
2. Vous pouvez vérifier si Kubectl a accès au cluster avec la commande suivante :
Vous devriez voir la liste de tous les pods dans un namespace.
13.2.2. Cluster Kubernetes : contrôle d’accès
Kubernetes gère l'accès au cluster via le RBAC (Role-Based Access Control) (https://kubernetes.io/docs/reference/access-authn-authz/rbac/). Par défaut, vous avez un jeton qui appartient à un Compte de Service (https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/) avec le rôle d'administrateur du cluster.
Si vous avez besoin de partager l'accès au cluster Kubernetes avec d'autres utilisateurs, il est recommandé de créer des Comptes de Service séparés avec les rôles et les liens entre les rôles (https://kubernetes.io/docs/reference/access-authn-authz/rbac/#default-roles-and-role-bindings) requis. Un tel flux permet de gérer manuellement les actions autorisées (par exemple pour créer des namespaces, des déploiements, des services, des entrées, etc.)
Note : le système RBAC de Kubernetes n'est pas aligné avec les comptes RAGNARØKKR. Tout utilisateur ayant un accès SSH au nœud maître peut utiliser l'outil kubectl préconfiguré avec son rôle d'administrateur de cluster. En raison de cette spécificité, le partage d'environnement sur la fonctionnalité PaaS de RAGNARØKKR peut exposer des informations sensibles.
13.2.3. Cluster Kubernetes : résolution des problèmes
Le package Kubernetes Cluster de RAGNARØKKR est un produit extrêmement compliqué, qui comprend plusieurs étapes nécessaires pour la mise en place de la solution. Ainsi, chaque action peut échouer pour diverses raisons, qui doivent être analysées pour éviter que le problème ne se reproduise. Ci-dessous, nous allons présenter les principales étapes de dépannage au cours des différentes phases et pour plusieurs fichiers log :
- Installation de K8s
- Suivi des événements
- Journaux (logs) des Pods
Installation de Kubernetes
L'installation d'un cluster Kubernetes est un processus complexe mais entièrement automatisé, qui comprend déjà un mécanisme de traitement des erreurs. La plateforme traite automatiquement les problèmes les plus courants et en indique la cause première directement dans le tableau de bord. Ainsi, pour les problèmes plus complexes, vous pouvez envoyer un rapport à l'équipe de support via le widget approprié dans la notification qui apparaît dans le coin supérieur droit du tableau de bord RAGNARØKKR.
Ce rapport comprend les journaux (logs) d'installation, les messages d'erreur et toutes les autres informations de débogage nécessaires.
De plus, le package vérifie automatiquement tous les composants du cluster après l'installation. Les détails pertinents peuvent être consultés via le fichier /var/log/k8s-health-check.log sur le nœud maître. Un script d'utilitaire dédié vérifie la santé des composants suivants : Plugin Weave CNI, Contrôleur Ingress, Serveur Metrics, Tableau de bord Kubernetes (Kubernetes Dashboard), Node Problem Detector, Outils de Monitoring, API à distance, stockage NFS, Exemple d'application.
Si le vérificateur de santé ne parvient pas à vérifier l'état de fonctionnement (Running) d'un composant, la notification appropriée sera affichée dans la fenêtre de réussite de l'installation. Ainsi, un tel avertissement n'est pas toujours causé par le dysfonctionnement du cluster (par exemple, les déploiements peuvent être encore en cours). Vous pouvez lancer la commande kubectl get pods --all-namespaces pour vérifier l'état des pods. Si tous les pods sont en cours d'exécution (Running), votre cluster se porte bien. Sinon, contactez notre support et joignez les logs relatifs à K8s dans le répertoire /var/log.
Suivi des événements
Vous pouvez utiliser Kubectl ou le Tableau de bord Kubernetes pour suivre et analyser les événements pour les namespaces particuliers ou tous les namespaces en même temps (les autorisations nécessaires sont requises) :
- Evénements dans le Tableau de bord Kubernetes
- Exemple d'output de la commande kubectl get events -n $namespace
Journaux (logs) des Pods
Après avoir programmé le(s) pod(s) pour fonctionner sur un noeud libre, vous pouvez suivre les logs appropriés via :
- Tableau de bord Kubernetes : naviguez jusqu'à la page du pod et cliquez sur le bouton View Logs en haut à droite
- Kubectl : utilisez les commandes pour la gestion des pods (https://kubernetes.io/fr/docs/reference/kubectl/cheatsheet/#interaction-avec-des-pods-en-cours-dex%C3%A9cution)
Par exemple, ces logs peuvent aider à trouver la cause première de l'événement « Back-off restart failed container » pour vos pods.
13.2.4. Cluster Kubernetes : mise à niveau du package
RAGNARØKKR PaaS développe activement la solution Kubernetes Cluster et publie régulièrement de nouvelles versions du package. Ainsi, vous n'avez pas besoin de recréer l'ensemble du cluster à partir de zéro pour bénéficier des nouvelles fonctionnalités et des nouveaux outils : l'environnement existant peut être mis à niveau avec un add-on dédié.
Survolez le nœud Master et cliquez sur le bouton Add-Ons qui apparaît. Ensuite, dans la section ouverte, sélectionnez l'option Start Cluster Upgrade pour l'add-on Cluster Upgrade.
Confirmez l'action via la fenêtre pop-up, et la plateforme effectuera une mise à jour automatique vers la prochaine version du Cluster Kubernetes. Si la dernière version est déjà installée, la notification appropriée apparaîtra sur le tableau de bord.