Introduction
Kubernetes Dashboard est une interface web permettant d’interagir avec Kubernetes. Elle permet à la fois de gérer les ressources du cluster mais aussi de déployer des applications conteneurisées.
Dans cet article, nous allons l’installer sur le cluster configuré dans cet article.
Installation
L’installation se fait tout simplement avec la commande :
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
Le déploiement par défaut du dashboard créer un service de type ClusterIP :
Afin de pouvoir y accéder de manière simple depuis une machine extérieur au cluster, nous allons modifier le service en NodePort :
kubectl patch svc kubernetes-dashboard -p '{"spec": {"type": "NodePort"}}' -n kubernetes-dashboard
La commande kubectl get svc kubernetes-dashboard -n kubernetes-dashboard nous permet alors de connaitre le port tcp attribué au service :
Dans notre cas, il s’agit du port 32217/TCP.
Nous pouvons donc accéder au dashboard depuis une machine extérieure au cluster à l’adresse https://une_des_adresse_IP_des_noeuds:32217/ :
Accès à l’interface
Pour accéder à l’interface, nous allons créer un token d’authentification associé à un ServiceAccount auquel nous donnerons les droits d’administration. Une des nouveautés de Kubernetes 1.24 est qu’il ne crée plus automatiquement de token
lors de la création du ServiceAccount.
Créons le fichier k8s-admin.yaml :
apiVersion: v1 kind: ServiceAccount metadata: name: k8s-admin namespace: kube-system --- apiVersion: v1 kind: Secret type: kubernetes.io/service-account-token metadata: name: k8s-admin annotations: kubernetes.io/service-account.name: "k8s-admin" namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: k8s-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: k8s-admin namespace: kube-system
Puis lançons la commande :
kubectl create -f k8s-admin.yaml
La commande suivante permet d’afficher le token :
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep k8s-admin | awk '{print $1}')
Un copié-collé de ce token sur la page d’authentification du dashboard nous permet ensuite de nous connecter à ce dernier :
One thought on “Installer Kubernetes Dashboard”