Pour déployer efficacement une application open source comme Sealos, la première étape consiste à consulter rigoureusement sa documentation officielle — notamment le fichier README.md sur GitHub ou les guides fournis sur le site web.
1. Provisionnement d’une instance serveur
Une machine virtuelle fonctionnant sous Ubuntu 22.04 est requise. Elle peut être hébergée localement (via VMware ou VirtualBox) ou déployée sur un fournisseur cloud public. Dans cet exemple, une instance ECS d’Alibaba Cloud (région de Hong Kong) a été sélectionnée avec les spécifications suivantes :
- Processeur : 4 cœurs
- Mémoire : 8 Go
- Espace disque : 40 Go SSD
- Règles de sécurité : autorisation des ports TCP
80et443
Ces ressources constituent un minimum raisonnable pour une démonstration stable ; des configurations inférieures peuvent fonctionner mais risquent de limiter les performances ou la fiabilité.
2. Configuration du nom de domaine et certificats TLS
Un domaine personnalisé est nécessaire pour accéder à l’interface web. Deux enregistrements DNS doivent être créés :
- Un enregistrement
Apointant vers l’adresse IP publique de l’instance (ex. :47.242.108.255.cloudnativesig.com → 47.242.108.255) - Un enregistrement wildacrd
Apour supporter les sous-domaines dynamiques (ex. :*.47.242.108.255.cloudnativesig.com → 47.242.108.255)
Pour sécuriser les connexions, un certificat TLS gratuit est généré via acme.sh avec le plugin Alibaba Cloud DNS :
curl https://get.acme.sh | sh -s email=admin@exemple.fr
export Ali_Key="votre_clé_api"
export Ali_Secret="votre_secret_api"
acme.sh --issue --dns dns_ali \
-d "47.242.108.255.cloudnativesig.com" \
-d "*.47.242.108.255.cloudnativesig.com"
Les fichiers obtenus sont ensuite encodés en Base64 pour une intégration ultérieure dans les manifests Kubernetes :
base64 -w 0 ~/.acme.sh/47.242.108.255.cloudnativesig.com_ecc/fullchain.cer
base64 -w 0 ~/.acme.sh/47.242.108.255.cloudnativesig.com_ecc/47.242.108.255.cloudnativesig.com.key
3. Installation de Sealos
L’outil CLI sealos est installé via le script officiel (version v4.2.0). En cas de latence réseau avec GitHub, un proxy comme ghproxy.com peut être utilisé :
curl -sfL https://raw.githubusercontent.com/labring/sealos/v4.2.0/scripts/install.sh | sh -s v4.2.0 labring/sealos
Ou, si nécessaire, téléchargez manuellement le script, modifiez la ligne 96 pour insérer le préfixe de proxy :
DOWNLOADER_PREFIX=https://ghproxy.com/https://github.com/${OWN_REPO}/releases/download/
Puis exécutez localement :
chmod +x install.sh && ./install.sh v4.2.0 labring/sealos
4. Génération et déploiement du cluster Kubernetes
Le fichier Clusterfile est généré à l’aide de la commande sealos gen, en spécifiant les images de composants et l’adresse IP privée du nœud maître (ex. 172.26.216.195) :
sealos gen \
labring/kubernetes:v1.25.6 \
labring/helm:v3.12.0 \
labring/calico:v3.24.1 \
labring/cert-manager:v1.8.0 \
labring/openebs:v3.4.0 \
labring/kubernetes-reflector:v7.0.151 \
labring/zot:v1.4.3 \
labring/kubeblocks:v0.5.3 \
--env policy=anonymousPolicy \
--masters 172.26.216.195 > Clusterfile
Le déploiement du cluster s’effectue ensuite en une seule commande :
sealos apply -f Clusterfile
5. Déploiement d’Ingress NGINX
Un fichier de configuration personnalisé ingress-nginx-config.yaml est créé pour adapter le comportement de l’ingress controller :
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:
name: ingress-nginx-config
spec:
match: docker.io/labring/ingress-nginx:v1.5.1
path: charts/ingress-nginx/values.yaml
strategy: merge
data: |
controller:
hostNetwork: true
kind: DaemonSet
service:
type: NodePort
L’installation se lance via :
sealos run docker.io/labring/ingress-nginx:v1.5.1 --config-file ingress-nginx-config.yaml
6. Lancement de l’interface web Sealos Cloud
Le service d’interface utilisateur est déployé à partir de l’image sealos-cloud. Un secret TLS est injecté via un manifeste tls-secret.yaml :
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:
name: secret
spec:
match: docker.io/labring/sealos-cloud:latest
path: manifests/tls-secret.yaml
strategy: merge
data: |
data:
tls.crt: LS0tCi0tLQo=
tls.key: LS0tCi0tLQo=
Enfin, le déploiement est lancé avec le domaine configuré :
sealos run docker.io/labring/sealos-cloud:latest \
--env cloudDomain="47.242.108.255.cloudnativesig.com" \
--config-file tls-secret.yaml
Une fois opérationnel, l’interface est accessible à l’URL https://47.242.108.255.cloudnativesig.com. Aucun compte préexistant n’est fourni : un premier accès permet de créer un utilisateur via un formulaire d’inscription auto-gérée.