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

Présentation

Dans un modèle de réseau en mode plat, les pods disposent d'adresses IP uniques sur tous les clusters. Assurez-vous que les CIDR des pods attribués sont uniques et ne se chevauchent avec 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 autres CIDR des pods d'autres clusters. Ces adresses IP sont accessibles en externe et peuvent donc communiquer avec tous les pods situés sur tous les autres nœuds. La communication entre le pod et les adresses IP externes ne nécessite pas de traduction d'adresses 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 insulaire par défaut, consultez la section Modèles de réseau plat et en mode insulaire.

Il existe deux types de modèles de réseaux en mode plat : un réseau statique et un réseau en mode dynamique (via le protocole Border Gateway Protocol). Le mode plat statique peut être utilisé lorsque les nœuds s'étendent sur un seul domaine de couche 2. Pour les nœuds couvrant plusieurs domaines de couche 2, utilisez le mode d'adresse 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 des pods unique à un cluster. Vous pouvez configurer les CIDR des pods à l'aide de ClusterCIDRConfigs de manière dynamique. Vous pouvez ajouter ou supprimer des objets ClusterCIDRConfigs après la création du cluster.

Pour en savoir plus sur le mode plat avec BGP, consultez Implémenter le modèle de réseau en mode plat compatible avec BGP.

Comprendre la joignabilité de l'adresse IP des pods

En mode réseau statique statique pour IPv4, la joignabilité des adresses IP des pods est basée sur les paquets du protocole de résolution d'adresse (ARP). 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 bare metal sont créés en réseau en mode insulaire. 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 ne peut être activée pour un cluster que 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 des pods spécifié dans le fichier de configuration du cluster (clusterNetwork.pods.cidrBlocks) est ignoré.

  2. Ajoutez un fichier manifeste 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 du 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 implémenter une mise en réseau en mode plat sans compatibilité BGP. Les CIDR présentés dans cet extrait ne sont que des exemples et 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é des pods spécifiés dans Comprendre la joignabilité des adresses IP des pods.

---
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 limites suivantes:

  • Les pods utilisant des réseaux en mode plat sont accessibles au sein du même domaine de couche 2. Toute autre machine qui ne se trouve pas dans le cluster, mais dans le même domaine de couche 2 peut également atteindre les pods. Cette limitation existe également pour IPv6 lors de la création de clusters à double pile et lorsque IPv6 est en mode plat sans BGP. Pour en savoir plus, consultez Comprendre l'accessibilité des adresses IP des pods.

  • Le contrôleur IPAM d'clusters Anthos sur bare metal suit la disponibilité des adresses IP dans les CIDR des pods configurés. Il ne suit 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 Comprendre l'accessibilité des adresses IP des pods.

  • Le masquage d'adresses IP est désactivé lorsque vous utilisez le mode IPv4 plat. Comme la fonctionnalité de passerelle NAT de sortie dépend du masquage des adresses IP, vous ne pouvez pas utiliser la passerelle NAT de sortie avec le mode IPv4 plat.