L'objectif de ce tutoriel est de vous permettre de créer sur une petite machine ou sur un serveur personnel un PaaS (Platform as a service). Un PaaS permet de déployer des applications en microservices. Celui-ci sera basé sur kubernetes pour la conteneurisation et Kubeapps pour l'interface de déploiement.
L'optique de cet outillage suivra :
-
le principe d'immutable infrastructure avec l'idée de recréer plutôt que de mettre à jour. Ainsi nous aurons recour à des iso linux déjà prêt pour déployer la plateforme kubernetes / kubeapps directement sur un serveur.
-
Le principe d'infrastructure as code (IaC) en gardant toutes la spécification de notre infrastructure dans des configurations et scripts. On utilisera également des tests basiques de nos configurations.
Pour cela nous ferons appel à un socle technique composé de :
- l'outil
k3s
qui simplifie l'installation de kubernetes sur des machines ARM tout en restant compatible avec les architectures classiques X64. Il fourni par défaut des pods (containers en execution) pour inclure des fonctionnalités souvent recherchés sur ce type de configuration edge computing. (reverse proxy, configuration DNS...) - Packer pour créer des images iso de machine linux
- Ansible pour provisioner cette image
- Azure pour nous founir des serveurs accessible en ssh sur lequels nous pourrons mettre en ligne
- Terraform pour contrôler azure de manière IaC et de déclencher toute la mise en place du PaaS dessus.
Pour rappel l'architecture de base de docker :
Source documentation docker
et les couches des systèmes de conteneurisation docker et kubernetes :
Pour utilisateurs de windows il faut un WSL.
Pour WSL :
Vous utilisez une version de Windows 11 ou supérieure (numéro de version de Windows 22000 ou supérieur).
Vous avez activé le composant optionnel Virtual Machine Platform
Vous pouvez le faire en exécutant : dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all
dans une invite PowerShell élevée.
Cliquez sur ce [lien] (https://aka.ms/wslstorepage) pour accéder à la page du magasin WSL et cliquez sur Installer pour installer WSL.
Traduit avec www.DeepL.com/Translator (version gratuite)
- Télécharger après avoir suivi cette documentation la distribution linux
Ubuntu 20.04.5 LTS
depuis le windows store. - + Windows terminal bien que pas obligatoire il est très pratique pour accéder au shell
Ensuite dans vscode installer l'extension wsl ms-vscode-remote.remote-wsl
.
Laissez-le ensuite finir de s'initialiser.
Ensuite bonne habitude, on met à jour linux :
apt update && apt upgrade -y
Puis activer systemd
en modifiant /etc/wsl.conf
dans votre distribution linux :
echo -e '[boot]\nsystemd=true' >> /etc/wsl.conf
Puis redémarrer l'app Ubuntu. Si des problèmes apparaissent encore lancer la commande wsl --shutdown
depuis un powershell en administrateur avant de lancer le shell WSL.
Ensuite pour finaliser l'installation de docker pour éviter les problèmes de droit avec rancher desktop :
sudo addgroup --system docker
sudo adduser $USER docker
newgrp docker
# And something needs to be done so $USER always runs in group `docker` on the `Ubuntu` WSL
sudo chown root:docker /var/run/docker.sock
sudo chmod g+w /var/run/docker.sock
Rancher l'alternative mieux configurée et sans soucis de license à docker desktop. Il est portable sur windows et mac et nous permet d'avoir une expérience docker complète et fonctionnelle sur notre machine.
Dans les choix proposés dans la mise en place :
- Décocher kubernetes
- Choisissez dockerd comme moteur de conteneurisation
Vérifier que vous avez bien la commande docker
disponible sinon ajouter ~/.rd/bin
à votre PATH
:
echo 'export PATH="$PATH:$HOME/.rd/bin"' >> ~/.zshrc
Puis dans wsl :
sudo systemctl restart docker
Maintenant tout ce que nous allons faire se trouve dans la ligne de commande sur un shell bash
ou zsh
Conda : docs.conda.io. Installer simplement avec le setup .pkg
pour mac.
Pour Linux et Windows avec WSL utilisez la ligne de commande ci-dessous pour l'installer
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -P /tmp
chmod +x /tmp/Miniconda3-latest-Linux-x86_64.sh
/tmp/Miniconda3-latest-Linux-x86_64.sh -p $HOME/miniconda
Pour arm :
wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-aarch64.sh -P /tmp
chmod +x /tmp/Miniconda3-py39_4.12.0-Linux-aarch64.sh
/tmp/Miniconda3-py39_4.12.0-Linux-aarch64.sh -p $HOME/miniconda
Veillez à bien accepter toutes les propositions (licence terms, initialize Miniconda3).
Puis lancer conda init zsh
(ou bash
si vous préférez)
Relancer votre shell pour appliquer (commande exec $SHELL
)
- Avec installer toutes plateformes
- Homebrew sur mac
brew install --cask visual-studio-code
- Avec snap pour linux sur linux