Alibaba Cloud Container Service for Kubernetes (ACK) est un service haute performance pour la gestion et l'exécution d'applications conteneurisées dans le cloud. Ce tutoriel vous guide pas à pas dans le déploiement d'ACK-Cube, un jeu de Rubik's Cube en ligne, sur un cluster ACK Pro managé et son exposition sur Internet.
À l'issue de ce tutoriel, vous aurez :
Créé un cluster ACK Pro managé
Déployé l'application ACK-Cube sur le cluster
Accédé au jeu en cours d'exécution via une URL publique

Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un compte Alibaba Cloud disposant des autorisations requises pour activer ACK et créer des clusters
Activation du service et autorisation pour ACK effectuées. Consultez la rubrique Création rapide d'un cluster ACK managé pour connaître la procédure complète de configuration.
Consultation des informations de facturation relatives aux clusters ACK et aux ressources associées
Étape 1 : Créer un cluster
Le mode Intelligent Managed d'ACK simplifie la création de clusters : configurez quelques paramètres de planification et ACK crée un cluster conforme aux meilleures pratiques en un clic. Le cluster inclut un pool de nœuds géré intelligemment dont ACK gère automatiquement le cycle de vie. Pour plus d'informations, consultez la rubrique Créer un cluster ACK managé (mode Intelligent Managed).
Pour personnaliser les configurations détaillées du cluster, consultez plutôt la rubrique Créer un cluster ACK managé .
-
Connectez-vous à la console ACKconsole ACKconsole ACKconsole ACK. Sur la page Clusters, cliquez sur Create Kubernetes Cluster.

-
Sur la page qui s'affiche, cliquez sur l'onglet ACK Managed Cluster et activez Intelligent Managed. Pour accéder au cluster via Internet, sélectionnez Expose API Server With EIP. Cliquez sur Confirm Configurations, vérifiez vos sélections, puis cliquez sur Create Cluster. La création du cluster prend quelques minutes. Attendez que l'état du cluster indique Running avant de continuer.

Étape 2 : Déployer l'application
L'application ACK-Cube utilise une image de conteneur publique. Pour l'extraire, le cluster doit avoir accès à Internet. Avant le déploiement, choisissez l'une des options suivantes :
Activer l'accès à Internet pour un cluster ACK existant : Créez une passerelle NAT Internet dans le Virtual Private Cloud (VPC) où le cluster est déployé. Cela permet à toutes les ressources du cluster d'accéder automatiquement à Internet.
Attribuez une adresse IP publique statique à chaque nœud du cluster.
Choisissez ensuite votre méthode de déploiement :
Déploiement via la console : Déployez et exposez l'application via l'interface utilisateur de la console ACK.
Déploiement via kubectl : Connectez-vous au cluster en utilisant CloudShell, Workbench ou un client kubectl local, puis déployez l'application à l'aide de manifestes YAML.
Option A : Déploiement via la console
Déployer et exposer l'application
Cette section explique comment créer un Deployment pour le jeu ACK-Cube et l'exposer sur Internet à l'aide d'un Service. Pour la liste complète des paramètres de Deployment, consultez la rubrique Créer une application sans état à l'aide d'un Deployment.
Sur la page Clusters, cliquez sur le nom de votre cluster (par exemple,
ACK-Demo).Dans le volet de navigation de gauche, choisissez Workloads > Deployments.
Dans le coin supérieur droit, cliquez sur Create from Image.
Sur l'onglet Basic Information, définissez le nom de l'application sur
ack-cube.-
Cliquez sur Next. Sur l'onglet Container, définissez les paramètres suivants :
Parameter Description Example value Image Name L'image de conteneur à déployer. registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0Resource Limit Le CPU et la mémoire maximum que l'application peut consommer. CPU : 1 cœur, Mémoire : 1024 MiB. Laissez le stockage éphémère vide. Required Resources Le CPU et la mémoire réservés pour l'application. CPU : 0,5 cœur, Mémoire : 512 MiB. Laissez le stockage éphémère vide. Port Les paramètres du port du conteneur. Nom : ack-cube, Port du conteneur :80, Protocole : TCP
-
Cliquez sur Next. Sur l'onglet Advanced, cliquez sur Create dans la section Services. Dans la boîte de dialogue Create Service, définissez les paramètres suivants et cliquez sur OK.
Parameter Description Example value Name Le nom du Service. ack-cube-svcType Mode d'accès au Service. Sélectionnez Server Load Balancer > Classic Load Balancer (CLB) > Create Resource. Conservez les paramètres CLB par défaut pour cet environnement de test. Port Le port du Service et le port du conteneur. Le port du conteneur doit correspondre au Pod backend. Port du Service : 80, Port du conteneur :80, Protocole : TCP
-
Cliquez sur Create. Une page de confirmation s'affiche avec la liste des objets de l'application. Cliquez sur View Details pour les consulter.

Accéder à l'application
Connectez-vous à la console ACKconsole ACKconsole ACKconsole ACK. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, choisissez Workloads > Deployments. Trouvez l'application ack-cube dans le namespace default. Cliquez sur l'onglet Access Method, recherchez le Service ack-cube-svc et cliquez sur le lien dans la colonne External Endpoint pour ouvrir le jeu Rubik's Cube.

Option B : Déploiement via kubectl
Se connecter au cluster
Connectez-vous à votre cluster ACK en utilisant l'une des méthodes suivantes :
CloudShell
CloudShell fournit gratuitement un environnement Linux basé sur un navigateur avec des outils préinstallés. Au démarrage de CloudShell, une machine virtuelle Linux est provisionnée pour vous. Vous pouvez l'utiliser avec l'IDE Web de CloudShell pour gérer vos ressources cloud.
Connectez-vous à la console ACKconsole ACKconsole ACKconsole ACK. Dans le volet de navigation de gauche, cliquez sur votre cluster cible. Sur la page Cluster Information, choisissez Basic Information > Open Cloud Shell. Après quelques secondes, l'interface CloudShell démarre et kubectl est prêt à l'emploi. Pour plus d'informations, consultez la rubrique Utiliser kubectl sur Workbench ou Cloud Shell pour se connecter aux clusters ACK.
Workbench
Workbench est un outil de connexion à distance basé sur un navigateur qui ne nécessite aucune installation de logiciel supplémentaire.
Connectez-vous à la console ACKconsole ACKconsole ACKconsole ACK. Dans le volet de navigation de gauche, cliquez sur votre cluster cible. Sur la page Cluster Information, choisissez Basic Information > Manage Clusters Using Workbench. Après quelques secondes, l'interface Workbench démarre. Pour plus d'informations, consultez la rubrique Se connecter à une instance en utilisant Workbench.
kubectl client
Utilisez un client kubectl local pour vous connecter via Internet.
Connectez-vous à la console ACKconsole ACKconsole ACKconsole ACK. Cliquez sur le nom de votre cluster (par exemple,
ACK-Demo). Sur la page Cluster Information, cliquez sur l'onglet Connection Information. Copiez les identifiants depuis l'onglet Public Access et collez-les dans$HOME/.kube/config. Créez le répertoire.kubeet le fichierconfigs'ils n'existent pas déjà. Pour plus d'informations, consultez la rubrique Obtenir le fichier kubeconfig d'un cluster et utiliser kubectl pour se connecter au cluster.-
Exécutez la commande suivante pour vérifier la connexion :
kubectl get namespaceSortie attendue :
NAME STATUS AGE arms-prom Active 4h39m default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
Déployer et exposer l'application
Cette section explique comment utiliser kubectl pour déployer une charge de travail sans état (un Deployment) dans votre cluster ACK et l'exposer à l'aide d'un Service de type LoadBalancer. Tous les exemples utilisent des manifestes YAML appliqués avec kubectl apply. Le Deployment exécute deux réplicas d'ACK-Cube, et le Service l'expose via un type LoadBalancer qui provisionne automatiquement une instance Server Load Balancer (SLB). Pour plus d'informations sur l'exposition des applications, consultez la rubrique Utiliser une instance SLB créée automatiquement pour exposer une application.
-
Créez un fichier nommé
ack-cube.yamlavec le contenu suivant :apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: ack-cube # The name of the application. labels: app: ack-cube spec: replicas: 2 # The number of replicated pods. selector: matchLabels: app: ack-cube # You must specify the same value for the selector of the Service that is used to expose the application. template: metadata: labels: app: ack-cube spec: containers: - name: ack-cube image: registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0 # Replace with the address of the image that you want to use in the <image_name:tags> format. ports: - containerPort: 80 # The container port that you want to expose. resources: limits: # The resource limits. cpu: '1' memory: 1Gi requests: # The resource requests. cpu: 500m memory: 512Mi -
Déployez l'application :
kubectl apply -f ack-cube.yaml -
Vérifiez que le Deployment est en cours d'exécution :
kubectl get deployment ack-cubeSortie attendue :
NAME READY UP-TO-DATE AVAILABLE AGE ack-cube 2/2 2 2 96s -
Créez un fichier nommé
ack-cube-svc.yamlavec le contenu suivant. La valeur duselectordoit correspondre à la valeurmatchLabelsdansack-cube.yaml(app: ack-cube) pour associer le Service à l'application backend.apiVersion: v1 kind: Service metadata: labels: app: ack-cube name: ack-cube-svc namespace: default spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: ack-cube # You must specify the value of the matchLabels parameter in the YAML file that is used to create the Deployment. type: LoadBalancer -
Créez le Service pour exposer l'application. La création d'un Service
LoadBalancerprovisionne automatiquement une instance SLB accessible publiquement.kubectl apply -f ack-cube-svc.yaml -
Confirmez que le Service est en cours d'exécution et obtenez l'adresse IP publique. Cela peut prendre une minute pendant le provisionnement de l'instance SLB.
kubectl get svc ack-cube-svcSortie attendue :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ack-cube-svc LoadBalancer 172.16.72.161 47.94.xx.xx 80:31547/TCP 32s Saisissez l'adresse
EXTERNAL-IP(par exemple,47.94.xx.xx) dans votre navigateur pour accéder au jeu Rubik's Cube.
Étape 3 : Nettoyer les ressources (facultatif)
Les coûts des clusters ACK incluent les frais de gestion de cluster facturés par ACK et les frais pour les autres ressources Alibaba Cloud utilisées.
Pour supprimer le cluster, connectez-vous à la console ACKconsole ACKconsole ACKconsole ACK. Sur la page Clusters, localisez votre cluster, cliquez sur More dans la colonne Actions, puis sélectionnez Delete. Sur la page Delete Cluster And Associated Resources, sélectionnez les ressources à supprimer et cliquez sur Delete. Pour plus d'informations, consultez la rubrique Supprimer un cluster.
La protection contre la suppression est activée par défaut pour les clusters Intelligent Managed. Désactivez cette fonctionnalité avant de supprimer le cluster.

Étapes suivantes
Mise à l'échelle automatique : Si votre charge de travail présente des besoins en ressources imprévisibles ou variables — courant pour les applications web, les services de jeux ou les plateformes d'éducation en ligne — configurez la mise à l'échelle automatique pour les charges de travail et les ressources du cluster. Consultez la rubrique Aperçu de la mise à l'échelle automatique.
Routage de couche 7 : Pour gérer les règles de routage HTTP/HTTPS entre plusieurs services, utilisez un Ingress au lieu d'un Service. Consultez la rubrique Gestion des Ingress.
Observabilité : Surveillez l'infrastructure du cluster, les performances des applications et les métriques métier pour suivre l'état du système et diagnostiquer les problèmes. Consultez la rubrique Aperçu du système d'observabilité.