Elastic Container Instance (ECI) s'intègre parfaitement à Container Service for Kubernetes (ACK). Vous pouvez utiliser un cluster ACK Serverless ou un cluster ACK managé pour bénéficier des capacités d'exécution de conteneurs offertes par ECI. Cette rubrique explique comment utiliser ECI avec un cluster ACK Serverless.
Prérequis
Avant de commencer, activez les services requis et accordez les autorisations nécessaires :
Activez Container Service for Kubernetes (ACK), attribuez les rôles par défaut et activez les produits cloud associés. Pour plus d'informations, consultez la rubrique Création d'un cluster ACK managé.
Connectez-vous à la console Elastic Container Instance et suivez les instructions pour activer le service ECI.
Création d'un cluster ACK Serverless
Les étapes suivantes décrivent uniquement les paramètres de base pour la création d'un cluster ACK Serverless. Pour les environnements de production, configurez les paramètres et installez les composants en fonction de vos besoins métier. Pour plus d'informations, consultez la rubrique Création d'un cluster.
-
Accédez à la page de création du cluster.
Connectez-vous à la console Container Service for Kubernetes (ACK).
Dans le volet de navigation de gauche, cliquez sur Cluster.
Dans l'angle supérieur droit de la page Clusters, cliquez sur Create Kubernetes Cluster.
-
Cliquez sur l'onglet **ACK Serverless, configurez les paramètres du cluster, puis cliquez sur Next: Component Configurations**.
Le tableau suivant décrit les principaux paramètres. Configurez les autres paramètres selon vos besoins.
Parameter
Example
Description
Cluster Name
test
Saisissez un nom pour le cluster.
Region
China (Beijing)
Sélectionnez la région dans laquelle vous souhaitez créer le cluster.
VPC
Create VPC
Spécifiez le VPC pour le cluster.
-
Create VPC : sélectionnez une zone. Le système crée alors automatiquement un VPC, un vSwitch dans la zone sélectionnée, une passerelle NAT et configure les règles SNAT.
-
Select Existing VPC : sélectionnez un VPC et un vSwitch existants.
Configure SNAT
Configure SNAT for VPC
Configurez SNAT si votre cluster nécessite un accès à Internet public.
-
Si vous sélectionnez Create VPC, SNAT est configuré automatiquement.
-
Si vous utilisez un VPC existant, choisissez de configurer ou non SNAT en fonction de vos besoins.
Service CIDR
172.21.0.0/20
Spécifiez un bloc CIDR de service qui ne chevauche pas le bloc CIDR du VPC ni les blocs CIDR d'autres clusters Kubernetes dans le même VPC. Ce paramètre ne peut pas être modifié après la création du cluster. Pour plus d'informations, consultez la rubrique Planification des réseaux pour les clusters ACK managés.
Access to API Server
Expose API server with EIP
Choisissez d'exposer ou non le serveur API à l'aide d'une adresse IP élastique (EIP). Le serveur API fournit des API REST HTTP pour créer, mettre à jour, supprimer et surveiller les objets de ressource tels que les Pods et les services.
-
Si vous activez cette option, une EIP est créée et associée à une instance Server Load Balancer (SLB). Cela expose le serveur API Kubernetes sur le port 6443 de l'EIP. Vous pouvez utiliser un fichier kubeconfig pour vous connecter au cluster et le gérer depuis Internet.
-
Si vous n'activez pas cette option, aucune EIP n'est créée. Vous ne pouvez utiliser un fichier kubeconfig pour vous connecter au cluster et le gérer qu'à partir du VPC.
-
-
Configurez les composants et cliquez sur Next: Confirm Configuration.
Configurez les composants selon vos besoins. L'utilisation de composants optionnels peut engendrer des frais. Pour ce tutoriel, aucun composant supplémentaire n'est requis.
-
Vérifiez vos paramètres, lisez et cochez la case Terms of Service, puis cliquez sur Create Cluster.
Revenez à la page Clusters. Le cluster est prêt lorsque son statut passe à Running.
Déploiement sur un cluster ACK Serverless
Les étapes suivantes vous guident dans le déploiement d'une application NGINX sur un cluster ACK Serverless.
Sur la page Clusters, recherchez votre cluster ACK Serverless et cliquez sur son nom.
-
Créez un Deployment pour l'application NGINX.
Dans le volet de navigation de gauche, choisissez Workloads > Deployments.
Dans l'angle supérieur droit, cliquez sur Create from YAML.
-
Modifiez le modèle YAML selon vos besoins et cliquez sur Create.
Par défaut, le modèle d'exemple Resource-basic Deployment est sélectionné. Le code YAML de ce modèle déclare un Deployment contenant deux Pods. Chaque Pod possède le libellé app: nginx et exécute un conteneur NGINX.
RemarqueDans le modèle d'exemple,
image: nginx:1.7.9spécifie l'image NGINX 1.7.9 à extraire depuis Docker Hub. Si votre cluster ne dispose pas d'un accès à Internet public, il ne peut pas extraire cette image. Remplacez-la par une image disponible dans votre VPC, telle queimage: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2.apiVersion: apps/v1 # for versions before 1.0.0 use apps/v1beta1 kind: Deployment metadata: name: nginx-deployment-basic labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: # nodeSelector: # env: test-team containers: - name: nginx image: nginx:1.7.9 # replace it with your image and tag ports: - containerPort: 80 resources: limits: cpu: "500m" resources: limits: cpu: "500m" -
Vérifiez le Deployment.
-
Sur la page Deployments, consultez les informations du Deployment.
La valeur
2/2dans la colonne Pods indique que les deux Pods du Deployment sont en cours d'exécution. -
Sur la page Deployments, cliquez sur le nom du Deployment pour afficher ses détails.
Dans l'onglet Pods, vous constatez que le statut des deux Pods est Running. Cliquez sur le nom d'un Pod pour afficher ses détails.
-
Chaque Pod correspond à une instance ECI. Consultez les instances ECI correspondantes sur la page Container Group de la console Elastic Container Instance.
Le statut des instances ECI correspondantes est Running.
-
-
Créez un service pour exposer l'application NGINX.
Dans le volet de navigation de gauche, choisissez Network > Services.
Dans l'angle supérieur droit, cliquez sur Create Resources in YAML.
-
Copiez le code YAML suivant et cliquez sur Create.
Le code YAML suivant crée un service de type LoadBalancer. Il expose le port 80 et achemine le trafic vers les Pods portant le libellé app: nginx.
apiVersion: v1 kind: Service metadata: name: nginx-service spec: ports: - port: 80 protocol: TCP selector: app: nginx type: LoadBalancer -
Vérifiez le service.
Sur la page Services, cliquez sur le nom du service pour afficher ses détails. Le service est automatiquement associé au Deployment créé à l'étape précédente. Les points de terminaison backend sont les deux Pods de ce Deployment.
Le type de service est LoadBalancer et son point de terminaison externe est une adresse IP telle que
47.94.xxx:80, que vous pouvez utiliser pour accéder au service depuis Internet. Le tableau des points de terminaison montre que les deux Pods s'exécutent sur le nœud virtual-kubelet. Cela confirme que l'application s'exécute en mode serverless.
-
Accédez à l'application NGINX.
Saisissez l'adresse
IP:portdu point de terminaison externe dans votre navigateur web pour accéder à l'application NGINX.Après un accès réussi, votre navigateur affiche la page d'accueil par défaut de NGINX avec le titre Welcome to nginx!. Cela indique que l'application NGINX est déployée et fonctionne correctement.