Comment démarrer la gestion d’un cluster Kubernetes avec Portainer
Portainer est l’une des interfaces de gestion de conteneurs les plus populaires. Bien que Portainer ait commencé par se concentrer sur Docker et Docker Compose, il travaille également avec des clusters gérés par des orchestrateurs tels que Docker Swarm et Kubernetes.
Dans cet article, vous apprendrez comment connecter Portainer à un cluster Kubernetes. Vous pourrez utiliser Portainer pour afficher et interagir avec des objets Kubernetes tels que des pods, des déploiements et des ConfigMaps. Portainer peut déployer des graphiques Helm et exposer également certaines informations de base au niveau du cluster. C’est une alternative viable au tableau de bord officiel et à d’autres options comme Lens pour une gestion simple de Kubernetes.
Sommaire
Déployer Portainer dans votre cluster
Assurez-vous d’avoir accès à un cluster Kubernetes fonctionnel avant de continuer. Vous pouvez en provisionner un en utilisant [a managed cloud service] ou exécutez le vôtre localement en utilisant une solution telle que MicroK8s ou Minikube. Vous aurez également besoin d’avoir installé Helm pour simplifier le processus d’installation de Portainer.
Ajoutez le référentiel Portainer à Helm à l’aide des commandes suivantes :
$ helm repo add portainer https://portainer.github.io/k8s/ $ helm repo update
Exécutez ensuite l’une des commandes suivantes pour déployer l’application Portainer.
Exposer Portainer avec un NodePort
$ helm install --create-namespace -n portainer portainer portainer/portainer
C’est la méthode la plus simple. Vous pourrez accéder à Portainer via HTTP en utilisant le port 30777 sur le nœud qui exécute le pod Portainer. Le trafic HTTPS sera servi sur le port 30779 à l’aide d’un certificat auto-signé. Reportez-vous à la documentation de Portainer si vous souhaitez fournir votre propre certificat SSL lors du déploiement avec cette méthode.
Exposer Portainer avec un équilibreur de charge
$ helm install --create-namespace -n portainer portainer portainer/portainer --set service.type=LoadBalancer
Cette méthode est similaire à NodePort mais elle utilisera un équilibreur de charge devant vos nœuds. Visitez le port 9000 sur l’adresse IP de l’équilibreur de charge pour atteindre Portainer via HTTP. HTTPS est pris en charge sur le port 9443.
Exposer Portainer avec une route d’entrée
helm install --create-namespace -n portainer portainer portainer/portainer --set service.type=ClusterIP --set ingress.enabled=true --set ingress.annotations.'kubernetes.io/ingress.class'=nginx --set ingress.annotations."nginx.ingress.kubernetes.io/backend-protocol"=HTTPS --set ingress.hosts[0].host=portainer.example.com --set ingress.hosts[0].paths[0].path="https://www.howtogeek.com/"
Cette méthode expose Portainer à l’aide d’une route Ingress. Vous aurez besoin d’un contrôleur Ingress tel que NGINX Ingress dans votre cluster. Modifier le host
et path
variables dans la commande pour personnaliser la route Portainer. Dans cet exemple, vous pourrez accéder à Portainer en visitant portainer.example.com
après avoir configuré un enregistrement DNS approprié.
La configuration d’une route d’entrée est le meilleur moyen de servir Portainer à long terme car elle prend en charge l’équilibrage de charge entre les nœuds et vous permet d’attribuer un domaine spécifique. Les options NodePort ou LoadBalancer sont des choix plus simples lorsque vous testez des clusters qui n’ont pas de contrôleur Ingress disponible.
Une fois que vous avez terminé votre déploiement, chargez Portainer dans votre navigateur en visitant l’hôte Ingress ou l’adresse IP et le numéro de port appropriés. Remplissez l’écran de configuration pour créer votre compte utilisateur.
Portainer sera désormais prêt à être utilisé avec votre cluster Kubernetes – le déploiement direct sur Kubernetes découvre automatiquement votre environnement. Cliquez sur le bouton « Commencer » pour terminer l’installation.
Ajouter un cluster Kubernetes à une installation Portainer existante
Vous pouvez ajouter un cluster Kubernetes à une installation Portainer existante. Vous pouvez choisir d’exécuter Portainer en dehors de votre hôte afin qu’il ne consomme pas de ressources de cluster.
Commencez par vous connecter à votre instance Portainer. Cliquez sur le lien « Environnements » en bas de la barre latérale gauche. Cliquez sur le bouton bleu « Ajouter un environnement » en haut de l’écran.
Appuyez ensuite sur la vignette « Kubernetes », puis sur le bouton « Démarrer l’assistant » en bas de l’écran.
L’écran suivant affichera les instructions d’installation de l’agent Portainer Kubernetes. Ce composant est installé à l’intérieur de votre cluster. Portainer communique avec l’agent pour extraire les informations Kubernetes et appliquer les actions demandées.
Vous pouvez choisir entre déployer l’agent avec un NodePort ou un LoadBalancer. Sélectionnez l’onglet approprié, puis copiez la commande qui s’affiche. Exécutez ceci dans votre terminal pour ajouter l’agent Portainer à votre cluster. Portainer Agent est sécurisé à l’aide d’une signature numérique qu’il reçoit au premier contact de l’application Portainer. L’agent rejettera les communications des clients qui ne fournissent pas la signature correcte.
Remplissez ensuite les champs « Nom » et « URL de l’environnement » affichés dans l’interface utilisateur Web de Portainer. Vous pouvez choisir n’importe quel nom qui identifie votre cluster.
Si vous utilisez une connexion NodePort, l’URL de l’environnement doit être le port 30778 sur l’adresse IP de votre nœud. Pour les connexions LoadBalancer, recherchez l’adresse IP externe de l’équilibreur de charge en exécutant kubectl get services -n portainer
. L’agent sera exposé sur le port 9001 à cette adresse IP.
$ kubectl get services -n portainer NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) portainer portainer-agent LoadBalancer 10.245.110.27 139.59.198.245 9001:30343/TCP
Cliquez sur le bouton « Se connecter » pour terminer votre connexion. Vous devriez voir une alerte contextuelle verte confirmant que l’environnement a été ajouté. Appuyez sur le bouton « Terminer » en bas de l’écran pour revenir à la liste des environnements.
Utiliser Portainer pour gérer Kubernetes
L’écran d’accueil de Portainer affiche tous vos environnements configurés. Il peut s’agir de clusters Kubernetes, d’installations locales de Docker Engine ou de tout autre point de terminaison pris en charge. Cliquez sur votre cluster pour commencer à le gérer.
L’écran du tableau de bord du cluster fournit une vue d’ensemble du nombre de ressources dans votre cluster. Portainer se concentre actuellement sur les interactions avec les espaces de noms, les applications (vos pods et déploiements), les ConfigMaps et les secrets, et les volumes. Il fournit une couche d’abstraction sur certains concepts Kubernetes.
Cliquez sur la vignette Applications ou le lien de la barre latérale pour afficher vos pods et déploiements en cours d’exécution. L’écran affiche toutes les applications de votre cluster, y compris l’image qu’elles utilisent et leur URL externe lorsqu’une route Ingress est configurée.
Vous pouvez ajouter une nouvelle application en téléchargeant un fichier manifeste Kubernetes ou en cliquant sur le bouton « Ajouter une application avec un formulaire » pour configurer de manière interactive vos pods.
Portainer propose également un résumé de base de l’utilisation des ressources de votre cluster. Cliquez sur l’élément de la barre latérale « Cluster » pour afficher les nœuds de votre cluster et leurs réservations de mémoire et de CPU.
Enfin, l’écran de configuration du cluster, accessible en naviguant vers Cluster > Configuration, contrôle les fonctionnalités Portainer à activer pour votre environnement Kubernetes. Vous pouvez l’utiliser pour indiquer à Portainer quels équilibreurs de charge, contrôleurs d’entrée et classes de stockage doivent être mis à la disposition des utilisateurs. D’autres paramètres incluent la possibilité de modifier si les surengagements de ressources sont autorisés (lorsque plus de ressources peuvent être demandées que le cluster ne peut en fournir) et l’activation de l’API Metrics pour accéder à des informations d’utilisation plus détaillées. Cela nécessite que l’API Metrics soit déjà installée dans votre cluster.
Sommaire
Portainer est l’une des interfaces de gestion de conteneurs les plus populaires. Les versions modernes de Portainer ont une prise en charge intégrée des clusters Kubernetes. Vous pouvez soit déployer Portainer dans votre cluster, soit utiliser l’agent Portainer pour connecter Kubernetes à une instance d’application existante.
Une fois que vous êtes configuré, vous pouvez utiliser Portainer pour afficher et interagir avec les pods Kubernetes et d’autres objets. Cela peut être plus pratique que d’exécuter des commandes Kubectl complexes dans votre terminal. Portainer vous permet de regrouper tous vos environnements de conteneurs sur une seule plate-forme, des clusters Kubernetes aux installations Docker à nœud unique.