Implémenter un modèle de réseau plat en mode IPv4

Présentation

Dans un modèle de réseau en mode plat, les pods disposent d'adresses IP uniques dans leurs clusters. Assurez-vous que les CIDR des pods attribués sont uniques et ne chevauchent aucun autre sous-réseau. Par exemple, les adresses IP ne peuvent pas chevaucher les adresses IP utilisées pour les nœuds ou les CIDR des autres pods des autres clusters. Ces adresses IP sont accessibles en externe. Par conséquent, les pods d'un nœud peuvent communiquer avec tous les pods de tous les autres nœuds. La communication entre le pod et une adresse IP externe ne nécessite pas de traduction d'adresse réseau (NAT). Pour en savoir plus sur le modèle de réseau en mode plat et le comparer au modèle de réseau par défaut, consultez la section Modèles de réseaux plats ou fixes en île.

Il existe deux types de modèles de réseau en mode plat : réseau en mode statique et réseau en mode dynamique (via le protocole Border Gateway Protocol). Le mode plat statique peut être utilisé lorsque les nœuds couvrent un seul domaine de couche 2. Pour les nœuds couvrant plusieurs domaines de couche 2, utilisez le mode IP plat avec BGP.

Utilisez un modèle de réseau en mode plat lorsque vous disposez d'un grand espace d'adresses IP et que vous pouvez attribuer un CIDR unique de pod à un cluster. Vous pouvez configurer les CIDR des pods à l'aide de ClusterCIDRConfigs de manière dynamique. Vous pouvez ajouter ou supprimer des ClusterCIDRConfigs après la création du cluster.

Pour en savoir plus sur le mode plat avec BGP, consultez la section Mettre en œuvre un modèle de réseau en mode plat avec BGP.

Comprendre l'accessibilité des adresses IP des pods

En mode réseau statique statique pour IPv4, la joignabilité de l'adresse IP des pods est basée sur les paquets ARP (Address Resolution Protocol). Par conséquent, les adresses IP des pods ne sont accessibles que lorsque les pods se trouvent dans le même domaine de couche 2. Les nœuds doivent appartenir au même domaine de couche 2. Les adresses IP que vous spécifiez pour vos pods (à l'aide de ClusterCIDRConfigs) doivent se trouver dans le même sous-réseau que les nœuds du cluster. Les CIDR des pods configurés doivent provenir du sous-réseau des nœuds. Par exemple, le sous-réseau 222.1.0.0/16 est utilisé par les nœuds d'un cluster, puis sélectionne un sous-réseau plus petit au sein du sous-réseau pour les pods 222.1.2.0/24. Assurez-vous qu'aucune autre ressource de votre cluster n'utilise une adresse IP de la plage allouée à vos pods.

La section suivante décrit la configuration des réseaux en mode plat pour IPv4.

Implémenter un réseau statique en mode plat

Par défaut, les clusters Anthos sur solution Bare Metal sont créés en réseau en mode île. Cette section explique comment configurer la mise en réseau en mode plat pour votre cluster.

Pour déployer un cluster avec un modèle de réseau en mode plat, apportez les modifications suivantes au fichier de configuration du cluster:

La mise en réseau en mode plat peut être activée pour un cluster uniquement lors de sa création. Pour créer un cluster avec une mise en réseau en mode plat, procédez comme suit:

  1. Modifiez le fichier de configuration du cluster pour ajouter clusterNetwork.flatIPv4 et définissez-le sur true.

    Lorsque vous activez la mise en réseau en mode plat, le CIDR du pod spécifié dans le fichier de configuration du cluster (clusterNetwork.pods.cidrBlocks) est ignoré.

  2. Ajoutez un fichier manifeste de ClusterCIDRConfig au fichier de configuration du cluster.

    Dans le fichier manifeste ClusterCIDRConfig, incluez les informations suivantes:

    • metadata.namespace: espace de noms de votre cluster.

    • spec.ipv4.cidr : plage d'adresses IP au format de bloc CIDR à utiliser pour les pods de votre cluster. Cette plage doit provenir du même sous-réseau que les nœuds du cluster.

    • perNodeMaskSize : les vérifications préliminaires de la création de cluster vérifient que la valeur perNodeMaskSize est suffisante pour provisionner le nombre de pods spécifié dans maxPodsPerNode.

    • nodeSelector: si aucun libellé de nœud ne correspond à la valeur nodeSelector, le rapprochement du nœud reste en attente et la création du cluster n'est pas terminée.

L'extrait suivant d'un fichier de configuration de cluster montre comment mettre en œuvre la mise en réseau en mode plat sans compatibilité BGP. Les CIDR qui apparaissent dans cet extrait ne sont que des exemples. Vous devrez les remplacer par vos propres CIDR. Lorsque vous remplacez les CIDR par les vôtres, assurez-vous qu'ils répondent aux critères de joignabilité du pod, tels que spécifiés dans la section Comprendre la joignabilité de l'adresse IP du pod.

---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: flat-mode
  namespace: cluster-flat-mode
spec:
... (other cluster config omitted)

...
  # Cluster networking configuration
  clusterNetwork:
    flatIPv4: true
    services:
      cidrBlocks:
      - 10.96.0.0/12
... (other cluster config omitted)

...
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
  name: cluster-wide-1
  namespace: cluster-flat-mode
spec:
  ipv4:
    cidr: "222.1.0.0/16"
    perNodeMaskSize: 24

Limites

Le réseau statique en mode plat pour les clusters Anthos sur bare metal présente les limitations suivantes:

  • Les pods utilisant des réseaux en mode plat sont accessibles au sein d'un seul domaine de couche 2. Toute autre machine n'appartenant pas au cluster, mais dans le même domaine de couche 2 peut également atteindre les pods. Cette limitation s'applique également aux adresses IPv6 lorsque des clusters double pile sont créés et lorsque IPv6 est en mode plat sans BGP. Pour en savoir plus, consultez la section Comprendre l'accessibilité des adresses IP des pods.

  • Le contrôleur IPAM Bare Metal dclusters Anthos suit la disponibilité des adresses IP dans les CIDR des pods configurés. mais pas les adresses IP déjà utilisées par d'autres appareils. Par conséquent, aucune autre adresse IP du domaine de couche 2 ne doit interférer avec les CIDR des POD. Pour en savoir plus, consultez la section Comprendre l'accessibilité des adresses IP des pods.