Créer un sous-réseau mondial pour l'équilibrage de charge externe

Cette page vous explique comment créer un sous-réseau mondial dans Google Distributed Cloud (GDC) air-gapped et comment l'utiliser pour un équilibreur de charge externe (ELB).

Les sous-réseaux mondiaux vous permettent de configurer des sous-réseaux pouvant utiliser des opérations d'équilibrage de charge externe dans plusieurs zones de votre organisation GDC. L'équilibrage de charge améliore les performances, la fiabilité et la disponibilité des applications et des services en répartissant le trafic réseau sur plusieurs serveurs. Pour en savoir plus sur les sous-réseaux mondiaux pour l'équilibrage de charge, consultez À propos des sous-réseaux pour l'équilibrage de charge.

Cette page s'adresse aux développeurs du groupe des opérateurs d'applications qui souhaitent gérer l'équilibrage de charge pour leur organisation. Pour en savoir plus, consultez la documentation sur les audiences pour GDC air-gapped.

Avant de commencer

Pour créer un sous-réseau mondial et le configurer pour les équilibreurs de charge d'extrémité, vous devez disposer des éléments suivants :

  • Être propriétaire du projet pour lequel vous configurez l'équilibreur de charge. Pour en savoir plus, consultez Créer un projet.
  • Rôles d'identité et d'accès nécessaires :

    • Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur de l'équilibreur de charge (load-balancer-admin).
    • Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur de l'équilibreur de charge mondial (global-load-balancer-admin).
    • Demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Administrateur de l'organisation pour les sous-réseaux (subnet-org-admin).
    • Demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Administrateur de projet de sous-réseau (subnet-project-admin).

    Pour en savoir plus, consultez Descriptions des rôles prédéfinis.

Créer un sous-réseau global parent

Le sous-réseau global parent que vous créez dans cette section sert de pool d'adresses IP à partir duquel vos adresses IP ELB sont issues. Le sous-réseau doit inclure le libellé ipam.gdc.goog/network-segment: data. Vous pouvez spécifier le sous-réseau parent à l'aide du champ spec.parentReference.name. Deux options s'offrent à vous pour configurer le CIDR de ce sous-réseau parent :

Pour en savoir plus sur la différence entre les configurations CIDR statiques et dynamiques, consultez Configuration CIDR statique et dynamique.

Créer un sous-réseau à l'aide d'une configuration CIDR statique

Utilisez une configuration CIDR statique lorsque vous avez besoin d'un contrôle précis sur votre espace d'adresses IP. Ce sous-réseau est de type Branch. Pour en savoir plus sur les types de sous-réseaux racine, branche et feuille, consultez Hiérarchie des sous-réseaux.

Pour créer un sous-réseau parent global avec une configuration CIDR statique, ajoutez le bloc CIDR de votre choix au champ spec.ipv4Request.cidr :

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
    ipam.gdc.goog/network-segment: data
  name: ELB_PARENT_SUBNET_NAME
  namespace: platform
spec:
  ipv4Request:
    cidr: STATIC_CIDR
  parentReference:
    name: PARENT_NAME
    namespace: platform
  propagationStrategy: None
  type: Branch
EOF

Remplacez les éléments suivants :

  • GLOBAL_API_SERVER : chemin d'accès kubeconfig du serveur de l'API de gestion globale. Pour en savoir plus, consultez Serveurs d'API mondiaux et zonaux. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API, consultez Se connecter pour en savoir plus.
  • ELB_PARENT_SUBNET_NAME : nom choisi pour votre sous-réseau parent mondial pour l'équilibreur de charge ELB.
  • STATIC_CIDR : bloc CIDR spécifique que vous souhaitez allouer à ce sous-réseau parent, par exemple 10.0.10.0/27.
  • PARENT_NAME : nom du sous-réseau parent existant à partir duquel ce nouveau sous-réseau est créé.

Pour configurer ce sous-réseau afin qu'il fonctionne avec les équilibreurs de charge ELB, vous devez créer un sous-réseau feuille pour l'équilibreur de charge ELB.

Créer un sous-réseau à l'aide d'une configuration CIDR dynamique

La configuration CIDR dynamique alloue automatiquement un bloc CIDR disponible de la taille spécifiée à partir du sous-réseau parent. Cela simplifie la gestion des adresses IP, en particulier dans les environnements de grande taille. Ce sous-réseau est de type Branch. Pour en savoir plus sur les types de sous-réseaux racine, branche et feuille, consultez Hiérarchie des sous-réseaux. Pour créer un sous-réseau parent global avec un CIDR dynamique, configurez le champ spec.ipv4Request.prefixLength avec la longueur de préfixe choisie :

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
piVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
  ipam.gdc.goog/network-segment: data
  name: ELB_PARENT_SUBNET_NAME
  namespace: platform
spec:
  ipv4Request:
    prefixLength: PREFIX_LENGTH
  parentReference:
    name: PARENT_NAME
    namespace: platform
  propagationStrategy: None
  type: Branch
EOF

Remplacez les éléments suivants :

  • ELB_PARENT_SUBNET_NAME : nom que vous avez choisi pour le sous-réseau parent ELB, tel que lb-global-lancer-elb-subnet.
  • STATIC_CIDR : bloc CIDR spécifique que vous souhaitez utiliser, tel que 10.0.10.0/27. Cette variable ne s'applique qu'à la configuration CIDR statique.
  • PARENT_NAME : nom du sous-réseau parent existant à partir duquel ce nouveau sous-réseau est créé, tel que default-vpc-workload-cidr.
  • PREFIX_LENGTH : longueur de préfixe choisie pour le CIDR alloué de manière dynamique, par exemple 27. Cette variable ne s'applique qu'à la configuration CIDR dynamique.

Pour configurer ce sous-réseau afin qu'il fonctionne avec les équilibreurs de charge ELB, vous devez créer un sous-réseau feuille pour l'équilibreur de charge ELB.

Créer un sous-réseau feuille pour l'équilibreur de charge ELB

Après avoir configuré le sous-réseau parent global, vous devez créer un sous-réseau feuille pour allouer une seule adresse IP au service ELB global. La valeur du champ type de ce sous-réseau feuille doit être Leaf. Il doit également résider dans le même espace de noms de projet que vos ressources d'équilibreur de charge, telles que ForwardingRule, BackendService et Backend.

Pour créer le sous-réseau feuille et l'associer à l'équilibreur de charge d'extrémité, procédez comme suit :

  1. Créez un sous-réseau feuille avec une valeur prefixLength de 32, car il est destiné à allouer une seule adresse IP. La valeur parentReference fait référence au sous-réseau global parent créé précédemment :

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: ipam.global.gdc.goog/v1
    kind: Subnet
    metadata:
      labels:
        ipam.gdc.goog/allocation-preference: default
        ipam.gdc.goog/network-segment: data
      name: ELB_IP_SUBNET_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      ipv4Request:
        prefixLength: 32
      parentReference:
        name: PARENT_REF
        namespace: platform
      type: Leaf
    EOF
    

    Remplacez les éléments suivants :

    • ELB_IP_SUBNET_NAME : nom que vous avez choisi pour le sous-réseau feuille, tel que lb-project-elb-ip.
    • PROJECT_NAMESPACE : espace de noms Kubernetes correspondant à votre projet dans lequel se trouvent vos objets ELB (par exemple, lb-project).
    • PARENT_REF : nom du sous-réseau parent à partir duquel ce sous-réseau feuille obtient son adresse IP, tel que le sous-réseau parent global que vous avez créé précédemment.
  2. Associez le sous-réseau feuille nouvellement créé, qui contient l'adresse IP allouée, à la ressource ForwardingRuleExternal de votre ELB. Dans votre ressource ForwardingRuleExternal, mettez à jour le champ spec.cidrRef.name pour faire référence au nom du sous-réseau feuille que vous avez créé à l'étape précédente :

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ForwardingRuleExternal
    metadata:
      name: FRI_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      ports:
        - port: PORT
          protocol: PROTOCOL
      backendServiceRef:
        name: BES_NAME
      cidrRef:
        name: LEAF_SUBNET_NAME
    EOF
    

    Remplacez les éléments suivants :

    • FRI_NAME : nom de votre choix pour l'objet ForwardingRuleExternal, par exemple nginx-elb-static-fr.
    • PORT : numéro de port sur lequel votre ELB écoute le trafic entrant, tel que 80.
    • PROTOCOL : protocole réseau utilisé par votre ELB, tel que TCP ou UDP.
    • BES_NAME : nom de l'BackendService associé à cette ressource ForwardingRuleExternal, par exemple nginx-bes.
    • LEAF_SUBNET_NAME : nom du sous-réseau feuille que vous avez créé à l'étape précédente, tel que lb-project-elb-ip.