Sommaire
Installation de Micro-K8s
Téléchargement du software
Il faut aller sur le site https://microk8s.io/
Lien direct : https://microk8s.io/microk8s-installer.exe
Installation du cluster
L’installation de multipass m’ayant demander un reboot, il n’a pas installé automatiquement le cluster K8s, en effet, j’ai pu le vérifier comme ceci :
microk8s status --wait-ready
Comme je suis discipliné, j’écoute l’outil, je lance :
microk8s install
Sans fibre, cela prend un petit moment.
Désormais si je retente ma commande microk8s status, j’obtiens ceci :
PS C:\Users\Edouard> microk8s status --wait-ready
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
addons:
enabled:
ha-cluster # Configure high availability on the current node
disabled:
ambassador # Ambassador API Gateway and Ingress
cilium # SDN, fast with full network policy
dashboard # The Kubernetes dashboard
dns # CoreDNS
fluentd # Elasticsearch-Fluentd-Kibana logging and monitoring
gpu # Automatic enablement of Nvidia CUDA
helm # Helm 2 - the package manager for Kubernetes
helm3 # Helm 3 - Kubernetes package manager
host-access # Allow Pods connecting to Host services smoothly
ingress # Ingress controller for external access
istio # Core Istio service mesh services
jaeger # Kubernetes Jaeger operator with its simple config
kata # Kata Containers is a secure runtime with lightweight VMS
keda # Kubernetes-based Event Driven Autoscaling
knative # The Knative framework on Kubernetes.
kubeflow # Kubeflow for easy ML deployments
linkerd # Linkerd is a service mesh for Kubernetes and other frameworks
metallb # Loadbalancer for your Kubernetes cluster
metrics-server # K8s Metrics Server for API access to service metrics
multus # Multus CNI enables attaching multiple network interfaces to pods
openebs # OpenEBS is the open-source storage solution for Kubernetes
openfaas # openfaas serverless framework
portainer # Portainer UI for your Kubernetes cluster
prometheus # Prometheus operator for monitoring and logging
rbac # Role-Based Access Control for authorisation
registry # Private image registry exposed on localhost:32000
storage # Storage class; allocates storage from host directory
traefik # traefik Ingress controller for external access
Et voilà, c’est installé !
Comme j’ai choisi d’installer kubectl, nous pouvons interroger notre cluster via l’utilisataire, comme ceci :
microk8s kubectl get nodes
Installation de l’add-on Dashboard
Suivi de cette procédure : https://microk8s.io/docs/addon-dashboard
Activation du module : microk8s enable dashboard
Récupération d’un token si comme moi vous n’avez pas installé RBAC :
multipass exec MicroK8sVM -- sudo /snap/bin/microk8s kubectl -n kube-system describe secret $(multipass exec MicroK8sVM -- sudo /snap/bin/microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
A corriger dans cette commande :
- le nom de votre instance Micro K8s : MicroK8sVM
Pour voir le nom de votre instance :
Etant directement sous Windows (pas sous WSL), les commandes Linux classique ne fonctionnent pas, la méthode la plus rapide étant de se connecter à la VM MicroK8s afin de récupérer le token :
multipass exec microk8s-vm -- bash
Puis d’exécuter la partie récupérant le nom du token à récupérer :
ubuntu@microk8s-vm:~$ sudo /snap/bin/microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1
default-token-z49xn
Ensuite nous modifions la commande de récupération du token :
multipass exec MicroK8sVM -- sudo /snap/bin/microk8s kubectl -n kube-system describe secret default-token-z49xn
PS C:\Users\Edouard> multipass exec microk8s-vm -- sudo /snap/bin/microk8s kubectl -n kube-system describe secret default-token-z49xn
Name: default-token-z49xn
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: default
kubernetes.io/service-account.uid: b00ee185-ee7f-4bea-9379-db39c1f11e4c
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1123 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiI ... cXBAtYilHMVjisMEHYUnZnlFxUJaUWXgeTePDIPrBX5aLP3Tj3-rIQ8cde0cpN0uIQtHpWbd-50bezGjFAUHQ
Nous mettons notre token de coté.
Ensuite nous réalisons un port-forward afin que notre Dashboard puisse être accessible depuis l’extérieur du cluster :
multipass exec MicroK8sVM -- sudo /snap/bin/microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443 --address 0.0.0.0
Le port forward redirigera le dashboard qui écoute sur le port 443 sur le cluster vers le port 10443 sur l’extérieur du cluster.
Il faudra laisser la commande tourner dans un prompt le temps de l’utilisation du port-forward.
La dernière étape est … de connaitre l’adresse IP de notre cluster :
multipass info microk8s-vm
Ici il faudra prendre la première adresse IP.
Ensuite pour vous connectez au Dashboard, il faudra vous rendre sur https://votre_cluster_ip:10443/
Une fois sur la page (et passé les alertes de sécurité), nous obtenons une demande d’authentification, ici nous choisirons par token (celui que l’on a stocké précédemment) :