Par défaut, les pods ECI reçoivent uniquement une adresse IP privée. Pour extraire des images depuis un registre public tel que Docker Hub ou pour exposer le service d'un pod sur Internet, vous devez configurer une route Internet pour le pod.
Deux méthodes sont disponibles :
Associer une adresse IP élastique (EIP) au pod : attribue directement une adresse IP publique dédiée au pod. Utilisez cette méthode lorsqu'un seul pod nécessite sa propre adresse publique (par exemple, pour exposer un service NGINX sur le port 80).
Créer une passerelle NAT Internet dans le VPC : permet à plusieurs pods de partager l'accès Internet sortant via une seule passerelle. Privilégiez cette approche lorsque plusieurs pods doivent atteindre Internet sans nécessiter chacun une adresse IP publique dédiée (par exemple, pour extraire des images Docker Hub pour plusieurs pods).
Avant d'activer l'accès Internet, assurez-vous que les adresses IP et les ports pertinents sont autorisés dans le groupe de sécurité auquel appartiennent les instances. Pour plus de détails, consultez la rubrique Ajouter une règle de groupe de sécurité.
Notes d'utilisation
Chaque EIP ne peut être associée qu'à une seule instance de conteneur élastique (ECI) à la fois. Pour attribuer des adresses publiques distinctes à plusieurs pods, associez une EIP distincte à chaque pod ou utilisez une passerelle NAT Internet.
Les annotations ne prennent effet que lors de la création d'un pod ECI. L'ajout ou la modification d'annotations sur un pod existant n'a aucun effet.
Pour les déploiements, ajoutez les annotations dans la section
spec.template.metadata, et non dans la sectionmetadatade niveau supérieur.Si un pod dispose d'une EIP associée, il utilise cette EIP directement pour le trafic sortant et contourne la fonctionnalité SNAT de toute passerelle NAT présente dans le VPC.
Associer une EIP à un pod
Lors de la création du pod, ajoutez des annotations à sa section metadata. Vous pouvez soit associer une EIP existante, soit laisser le système en créer une automatiquement.
Créer automatiquement une EIP
Définissez k8s.aliyun.com/eci-with-eip sur "true" pour que le système crée une EIP et l'associe automatiquement au pod. Utilisez les annotations suivantes pour configurer l'EIP :
| Annotation | Exemple | Description |
|---|---|---|
k8s.aliyun.com/eci-with-eip |
"true" |
Crée et associe automatiquement une EIP |
k8s.aliyun.com/eip-bandwidth |
"10" |
Bande passante maximale en Mbit/s. Valeur par défaut : 5 |
k8s.aliyun.com/eip-internet-charge-type |
PayByTraffic |
Méthode de facturation. Valeurs valides : PayByBandwidth (paiement à la bande passante), PayByTraffic (paiement au trafic) |
k8s.aliyun.com/eip-isp |
BGP |
Type de ligne. S'applique uniquement aux EIP en paiement à l'utilisation. Valeur par défaut : BGP. Valeurs valides : BGP (BGP (Multi-ISP)), BGP_PRO (BGP (Multi-ISP) Pro). Pour plus de détails, consultez la section « Types de lignes » de la rubrique Adresses IP élastiques |
k8s.aliyun.com/eip-common-bandwidth-package-id |
"cbwp-2zeukbj916scmj51m****" |
ID d'un plan de bande passante EIP existant à associer à l'EIP. Pour plus de détails, consultez la rubrique Qu'est-ce que la bande passante partagée Internet ? |
k8s.aliyun.com/eip-public-ip-address-pool-id |
pippool-bp187arfugi543y1s**** |
ID du pool d'adresses IP à partir duquel l'EIP est allouée. Pour plus de détails, consultez la rubrique Créer et gérer des pools d'adresses IP |
Exemple : créer automatiquement une EIP avec une bande passante personnalisée
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Creates and associates an EIP automatically
k8s.aliyun.com/eip-bandwidth: "10" # Sets the maximum bandwidth to 10 Mbit/s
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Exemple : créer automatiquement une EIP et l'associer à un plan de bande passante EIP
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Creates and associates an EIP automatically
k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # Associates an EIP bandwidth plan with the EIP
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Pour obtenir des détails sur la tarification des EIP, consultez la rubrique Présentation de la facturation.
Créer une passerelle NAT Internet
Une passerelle NAT permet aux pods situés dans un VPC privé d'atteindre Internet sans adresse IP publique (SNAT) et, en option, autorise le trafic Internet à atteindre des pods spécifiques (DNAT).
| Fonctionnalité | Description |
|---|---|
| SNAT | Permet aux pods d'accéder à Internet en utilisant une EIP partagée. Aucune adresse IP publique n'est attribuée aux pods individuels. |
| DNAT | Mappe une EIP associée à la passerelle NAT vers un pod spécifique, afin que ce dernier puisse accepter le trafic Internet entrant. |
Étape 1 : Créer une passerelle NAT Internet
Dans la console VPC, créez une passerelle NAT Internet dans le VPC où s'exécutent vos pods. Pour des instructions détaillées, consultez la rubrique Créer et gérer une passerelle NAT Internet.
Pour connaître la tarification des passerelles NAT, consultez la rubrique Facturation des passerelles NAT Internet.
Étape 2 : Créer une entrée SNAT (accès sortant)
Créez une entrée SNAT afin que les pods puissent initier des connexions vers Internet. Pour plus d'instructions, consultez la rubrique Créer et gérer des entrées SNAT.
Portez une attention particulière aux paramètres suivants :
| Paramètre | Description |
|---|---|
| Entrée SNAT | Détermine quels pods utilisent le SNAT. Sélectionnez l'option adaptée à votre topologie réseau et à vos exigences de sécurité : Specify VPC (tous les pods du VPC), Specify vSwitch (pods connectés aux vSwitches sélectionnés) ou Specify Custom CIDR Block (pods situés dans un bloc CIDR spécifique) |
| Select vSwitch | Requis lorsque SNAT entry est défini sur Specify vSwitch. Sélectionnez les vSwitches utilisés par vos pods |
| Custom CIDR block | Requis lorsque SNAT entry est défini sur Specify Custom CIDR Block. Saisissez le bloc CIDR qui inclut vos pods |
| Select EIP | Sélectionnez une ou plusieurs EIP associées à la passerelle NAT. Les pods utilisent ces EIP pour accéder à Internet |
Étape 3 : Créer une entrée DNAT (accès entrant)
Ignorez cette étape si vos pods ont uniquement besoin d'un accès Internet sortant.
Pour autoriser le trafic Internet à atteindre un pod spécifique, créez une entrée DNAT. Pour plus d'instructions, consultez la rubrique Créer et gérer des entrées DNAT.
Portez une attention particulière aux paramètres suivants :
| Paramètre | Description |
|---|---|
| Select EIP | Sélectionnez l'EIP associée à la passerelle NAT. Le trafic entrant arrive sur cette EIP et est transféré vers le pod |
| Select Private IP Address | Identifiez le pod cible en sélectionnant son interface réseau élastique (ENI) ou en saisissant son adresse IP privée |
| Port Settings | Sélectionnez la méthode de transfert : Any Port (mappage d'adresse IP — tout le trafic vers l'EIP est transféré au pod) ou Custom Port (mappage de port — le trafic sur un protocole et un port spécifiques est transféré vers le port correspondant sur le pod) |
Étapes suivantes
Pour plus de détails sur le produit EIP, consultez la rubrique Qu'est-ce qu'une EIP.
Pour plus de détails sur les passerelles NAT, consultez la rubrique Qu'est-ce qu'une passerelle NAT.