Puisque je vais utiliser Docker pour créer mes fonctions OpenFaaS, je dois installer Docker et y avoir buildx.
Je ne fais cela que sur l’un de mes nœuds,
control00
, afin de pouvoir créer des images natives arm64 et les envoyer au registre, et également créer des fonctions OpenFaaS. Il n’est pas recommandé de créer des fonctions OpenFaaS sur le même nœud où le serveur s’exécute, et Alex Ellis m’a dit personnellement que ce n’était pas la façon de procéder! Vous devez créer sur votre client et envoyer le fichier vers la passerelle OpenFaaS à partir de là, et ainsi de suite… Cependant, je peux confirmer que cela fonctionne très bien, et c’est moins compliqué pour moi car je peux également configurer le worker GitLab sur ce nœud et faire en sorte que mes éléments soient créés automatiquement à chaque fois que je le fais vers mon GitLab local (GitLab est sur un autre serveur de mon réseau, en dehors du cadre de ce guide).🚮 Commençons par faire table rase#
Supprimez l’installation que vous avez actuellement.
sudo apt remove docker docker-engine docker.io containerd runc
ℹ️ Installer Docker#
Pour installer Docker sur DietPi arm64, nous allons suivre à peu près les étapes officielles. 🙂
📥 Installer les prérequis#
sudo apt-get install ca-certificates curl gnupg lsb-release
📥 Installer la clé GPG#
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
📥 Installer le référentiel#
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
📥 Installer Docker lui-même#
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
📝 Modifier les paramètres de Docker#
Ajouter /etc/docker/daemon.json
une configuration pour le démon Docker.
{
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries": ["registry.cube.local:5000"],
"experimental": true,
"log-driver": "json-file",
"storage-driver": "overlay2",
"log-opts": {
"max-size": "100m"
}
}
insecure-registries
:["registry.cube.local:5000"]
Ceci est destiné au registre privé non sécurisé exécuté sur HTTP, si vous utilisez TLS, vous n’avez pas besoin de cette ligne.✅ Activer au démarrage et démarrer le démon Docker#
sudo systemctl enable docker
sudo systemctl start docker
➕ Ajout de la prise en charge du multi-architecture#
Certains packages supplémentaires sont nécessaires si vous souhaitez utiliser OpenFaaS et construire sur arm64.
#Devrait déjà être installé
sudo apt-get install binfmt-support qemu-user-static