Azure (AKS)
Le chemin le plus rapide vers une installation Scrydon fonctionnelle sur Azure Kubernetes Service via Helm, avec les notes réseau spécifiques à Azure qui posent souvent problème.
Deux façons d'exécuter Scrydon sur Azure :
- Azure Marketplace — Natif au portail, en un clic, mises à jour automatiques, sans CLI Helm ni identifiants de registre. Utilisez cette option sauf si vous avez besoin de valeurs Helm personnalisées.
- Helm sur AKS (cette page) — contrôle total sur les valeurs du chart. Suivez les cinq étapes ci-dessous ; pour toutes les surcharges que le chart expose, consultez la référence Helm.
Démarrage rapide
curl -fsSL https://get.scrydon.com | bashL'installateur guidé vous demande la version, l'emplacement de déploiement, ainsi que l'identifiant de registre et le fichier de licence fournis par votre équipe. Il vérifie votre cluster avant toute modification — y compris que la GatewayClass et l'émetteur cert-manager que vous nommez existent réellement — installe, puis confirme que la plateforme répond sur votre nom d'hôte.
Vous préférez l'inspecter d'abord, ou obtenir une copie figée ?
curl -fsSL https://get.scrydon.com -o setup.sh
curl -fsSL https://get.scrydon.com/setup.sh.sha256 | shasum -a 256 -c -
bash setup.shLes étapes manuelles présentées plus loin sur cette page restent prises en charge ; c'est ce qu'exécute le parcours standard de l'installateur.
Profil NATO UNCLASSIFIED
Le démarrage rapide ordinaire et le parcours Helm manuel ne sélectionnent pas le profil NATO UNCLASSIFIED. Pour une installation neuve sur un substrat de qualification AKS spécialement conçu et approuvé, utilisez le profil appartenant à la version avec son enregistrement de cible immuable et sa surcouche de site examinée de façon restrictive :
bash /absolute/private/setup.sh \
--version <exact-version> \
--profile nato-unclassified \
--site-values /absolute/private/site.nato.yaml \
--qualification-target /absolute/private/target.json \
--kubeconfig /absolute/private/kubeconfig \
--context <dedicated-context> \
--location azure \
--namespace scrydon-platform \
--host <qualification-hostname> \
--storage-class managed-csi \
--gateway-class traefik \
--tls-issuer <qualification-issuer> \
--pull-secret /absolute/private/scrydon-pull-secret.yaml \
--license /absolute/private/license.json \
--backend connected \
--non-interactive--site-values n'est pas une échappatoire vers des valeurs Helm arbitraires.
Cette option accepte uniquement les champs propres au déploiement du profil
pour le réseau, le DNS, le groupe de nœuds Kata et la sauvegarde Azure Blob
privée ; elle rejette les secrets en ligne et les tentatives d'affaiblissement
des contrôles obligatoires. L'enregistrement de cible doit provenir de la
procédure de substrat protégée et examinée, et correspondre au candidat, à la
ressource Azure, au kubeconfig dédié et à l'identité du cluster actif.
Le profil constitue une base de contrôles de déploiement, pas une déclaration d'accréditation NATO. La qualification et l'accréditation exigent toujours des preuves liées à la version, des procédures opérationnelles, l'acceptation du risque et une décision de l'autorité d'accréditation de sécurité compétente.
Avant de commencer
- Un cluster AKS exécutant Kubernetes 1.28+ avec accès
kubectl. - Une implémentation Gateway API — les CRD
gateway.networking.k8s.ioet une GatewayClass. Définisseztraefik.enabled: truepour que le chart installe une release Traefik fournissant les deux, ou pointezgateway.classNamevers une classe déjà présente sur le cluster. Voir Prérequis Kubernetes. - cert-manager avec sa prise en charge Gateway API activée, sauf si vous terminez TLS vous-même — voir Prérequis TLS.
- Votre fichier de licence Scrydon — JSON
{ "jwt": "…", "publicKey": "…" }. Voir Licences. - Des identifiants de registre pour
scrydonops.azurecr.io(le nom du token ACR + valeur fournis par votre équipe de compte). - Un nom DNS unique pointant vers votre équilibreur de charge en périphérie (ex.
app.example.com).
Dimensionnement complet et liste de contrôle : Prérequis.
Étape 1 : Se connecter au registre
helm registry login scrydonops.azurecr.io --username <acr-token-name>
# (collez la valeur du token à l'invite de mot de passe)Étape 2 : Créer l'espace de noms et le secret de récupération d'images
Par défaut, le chart déploie chaque service dans un seul espace de noms, scrydon-platform :
kubectl create namespace scrydon-platform 2>/dev/null || true
kubectl create secret docker-registry scrydon-registry \
--namespace scrydon-platform \
--docker-server=scrydonops.azurecr.io \
--docker-username=<acr-token-name> \
--docker-password=<acr-token-password>La séparation des services entre espaces de noms est optionnelle via
namespaces.*(voir la référence Helm). Si vous le faites, créez le même secret de récupération dans chaque espace de noms que vous ciblez.
Étape 3 : Écrire values.customer.yaml
La valeur spécifique à Azure est global.storageClass (managed-csi, ou managed-csi-premium pour un IOPS plus élevé). Si une Application Gateway termine le TLS en amont du cluster, conservez gateway.tls.enabled: true — le navigateur utilise toujours HTTPS, donc le schéma d'URL public, le CORS et les cookies sécurisés doivent le refléter même si App Gateway transfère du HTTP simple à Traefik.
global:
imageRegistry: scrydonops.azurecr.io # pull images from the ACR you logged into
imagePullSecrets:
- name: scrydon-registry # from Step 2
storageClass: managed-csi # or managed-csi-premium
routing:
host: app.example.com # the hostname your DNS points at
gateway:
tls:
enabled: true # browser reaches Scrydon over HTTPS (true even behind App Gateway)
traefik:
enabled: true # remove if the cluster already runs a Gateway API controllerLe chart génère tous les secrets dont il a besoin lors d'un helm install en direct et les conserve entre les mises à niveau. Ne les définissez vous-même que si vous gérez les secrets en externe ou effectuez un rendu sans cluster en direct (ArgoCD, helm template) — voir Rendu sans cluster en direct :
# Facultatif. Gardez ce fichier hors du contrôle de source si vous les définissez.
infra:
db:
credentials:
password: REPLACE-WITH-DB-PASSWORD # openssl rand -hex 16
auth:
secrets:
AUTH_SECRET: REPLACE-WITH-AUTH-SECRET # openssl rand -hex 32
apiTable:
secrets:
STARROCKS_PASSWORD: REPLACE-WITH-STARROCKS-PW # openssl rand -hex 24Étape 4 : Installer
helm install scrydon oci://scrydonops.azurecr.io/scrydon/charts/scrydon \
--version <version> \
--namespace scrydon-platform \
-f values.customer.yaml \
--wait --wait-for-jobsÉtape 5 : Lancer l'assistant de configuration
Ouvrez https://app.example.com/platform/setup et complétez les six étapes — collez votre fichier de licence, créez le compte administrateur, nommez votre organisation, reliez-la à un stockage objet (ou passez), configurez l'e-mail (ou passez), terminez. Connectez-vous ensuite sur https://app.example.com/. Détails : Helm → Lancer l'assistant de configuration.
Spécificités Azure
- Classe de stockage —
managed-csi(étape 3), oumanaged-csi-premiumpour un IOPS plus élevé. - L'IP publique — avec
traefik.enabled: true, c'est l'IP externe du Servicescrydon-traefikdans le namespacetraefik:kubectl get svc -n traefik scrydon-traefik. Faites pointer votre nom DNS vers elle. - Derrière Application Gateway — App Gateway termine le TLS et transfère du HTTP simple à Traefik. Conservez
gateway.tls.enabled: true(fait à l'étape 3) et faites confiance au sous-réseau App Gateway avecforwardedHeaders.trustedIPsde Traefik. C'est un point qui pose régulièrement problème — le guide complet se trouve dans Déchargement TLS. - Domaines privés ou PKI d'entreprise — si votre périphérie AKS utilise un DNS privé ou des certificats émis par une autorité de certification d'entreprise, suivez Certificats TLS.
- Base de données — le Postgres intégré fonctionne prêt à l'emploi ; ou pointez vers Azure Database for PostgreSQL via BYO Database.
- Sources de données en flux et en push — désactivées tant que
ingestBuffer.enabledn'est pas défini (les sources planifiées, poll, s'exécutent sans lui). Donnez au tampon un volumemanaged-csi-premiumet, avecnetworkPolicies.enabled, faites passer le HTTPS sortant par la passerelle NAT du cluster ou Azure Firewall pour que les fournisseurs restent joignables. URL de push, clés et prérequis : Helm →apiIngestion.
Toutes les options
Tout ce qui dépasse ce chemin minimal — modes de routage, StarRocks personnalisé, planification des pods, réductions pour ressources limitées, un plan de contrôle Dapr existant, et les opérations courantes — se trouve dans la référence Helm.