Par défaut, une instance de conteneur élastique ne dispose que d'une adresse IP privée. Pour activer l'accès à Internet, par exemple pour extraire une image de conteneur depuis un registre public, associez une adresse IP élastique (EIP) à l'instance en ajoutant des annotations à votre service Knative.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Déployé Knative dans votre cluster ACK. Consultez la rubrique Déployer Knative
Méthodes d'accès à Internet
Deux méthodes permettent d'activer l'accès à Internet pour une instance de conteneur élastique :
| Méthode | Fonctionnement | Cas d'utilisation |
|---|---|---|
| Associer une adresse EIP à l'instance de conteneur élastique | Attribue directement une adresse IP publique à une instance unique | Activer l'accès public pour une seule instance ; il s'agit de la seule méthode prise en charge dans Knative |
| Associer une adresse EIP à une passerelle NAT | Achemine le trafic sortant via une passerelle partagée (achetée séparément) pour toutes les instances du réseau privé virtuel (VPC) | Activer l'accès à Internet pour plusieurs instances au sein du VPC |
Knative prend uniquement en charge la première méthode. Pour permettre à une instance de conteneur élastique exécutant un service Knative d'accéder à Internet, associez directement une adresse EIP à cette instance.
Pour plus d'informations sur l'activation de l'accès à Internet pour les instances de conteneur élastique, consultez la rubrique Activer l'accès à Internet.
Annotations prises en charge
Ajoutez les annotations suivantes au champ spec.template.metadata.annotations de votre service Knative pour configurer l'adresse EIP.
| Annotation | Description | Valeur par défaut |
|---|---|---|
k8s.aliyun.com/eci-eip-instanceid |
ID d'une adresse EIP existante à associer | — |
k8s.aliyun.com/eci-with-eip |
Définissez cette valeur sur "true" pour créer et associer automatiquement une nouvelle adresse EIP |
— |
k8s.aliyun.com/eip-bandwidth |
Bande passante maximale de l'adresse EIP créée automatiquement, en Mbit/s | 5 |
k8s.aliyun.com/eip-common-bandwidth-package-id |
ID d'un plan de bande passante EIP à associer à l'adresse EIP créée automatiquement | — |
k8s.aliyun.com/eip-isp |
Type de ligne de l'adresse EIP créée automatiquement. Valeurs valides : BGP (ligne BGP multi-opérateurs), BGP_PRO (ligne BGP multi-opérateurs Pro) |
— |
Associer une adresse EIP à un service Knative
Choisissez l'une des configurations suivantes selon votre scénario.
Utiliser une adresse EIP existante
Ajoutez l'annotation k8s.aliyun.com/eci-eip-instanceid et définissez sa valeur sur l'ID de l'adresse EIP à associer.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
spec:
template:
metadata:
labels:
app: helloworld-go
annotations:
k8s.aliyun.com/eci-eip-instanceid: "eip-bp1q5n8cq4p7f6dzu****" # ID of the existing EIP to associate
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
Créer une nouvelle adresse EIP avec une limite de bande passante
Définissez k8s.aliyun.com/eci-with-eip sur "true" pour créer automatiquement une adresse EIP. Utilisez k8s.aliyun.com/eip-bandwidth pour définir la bande passante maximale. Si ce paramètre est omis, la bande passante par défaut est de 5 Mbit/s.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
spec:
template:
metadata:
labels:
app: helloworld-go
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Create and associate a new EIP automatically
k8s.aliyun.com/eip-bandwidth: "10" # Maximum bandwidth in Mbit/s; omit to use the default of 5
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
Créer une nouvelle adresse EIP et attacher un plan de bande passante EIP
Utilisez k8s.aliyun.com/eip-common-bandwidth-package-id pour associer l'adresse EIP créée automatiquement à un plan de bande passante EIP existant. Cela permet de partager la capacité de bande passante entre plusieurs adresses EIP au sein du même plan.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
spec:
template:
metadata:
labels:
app: helloworld-go
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Create and associate a new EIP automatically
k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # ID of the EIP bandwidth plan to attach
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56