Les sous-réseaux à double pile permettent à vos ressources Cloud Run d'envoyer du trafic IPv4 et IPv6 vers un réseau VPC avec sortie VPC directe. Vous pouvez remplacer un sous-réseau IPv4 uniquement (pile unique) existant par un sous-réseau à double pile.
Types de sous-réseaux
Les réseaux VPC sont compatibles avec les types de sous-réseaux Compute Engine suivants :
Sous-réseaux IPv4 uniquement (pile unique), avec uniquement des plages de sous-réseaux IPv4
Sous-réseaux IPv4 et IPv6 (double pile), avec des plages de sous-réseaux IPv4 et IPv6
Limites de la double pile
Avant de modifier le type de pile sur une ressource Cloud Run existante, tenez compte des limites suivantes :
La double pile n'est compatible qu'avec les sous-réseaux d'un réseau VPC en mode personnalisé. Pour que le type d'accès interne soit disponible pour les sous-réseaux à double pile, la plage d'adresses IPv6 internes du réseau VPC doit être activée. Configurez ou convertissez le réseau VPC en mode personnalisé.
Par rapport aux sous-réseaux IPv4 uniquement, les sous-réseaux à double pile peuvent présenter des latences de démarrage à froid plus élevées, ce qui limite la vitesse à laquelle votre application peut évoluer.
NAT64 n'est pas compatible.
Avant de commencer
Assurez-vous que l'agent de service Cloud Run dispose du rôle Administrateur des adresses IP publiques Compute (roles/compute.publicIpAdmin) pour utiliser le sous-réseau avec l'adresse IPv6 externe.
Ajouter un sous-réseau à double pile à une ressource
Les sous-réseaux à double pile possèdent des plages d'adresses IPv4 et IPv6.
Pour ajouter un sous-réseau à double pile à une ressource Cloud Run, procédez comme suit :
Console
Dans la console Google Cloud :
Activez l'API Compute Engine :
Accédez à la page Réseaux VPC :
Cliquez sur Créer un réseau VPC si vous créez un réseau en mode personnalisé. Si vous utilisez un réseau VPC existant, cliquez sur son nom pour afficher la page Détails du réseau VPC.
Si vous créez un réseau ou convertissez un réseau existant, saisissez le nom et assurez-vous que le mode de création de sous-réseau est défini sur Personnalisé, puis sélectionnez Configurer une plage d'adresses IPv6 interne ULA pour ce réseau VPC.
Dans l'onglet Sous-réseaux, cliquez sur Ajouter un sous-réseau. Dans le panneau qui apparaît :
- Indiquez un Nom.
- Sélectionnez une Région.
- Dans le champ Type de pile d'adresses IP, sélectionnez IPv4 et IPv6 (double pile).
- Saisissez une plage IPv4. Il s'agit de la plage d'adresses IPv4 principale du sous-réseau.
Sélectionnez le type d'accès IPv6.
Si l'option Interne n'est pas disponible et que vous en avez besoin, vérifiez qu'une plage IPv6 interne est attribuée sur le réseau.
Cliquez sur Ajouter.
Déployez un service Cloud Run, exécutez un job ou déployez un pool de nœuds de calcul sur le sous-réseau à double pile que vous avez créé. Lorsque vous saisissez les détails de la ressource requise, sélectionnez la nouvelle plage d'adresses IPv6 en procédant comme suit :
- Cliquez sur Conteneur(s), volumes, mise en réseau, sécurité, puis sélectionnez l'onglet Mise en réseau.
- Cliquez sur Se connecter à un VPC pour le trafic sortant, puis sur Envoyer le trafic directement vers un VPC.
- Sélectionnez le réseau que vous avez créé à l'étape précédente.
- Cliquez sur le champ Sous-réseau pour sélectionner la plage d'adresses IPv6 que vous venez de créer.
La ressource est automatiquement provisionnée avec le type de pile du sous-réseau.
gcloud
Pour créer un réseau en mode personnalisé compatible avec les sous-réseaux à double pile, exécutez la commande
gcloud compute networks create.Pour configurer des plages IPv6 internes sur n'importe quel sous-réseau de ce réseau, utilisez l'option
--enable-ula-internal-ipv6. Cette option attribue un préfixe ULA/48compris dans la plagefd20::/20utilisée par Google Cloud pour les plages de sous-réseaux IPv6 internes.gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Remplacez
NETWORKpar le nom du réseau VPC qui contiendra le nouveau sous-réseau.Pour convertir ou mettre à jour un réseau en mode personnalisé afin qu'il prenne en charge les sous-réseaux à double pile, exécutez la commande suivante :
gcloud compute networks update NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Remplacez
NETWORKpar le nom du réseau VPC qui contiendra le nouveau sous-réseau.Pour créer un sous-réseau à double pile avec une plage IPv6, exécutez la commande
subnets createavec les paramètres à double pile :gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=IPV6_ACCESS_TYPE \ --region=REGION
Remplacez les éléments suivants :
SUBNET: Nom du nouveau sous-réseau.NETWORK: nom du réseau VPC qui contiendra le nouveau sous-réseau.PRIMARY_IPv4_RANGE: plage d'adresses IPv4 principales pour le nouveau sous-réseau, au format CIDR. Pour en savoir plus, consultez la section sur les plages de sous-réseaux IPv4.IPV6_ACCESS_TYPE: type d'accès IPv6 du nouveau sous-réseau (internalouexternal).REGION: région Google Cloud dans laquelle le nouveau sous-réseau sera créé.
Déployez un service Cloud Run, exécutez un job ou déployez un pool de nœuds de calcul sur le sous-réseau à double pile que vous avez créé. La ressource est automatiquement provisionnée avec le type de pile du sous-réseau.
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour les attributs suivants :
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE_NAME labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]' run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE
Remplacez :
- SERVICE_NAME par le nom de votre service Cloud Run. Les noms de service doivent comporter un maximum de 49 caractères et être uniques par région et par projet.
- REGION par la région de votre service Cloud Run, qui doit correspondre à la région de votre sous-réseau.
- NETWORK par le nom de votre réseau VPC ;
- SUBNET par le nom de votre sous-réseau. Vous pouvez déployer ou exécuter plusieurs services, jobs ou pools de nœuds de calcul sur le même sous-réseau.
- Facultatif: NETWORK_TAG_NAMES par les noms des tags réseau que vous souhaitez associer à un service. Pour les services, les tags réseau sont spécifiés au niveau de la révision. Chaque révision de service peut avoir des tags réseau différents, tels que
network-tag-2. - EGRESS_SETTING par une valeur de paramètre de sortie :
all-traffic: achemine tout le trafic sortant via le réseau VPC.private-ranges-only: achemine uniquement le trafic destiné à des adresses internes via le réseau VPC.
- IMAGE par l'URL de votre image de conteneur de service.
Vous pouvez également spécifier d'autres éléments de configuration, tels que des variables d'environnement ou des limites de mémoire.
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Ajoutez le code ci-dessous à votre fichier
main.tf:
Vous pouvez éventuellement rendre votre service public si vous souhaitez autoriser un accès non authentifié à celui-ci.
Passer d'un sous-réseau à pile unique à un sous-réseau à double pile
Pour ajouter une plage de sous-réseaux IPv6 à un sous-réseau IPv4 uniquement existant dans un réseau VPC en mode personnalisé, consultez Définir le type de pile d'un sous-réseau sur double pile. Ensuite, déployez le service Cloud Run, exécutez le job ou déployez le pool de nœuds de calcul sur le sous-réseau à double pile.
Passer d'un sous-réseau à double pile à un sous-réseau à pile unique
Pour remplacer le sous-réseau à double pile d'une ressource par un sous-réseau à pile unique, consultez Remplacer un sous-réseau à double pile par un sous-réseau IPv4 uniquement. Ensuite, déployez le service Cloud Run, exécutez le job ou déployez le pool de nœuds de calcul sur le sous-réseau double pile.
Valider le réseau et le sous-réseau
Pour vérifier que votre ressource se trouve sur le réseau VPC, exécutez la commande suivante :
gcloud run services describe SERVICE_NAME --region=REGION
Remplacez REGION par la région Google Cloud dans laquelle le nouveau sous-réseau a été créé.
L'exemple de résultat suivant indique votre réseau et votre sous-réseau :
VPC Access:
Network: example-network
Subnet: example-subnet
Egress: private-ranges-only