Présentation

Kubernetes (souvent nommé k8s) est une plateforme complète pour la mise en place du déploiement et automatisation de conteneurs sur des milliers de machines.

Une fois installĂ© sur chaque machine, on s’abstrait du matĂ©riel pour entrer dans un environnement complet pour dĂ©ployer, automatiser et Ă©quilibrer les charges pour diffĂ©rents services dĂ©livrĂ©s par des conteneurs.

La plateforme est tellement souple qu’elle permet de choisir son moteur de conteneurs, la façon de surveiller le tout, quel load balancer on souhaite, comment gĂ©rer le chiffrement (Let’s Encrypt, etc.) et ainsi de suite.

Ce projet a été créé par Google puis donné, en Open Source, à la CNCF (Cloud Native Computing Foundation).

Pour en savoir plus, il y a une page concernant Kubernetes sur le site officiel de la CNCF .

Variantes

Kubernetes est délivré sous plusieurs formes. Chacun propose une distribution de Kubernetes avec des composants différents.

Parmi les distributions notables on a :

Outils

Étant donnĂ© que Kubernets (k8s) est une plateforme très utilisĂ©e et ayant de multiples variantes, elle fait couler de l’encre sur Internet. Et la communautĂ© gĂ©nère de multiples outils pour simplifier certaines tâches.

Quelques outils :

Astuce : installation locale avec k3sup et un Dashboard

Grâce à k3sup, on peut déployer un cluster en quelques secondes.

Profitons-en pour dĂ©ployer en local un cluster unique composĂ© du master et d’un worker.

Installation de la commande k3sup

Sous ArchLinux (dépôt AUR) :

yay -S k3sup || paru -S k3sup

Sinon en ligne de commande (tel qu’expliquĂ© dans la documentation officielle) :

curl -sLS https://get.k3sup.dev | sh
sudo install k3sup /usr/local/bin/

Ça marche aussi sous Windows il paraît.

Installation du cluster local

Attention cette commande va crĂ©er un fichier kubeconfig Ă  l’endroit oĂą vous vous situez !

Ce fichier sera utile pour la suite.

Une fois la commande k3sup installée, il suffit de faire :

k3sup install --local

Et voilà !

Configuration

La commande d’installation ayant crĂ©Ă© un fichier kubeconfig, on va utiliser ce fichier pour accĂ©der Ă  notre cluster k8s local :

export KUBECONFIG=`pwd`/kubeconfig

Désormais vous avez accès à votre cluster via la commande kubectl (à installer sur votre machine).

Garder la configuration après chaque redémarrage

export KUBECONFIG="$HOME/kubeconfig"

Dashboard

Le Dashboard Kubernetes est une interface Web permettant d’inspecter son cluster Kubernetes en quelques clics.

Installation

En quelques lignes :

helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard

Configuration

Une fois installé, le Dashboard existe mais nous avons besoin de 2 choses :

Nous allons ici nous concentrer sur l’utilisateur et son accès.

Crééz le fichier service-account.yaml avec le contenu suivant :

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

Créez ensuite le fichier cluster-role.yaml avec le contenu suivant :

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard

On applique les changements à notre cluster :

kubectl apply -f service-account.yaml
kubectl apply -f cluster-role.yaml

Nous avons donc désormais un utilisateur admin-user.

Accès

Chaque fois que vous souhaitez accéder au Dashboard, vous allez devoir faire 2 choses :

kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
kubectl -n kubernetes-dashboard create token admin-user

Ainsi le Dashboard est accessible Ă  l’adresse suivante : https://localhost:8443/ .

Liens utiles