Fonctionnalités Mise en réseau de Distributed Cloud connecté

Cette page décrit les fonctionnalités de mise en réseau de Google Distributed Cloud connecté, y compris les sous-réseaux et l'équilibrage de charge.

Activer l'API Distributed Cloud Edge Network

Avant de pouvoir configurer la mise en réseau sur un déploiement connecté de Distributed Cloud, vous devez activer l'API Distributed Cloud Edge Network. Pour ce faire, suivez les étapes décrites dans cette section. Par défaut, les serveurs Distributed Cloud connected sont fournis avec l'API Distributed Cloud Edge Network déjà activée.

Console

  1. Dans la console Google Cloud , accédez à la page API Distributed Cloud Edge Network.

    Activer l'API

  2. Cliquez sur Activer.

gcloud

Exécutez la commande suivante :

gcloud services enable edgenetwork.googleapis.com

Configurer le réseau sur Distributed Cloud connecté

Cette section explique comment configurer les composants réseau de votre déploiement Distributed Cloud connecté.

Les limites suivantes s'appliquent aux serveurs connectés Distributed Cloud :

  • Vous ne pouvez configurer que les sous-réseaux.
  • Les sous-réseaux ne sont compatibles qu'avec les ID de VLAN. Les sous-réseaux basés sur le CIDR ne sont pas compatibles.

Une configuration réseau typique pour Distributed Cloud Connected comprend les étapes suivantes :

  1. Facultatif : Si nécessaire, initialisez la configuration réseau de la zone cible.

  2. Créer un réseau.

  3. Créez un ou plusieurs sous-réseaux dans le réseau.

  4. Testez la configuration.

  5. Connectez vos pods au réseau.

Initialiser la configuration réseau de la zone Distributed Cloud

Vous devez initialiser la configuration réseau de votre zone connectée Distributed Cloud immédiatement après l'installation de votre matériel connecté Distributed Cloud dans vos locaux. L'initialisation de la configuration réseau d'une zone est une procédure ponctuelle.

L'initialisation de la configuration réseau d'une zone crée un réseau par défaut nommé default. Cette configuration fournit à votre déploiement Distributed Cloud connecté une connectivité uplink de base à votre réseau local.

Pour obtenir des instructions, consultez Initialiser la configuration réseau d'une zone.

Créer un réseau

Pour créer un réseau, suivez les instructions de la section Créer un réseau. Vous devez également créer au moins un sous-réseau dans le réseau pour permettre aux nœuds connectés Distributed Cloud de se connecter au réseau.

Créer un ou plusieurs sous-réseaux

Pour créer un sous-réseau, suivez les instructions de la section Créer un sous-réseau. Vous devez créer au moins un sous-réseau dans votre réseau pour permettre aux nœuds d'y accéder. Le VLAN correspondant à chaque sous-réseau que vous créez est automatiquement disponible pour tous les nœuds de la zone.

Tester votre configuration

Pour tester la configuration des composants réseau que vous avez créés, procédez comme suit :

  1. Vérifiez l'état opérationnel du réseau.

  2. Vérifiez l'état du provisionnement de chaque sous-réseau.

Connecter vos pods au réseau

Pour connecter vos pods au réseau et configurer des fonctions réseau avancées, suivez les instructions de l'opérateur de fonction réseau. Cette fonctionnalité n'est pas disponible pour les charges de travail des machines virtuelles.

(Facultatif) Configurer l'isolation du réseau du cluster

Distributed Cloud connecté est compatible avec l'isolation du réseau de clusters. Les nœuds attribués à un cluster isolé du réseau ne peuvent communiquer avec aucun autre nœud de la même zone connectée Distributed Cloud. Pour activer l'isolation du réseau de cluster, utilisez l'option --enable-cluster-isolation lorsque vous créez ou modifiez un cluster. Pour en savoir plus, consultez Créer et gérer des clusters.

(Facultatif) Configurer le mode île

Distributed Cloud connected est compatible avec le mode île pour son sous-système de mise en réseau virtuelle. Le mode île vous permet de spécifier une plage d'adresses IP isolée sur l'interface réseau secondaire d'un pod. Cette plage d'adresses isolée est indépendante de la plage d'adresses du VLAN de l'interface réseau principale. Les pods configurés pour le mode île ne se voient attribuer que des adresses provenant de cette plage d'adresses "île" isolée. Pour en savoir plus, consultez Modèles réseau en mode plat ou en mode île.

La plage d'adresses IP isolée que vous spécifiez pour le mode Île ne doit pas entrer en conflit avec les plages d'adresses IP suivantes :

  • Plage CIDR du VLAN principal pour tout réseau configuré dans le cluster
  • Plage d'adresses IP virtuelles de l'équilibreur de charge spécifiée dans l'annotation networking.gke.io/gdce-lb-service-vip-cidrs de la ressource Network
  • Plages d'adresses IP utilisées pour le mode île pour les autres réseaux du cluster

Configurer le mode Île

Pour configurer le mode Île au niveau du pod, ajoutez l'annotation networking.gke.io/gdce-pod-cidr à la ressource personnalisée Network correspondante. Définissez la valeur de l'annotation sur la plage d'adresses IP isolées cibles et appliquez la ressource Network modifiée à votre cluster. Exemple :

networking.gke.io/gdce-pod-cidr: 172.15.10.32/27

Vous devez également définir les paramètres suivants :

  • type doit être défini sur L3.
  • IPAMMode doit être défini sur Internal.

Exemple :

apiVersion: networking.gke.io/v1
kind: Network
metadata:
  name: my-network
  annotations:
    # Enable island mode and specify the isolated address range.
    networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
    # Specify the VLAN ID for this secondary network.
    networking.gke.io/gdce-vlan-id: "561"
    # Specify the CIDR block for load balancer services on this network.
    networking.gke.io/gdce-lb-service-vip-cidrs: 172.20.5.180/30
spec:
  # Network type must be L3 for island mode.
  type: L3
  # IPAMMode must be Internal for island mode.
  IPAMMode: Internal
  nodeInterfaceMatcher:
    interfaceName: gdcenet0.561 # The name for the target network interface.
  gateway4: 172.20.5.177 # Gateway IP address; must be unique in this CR.
  externalDHCP4: false
  dnsConfig:
    nameservers:
    - 8.8.8.8

Pour vérifier que le mode Île est activé, procédez comme suit :

  1. Créez un pod de test et appliquez-le à votre cluster. Exemple :

    apiVersion: v1
    kind: Pod
    metadata:
      name: island-pod-tester
      annotations:
        networking.gke.io/interfaces: '[{"interfaceName":"eth1","network":"test-network-vlan561"}]'
        networking.gke.io/default-interface: "eth1"
    spec:
      containers:
      - name: sample-container
        image: busybox
        command: ["/bin/sh", "-c", "sleep 3600"]
    
  2. Obtenez l'adresse IP du pod :

    kubectl get pod island-pod-tester -o wide
    

    La commande renvoie l'adresse IP du pod, qui se trouve dans la plage d'adresses isolée que vous avez spécifiée.

Configurer le mode Île avec le service ClusterIP

Pour configurer le mode Île avec le service ClusterIP, suivez les étapes de la section précédente, puis ajoutez l'annotation networking.gke.io/gke-gateway-clusterip-cidr à votre ressource Network et définissez sa valeur en fonction de vos besoins commerciaux. Les plages d'adresses spécifiées dans la ressource Network ne doivent pas se chevaucher. Exemple :

apiVersion: networking.gke.io/v1
kind: Network
metadata:
  annotations:
    networking.gke.io/gdce-lb-service-vip-cidrs: 172.20.5.180/30
    networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
    networking.gke.io/gdce-vlan-id: "561"
    networking.gke.io/gke-gateway-clusterip-cidr: 10.20.1.0/28
  name: test-network-vlan561
spec:
  IPAMMode: Internal
  dnsConfig:
    nameservers:
    - 8.8.8.8
  externalDHCP4: false
  gateway4: 172.20.5.177
  nodeInterfaceMatcher:
    interfaceName: gdcenet0.561
  type: L3

Équilibrage de charge

Distributed Cloud est fourni avec une solution d'équilibrage de charge réseau groupée basée sur MetalLB en mode couche 2. Vous pouvez utiliser cette solution pour exposer les services qui s'exécutent dans votre zone Distributed Cloud au monde extérieur en utilisant des adresses IP virtuelles (VIP) comme suit :

  1. Votre administrateur réseau planifie la topologie du réseau et spécifie le sous-réseau d'adresses IPv4 virtuelles requis lors de la commande de Distributed Cloud. Google configure votre matériel Distributed Cloud en conséquence avant la livraison. Tenez compte des points suivants :
    • Ce sous-réseau d'adresses IP virtuelles est partagé entre tous les clusters Kubernetes qui s'exécutent dans votre zone Distributed Cloud.
    • Les première (ID réseau), deuxième (passerelle par défaut) et dernière (adresse de diffusion) adresses du sous-réseau sont réservées aux fonctionnalités principales du système. N'attribuez pas ces adresses aux pools d'adresses de vos configurations MetalLB.
    • Chaque cluster doit utiliser une plage d'adresses IP virtuelles distincte qui se trouve dans le sous-réseau d'adresses IP virtuelles configuré.
  2. Lorsque vous créez un cluster dans votre zone Distributed Cloud, votre administrateur de cluster spécifie les pools d'adresses de service de pod et ClusterIP à l'aide de la notation CIDR. Votre administrateur réseau fournit le sous-réseau VIP LoadBalancer approprié à l'administrateur de votre cluster.
  3. Une fois le cluster créé, l'administrateur du cluster configure les pools d'adresses IP virtuelles correspondants. Vous devez spécifier les pools d'adresses IP virtuelles à l'aide de l'option --external-lb-address-pools lorsque vous créez le cluster. L'indicateur accepte un fichier avec une charge utile YAML ou JSON au format suivant :

     addressPools:
     - name: foo
       addresses:
       - 10.2.0.212-10.2.0.221
       - fd12::4:101-fd12::4:110
       avoid_buggy_ips: true
       manual_assign: false
    
     - name: bar
       addresses:
       - 10.2.0.202-10.2.0.203
       - fd12::4:101-fd12::4:102
       avoid_buggy_ips: true
       manual_assign: false
    

    Pour spécifier un pool d'adresses VIP, fournissez les informations suivantes dans la charge utile :

    • name : nom descriptif qui identifie de manière unique ce pool d'adresses IP virtuelles.
    • addresses : liste des adresses IPv4, des plages d'adresses et des sous-réseaux à inclure dans ce pool d'adresses.
    • avoid_buggy_ips : exclut les adresses IP qui se terminent par .0 ou .255.
    • manual_assign : vous permet d'attribuer manuellement des adresses de ce pool dans la configuration du service LoadBalancer cible au lieu de les faire attribuer automatiquement par le contrôleur MetalLB.

    Pour en savoir plus sur la configuration des pools d'adresses IP virtuelles, consultez Spécifier des pools d'adresses dans la documentation MetalLB.

  4. L'administrateur du cluster crée les services LoadBalancer Kubernetes appropriés.

Les nœuds Distributed Cloud d'un même pool de nœuds partagent un domaine de couche 2 commun et sont donc également des nœuds d'équilibreur de charge MetalLB.

Ressource ClusterDNS

Distributed Cloud connecté est compatible avec la ressource Google Distributed Cloud ClusterDNS pour configurer les serveurs de noms en amont pour des domaines spécifiques à l'aide de la section spec.domains. Pour en savoir plus sur la configuration de cette ressource, consultez spec.domains.

Étapes suivantes