Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Create a stateless application from an image

Dernière mise à jour :Aug 11, 2026

Les charges de travail sans état ne conservent ni données ni état persistant, comme Nginx. Vous pouvez créer une telle application à partir d'une image, d'un modèle ou via l'interface CLI. Si vous utilisez une image privée, configurez un Secret de tirage d'image (image pull Secret) dans la console ACK pour garantir la sécurité. Cette rubrique explique comment créer une application sans état à partir d'une image via la console sur un cluster ACK Serverless.

Prérequis

Assurez-vous que les conditions suivantes sont remplies :

Étape 1 : Configurer les paramètres de base

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le cluster cible. Dans le volet de navigation de gauche, choisissez Workloads > Deployments.

  3. Sur la page Deployments, cliquez sur Create from Image.

  4. Sur la page Basic Information, sélectionnez un namespace. Cet exemple utilise le namespace default.

  5. Configurez les paramètres de base.

    Paramètre Description
    Name Saisissez un nom pour l'application.
    Replicas Spécifiez le nombre de pods à provisionner.
    Type Sélectionnez le type de ressource : Deployment, StatefulSet, Job ou CronJob.
    Label Ajoutez des libellés pour identifier l'application.
    Annotations Ajoutez des annotations à l'application.
  6. Cliquez sur Next.

Étape 2 : Configurer le conteneur

À l'étape Container, configurez l'image du conteneur, les ressources de calcul, les ports, les variables d'environnement, les vérifications d'intégrité (health checks), le cycle de vie et les volumes.

Cliquez sur Add Container pour ajouter d'autres conteneurs.

Configurer l'image

Dans la section General, configurez les paramètres suivants :

Paramètre Description
Image Name Sélectionnez ou saisissez une image de conteneur. Consultez la section Choisir une source d'image ci-dessous.
Required Resources Réservez des ressources CPU et mémoire pour le conteneur. Cela évite les perturbations dues à la contention des ressources et est requis pour le HPA.
Container Start Parameter stdin : transmet l'entrée de la console ACK au conteneur. tty : alloue un pseudo-TTY afin que le conteneur utilise la console comme entrée standard. Transmet les paramètres de démarrage depuis un terminal virtuel vers la console ACK.
Init Containers Créez un conteneur d'initialisation pour l'initialisation du pod. Consultez la documentation Init containers.

Choisir une source d'image

Cliquez sur Select images. Sources disponibles :

  • Container Registry Enterprise Edition : images stockées dans une instance Container Registry Enterprise Edition. Sélectionnez la région et l'instance. Aucun Secret n'est requis.

  • Container Registry Personal Edition : images stockées dans une instance Container Registry Personal Edition. Sélectionnez la région et l'instance.

  • Artifact Center : images de système d'exploitation de base, images de langages de base et images IA/big data maintenues par Alibaba Cloud et OpenAnolis. Cet exemple utilise une image NGINX. Consultez Overview of the artifact center.

    Pour toute question ou demande d'image, rejoignez le groupe DingTalk 33605007047.
  • Private registry : saisissez l'adresse de l'image au format domainname/namespace/imagename:tag.

Image pull policy

Politique Comportement
IfNotPresent Utilise une image mise en cache localement si elle est disponible ; sinon, tire l'image depuis le registre.
Always Tire l'image depuis le registre à chaque déploiement ou mise à l'échelle de l'application.
Never Utilise uniquement les images mises en cache localement ; ne tire jamais l'image depuis le registre.
Si aucune option n'est sélectionnée, aucune politique de tirage n'est appliquée.

Set Image Pull Secret

Pour tirer des images depuis un registre privé (tel que Container Registry Personal Edition), cliquez sur Set Image Pull Secret et sélectionnez un Secret. Consultez Manage Secrets. Aucun Secret n'est requis pour Container Registry Enterprise Edition.

Configurer les ports

Dans la section Ports, cliquez sur Add.

Champ Description
Name Saisissez un nom pour le port.
Container Port Saisissez un numéro de port (1–65535).
Protocol Sélectionnez TCP ou UDP.

Configurer les variables d'environnement

Dans la section Environments, cliquez sur Add pour configurer les variables d'environnement.

Pour utiliser des ConfigMaps ou des Secrets comme sources de variables d'environnement, créez-les au préalable. Consultez Manage ConfigMaps et Manage Secrets .

Définissez Type sur l'une des options suivantes : Custom, ConfigMaps, Secrets, Value/ValueFrom ou ResourceFieldRef. La sélection de ConfigMaps ou de Secrets transmet toutes les données de la ressource choisie au conteneur sous forme de variables d'environnement.

Cet exemple utilise Secrets : sélectionnez Secrets dans la liste Type, puis choisissez un Secret dans Value/ValueFrom. Toutes les données du Secret sélectionné sont transmises en tant que variables d'environnement.

yaml

Configurer les vérifications d'intégrité (Health Checks)

Dans la section Health Check, activez les sondes selon vos besoins :

Sonde Objectif Quand l'utiliser
Liveness Détecte si le conteneur fonctionne correctement ; le redémarre en cas d'échec. Configurez toujours cette sonde pour les conteneurs fonctionnant en continu.
Readiness Détermine si le conteneur est prêt à recevoir du trafic. Utilisez-la lorsque l'application nécessite un temps de chauffe avant de traiter les requêtes.
Startup Vérifie si l'application a démarré ; désactive les autres sondes jusqu'à ce qu'elle réussisse. Utilisez-la pour les applications ayant un long temps d'initialisation.
Les sondes de démarrage nécessitent Kubernetes 1.18 ou une version ultérieure.

Chaque sonde prend en charge les types de requête suivants :

HTTP — envoie une requête HTTP pour vérifier l'intégrité du conteneur.

Paramètre Description Par défaut
Protocol HTTP ou HTTPS.
Path Chemin HTTP sur le serveur.
Port Numéro ou nom du port exposé par le conteneur (1–65535).
HTTP Header En-têtes personnalisés sous forme de paires clé-valeur ; les doublons sont autorisés.
Initial Delay (s) Secondes à attendre après le démarrage du conteneur avant la première sonde (initialDelaySeconds). Liveness : 3 ; TCP : 15 ; Commande : 5
Period (s) Intervalle entre les sondes (periodSeconds) ; minimum 1. Des valeurs plus faibles détectent les échecs plus rapidement mais augmentent la charge des sondes. 10
Timeout (s) Délai avant expiration d'une sonde (timeoutSeconds) ; minimum 1. 1
Healthy Threshold Nombre de succès consécutifs requis pour considérer le conteneur comme sain. Doit être 1 pour les sondes liveness. 1
Unhealthy Threshold Nombre d'échecs consécutifs requis pour considérer le conteneur comme malsain. Des valeurs plus élevées tolèrent les échecs transitoires ; des valeurs plus faibles déclenchent des redémarrages plus tôt. 3

TCP — ouvre un socket TCP pour vérifier l'intégrité du conteneur. Mêmes paramètres que HTTP, sauf Protocol, Path et HTTP Header.

Command — exécute une commande à l'intérieur du conteneur pour vérifier son intégrité. Prend en charge Command, Initial Delay, Period, Timeout, Healthy Threshold et Unhealthy Threshold.

Configurer le cycle de vie

Dans la section Lifecycle, configurez les hooks du cycle de vie :

  • Start : s'exécute avant le démarrage du conteneur.

  • Post Start : s'exécute après le démarrage du conteneur.

  • Pre Stop : s'exécute avant l'arrêt du conteneur.

Consultez Configure the lifecycle of a container.

Configurer les volumes

Dans la section Volume, ajoutez des volumes de stockage :

  • Volume de stockage sur site

  • PVC (PersistentVolumeClaim)

  • NAS (File Storage NAS)

  • Disque

Consultez Use a statically provisioned disk volume, Use a dynamically provisioned disk volume et Mount a statically provisioned NAS volume.

Configurer la collecte des journaux

Dans la section Log, configurez la collecte des journaux. Consultez Create an application from an image and configure Simple Log Service to collect application logs.

Cliquez sur Next.

Étape 3 : Configurer les paramètres avancés

À l'étape Advanced, configurez le contrôle d'accès, la mise à l'échelle, les libellés et les annotations.

Configurer le contrôle d'accès

Dans la section Access Control, choisissez comment exposer les pods de l'application.

Applications internes : créez un service ClusterIP ou NodePort pour la communication intra-cluster.

Applications externes : exposez l'application à Internet :

  • Service LoadBalancer : définissez le type de service sur Server Load Balancer. Sélectionnez ou créez une instance SLB pour acheminer le trafic externe.

  • Ingress : utilisez une ressource Ingress pour acheminer le trafic HTTP/HTTPS vers le service. Consultez Ingress.

Cet exemple crée un service ClusterIP et un Ingress pour exposer une application NGINX.

Créer un service

Cliquez sur Create à côté de Services et configurez les paramètres suivants :

Paramètre Description
Name Saisissez un nom pour le service. Cet exemple utilise nginx-svc.
Type Cet exemple utilise Cluster IP.Server Load Balancer. Options : Cluster IP, Server Load Balancer, Node Port.
Port Mapping Mappez un port de service à un port de conteneur. Cet exemple utilise le port de service 80 et le port de conteneur 80.
External Traffic Policy Local : achemine le trafic uniquement vers le nœud où le service s'exécute. Cluster : achemine le trafic vers les pods sur n'importe quel nœud. S'applique uniquement aux types NodePort et Server Load Balancer.
Annotations Ajoutez des annotations de configuration SLB. Par exemple, service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth:20 limite la bande passante à 20 Mbit/s. Consultez Use annotations to configure CLB instances.
Label Ajoutez des libellés pour identifier le service.
Lors de l'utilisation d'instances SLB :
Les écouteurs sur une instance SLB existante écrasent les écouteurs du service.
Une instance SLB créée avec un service ne peut pas être réutilisée par d'autres services. Seules les instances SLB créées manuellement dans la console ou via l'API peuvent être partagées.
Les services partageant la même instance SLB doivent utiliser des ports frontend différents pour éviter les conflits.
Ne modifiez pas les noms d'écouteurs ou les noms de groupes de serveurs virtuels sur les instances SLB partagées, car ACK les utilise comme identifiants uniques.
Les instances SLB ne peuvent pas être partagées entre plusieurs clusters.

Créer un Ingress

Cliquez sur Create à côté de Ingresses et configurez les paramètres suivants :

Paramètre Description
Name Saisissez un nom pour l'Ingress. Cet exemple utilise nginx-ingress.
Rule Définissez les règles de routage : Domain (cet exemple utilise le domaine de test foo.bar.com), Path (par défaut /), Services (sélectionnez nginx-svc) et EnableTLS.
Weight Définissez le poids du trafic pour chaque service dans le chemin. Par défaut : 100.
Canary Release Activez la version Canary. Recommandé : Solution Open Source.
Ingress Class Spécifiez la classe Ingress.
Annotations Ajoutez des annotations Ingress. Consultez Annotations.
Labels Ajoutez des libellés pour décrire l'Ingress.
Important

Chaque service ne peut avoir qu'un seul Ingress. Cet exemple utilise un nom d'hôte virtuel comme domaine de test. Ajoutez l'adresse IP de l'Ingress à votre fichier hosts. Pour la trouver, accédez à la page des détails de l'application > onglet Access Method > colonne External Endpoint. En production, utilisez un domaine disposant d'un dépôt ICP.

101.37.xx.xx   foo.bar.com    # Replace with the actual Ingress IP address

Après la création du service et de l'Ingress, ils apparaissent dans la section Access Control. Cliquez sur Update ou Delete pour les modifier.

Configurer la mise à l'échelle automatique

Dans la section Scaling, configurez Horizontal Pod Autoscaler (HPA) ou CronHPA.

HPA nécessite que Required Resources soit configuré à l'étape 2.

HPA met automatiquement à l'échelle les pods en fonction de l'utilisation du CPU ou de la mémoire :

Paramètre Description
Metric Sélectionnez CPU Usage ou Memory Usage. Doit correspondre au type de ressource configuré dans Required Resources.
Condition Seuil d'utilisation qui déclenche la mise à l'échelle horizontale. Par exemple, 70 % de CPU signifie que HPA ajoute des pods lorsque l'utilisation moyenne dépasse 70 %.
Max. Replicas Nombre maximal de pods vers lesquels l'application peut effectuer une mise à l'échelle.
Min. Replicas Nombre minimal de pods qui doivent toujours être en cours d'exécution.

CronHPA est également pris en charge pour la mise à l'échelle basée sur la planification.

Ajouter des libellés et des annotations

Dans la section Labels,Annotations, cliquez sur Add.

  • Pod Labels : libellés pour identifier le pod.

  • Pod Annotations : annotations pour le pod.

Cliquez sur Create.

Étape 4 : Vérifier le déploiement

Vérifiez que le Deployment, le service et l'application fonctionnent correctement.

Vérifier le Deployment

À l'étape Complete, cliquez sur View Details. Sur la page Deployments, confirmez que l'application nommée serverless-app-svc apparaît.

Deployment list

Vérifier le service

Dans le volet de navigation de gauche, choisissez Network > Services. Confirmez que le service nommé serverless-app-svc apparaît dans la liste.

Service list

Accéder à l'application

Ouvrez le point de terminaison externe ou le nom de domaine dans un navigateur pour accéder à la page d'accueil NGINX.

nginx

Important
  • Le type de service doit être Server Load Balancer pour un accès via navigateur.

  • Si vous utilisez foo.bar.com, ajoutez l'adresse IP de l'Ingress à votre fichier hosts comme décrit dans Create an Ingress.

Étapes suivantes