Partager via


Déployer le plug-in CLI Réseau virtuel Azure

Le plug-in CLI Réseau virtuel Azure s’installe sur une machine virtuelle Azure et apporte des fonctionnalités de réseau virtuel au pods Kubernetes et aux conteneurs Docker. Pour en savoir plus sur ce plug-in, consultez Permettre aux conteneurs d’utiliser les fonctionnalités Réseau virtuel Azure. Ce plug-in peut de plus être utilisé avec Azure Kubernetes Service (AKS) en choisissant l’option Réseau avancé, ce qui place automatiquement les conteneurs AKS dans un réseau virtuel.

Déployer un plug-in pour un cluster Kubernetes Azure Container Service-Engine

Azure Container Service-Engine déploie un cluster Kubernetes avec un modèle Azure Resource Manager. La configuration du cluster est spécifiée dans un fichier JSON qui est passé à l’outil lors de la génération du modèle. Pour en savoir plus sur la liste complète des paramètres de cluster pris en charge et leur description, consultez Moteur de Microsoft Azure Container Service - Définition du cluster. Ce plug-in est le plug-in de la mise en réseau par défaut des clusters créés à l’aide d’Azure Container Service-Engine. Les paramètres de configuration réseau suivants sont importants lors de la configuration du plug-in :

Paramètre Description
firstConsecutiveStaticIP L’adresse IP qui est allouée au nœud principal. Ce paramètre est obligatoire.
clusterSubnet under kubernetesConfig CIDR du sous-réseau de réseau virtuel sur lequel le cluster est déployé et à partir duquel les adresses IP sont allouées aux pods
vnetSubnetId sous masterProfile Spécifie l’ID de ressource Azure Resource Manager du sous-réseau sur lequel le cluster doit être déployé.
vnetCidr CIDR du réseau virtuel sur lequel le cluster est déployé.
max-Pods sous kubeletConfig Nombre maximal de pods sur chaque machine virtuelle agent. Pour le plug-in, la valeur par défaut est 30. Vous pouvez spécifier jusqu’à 250 pods

Exemple de configuration

L’exemple de fichier json ci-dessous s’applique à un cluster présentant les propriétés suivantes :

  • Un nœud main et deux nœuds d’agent

  • Déployé sur un sous-réseau nommé KubeClusterSubnet (10.0.0.0/20) et sur lequel résident le nœud principal et les nœuds agent.

{
  "apiVersion": "vlabs",
  "properties": {
    "orchestratorProfile": {
      "orchestratorType": "Kubernetes",
      "kubernetesConfig": {
        "clusterSubnet": "10.0.0.0/20" --> Subnet allocated for the cluster
      }
    },
    "masterProfile": {
      "count": 1,
      "dnsPrefix": "ACSKubeMaster",
      "vmSize": "Standard_A2",
      "vnetSubnetId": "/subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<Vnet Name>/subnets/KubeClusterSubnet",
      "firstConsecutiveStaticIP": "10.0.1.50", --> IP address allocated to the Master node
      "vnetCidr": "10.0.0.0/16" --> Virtual network address space
    },
    "agentPoolProfiles": [
      {
        "name": "k8sagentpoo1",
        "count": 2,
        "vmSize": "Standard_A2_v2",
"vnetSubnetId": "/subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<VNet Name>/subnets/KubeClusterSubnet",
        "availabilityProfile": "AvailabilitySet"
      }
    ],
    "linuxProfile": {
      "adminUsername": "KubeServerAdmin",
      "ssh": {
        "publicKeys": [
          {…}
        ]
      }
    },
    "servicePrincipalProfile": {
      "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "secret": "azure123"
    }
  }
}

Déployer le plug-in pour un cluster Kubernetes

Procédez comme suit pour installer le plug-in sur chaque machine virtuelle Azure dans un cluster Kubernetes :

  1. Téléchargez et installez le plug-in.

  2. Préallouez un pool d’adresses IP de réseau virtuel sur chaque machine virtuelle à partir duquel des adresses IP sont attribuées aux Pods. Chaque machine virtuelle Azure est fournie avec une adresse IP privée de réseau virtuel principale sur chaque interface réseau. Le pool d’adresses IP pour les pods est ajouté en tant qu’adresses secondaires (ipconfigs) sur l’interface réseau de machine virtuelle, à l’aide d’une des options suivantes :

    Veillez à ajouter suffisamment d’adresses IP pour tous les pods que vous envisagez d’ajouter à la machine virtuelle.

  3. Sélectionnez le plug-in qui fournit le réseau de votre cluster en passant à Kubelet l’option de ligne de commande –network-plugin=cni lors de la création du cluster. Par défaut, Kubernetes recherche le plug-in et le fichier de configuration dans les répertoires où ils sont déjà installés.

  4. Si vous souhaitez que vos pods accèdent à internet, ajoutez la règle iptables suivante sur vos machines virtuelles Linux afin de traduire les adresses sources du trafic internet. Dans l’exemple suivant, la plage IP spécifiée est 10.0.0.0/8.

    iptables -t nat -A POSTROUTING -m iprange ! --dst-range 168.63.129.16 -m
    addrtype ! --dst-type local ! -d 10.0.0.0/8 -j MASQUERADE
    

    Les règles traduisent les adresses du trafic qui n’est pas destiné aux plages d’adresses IP spécifiées. Il est supposé que tout le trafic en dehors des plages précédentes correspond à du trafic internet. Vous pouvez choisir de spécifier les plages IP du réseau virtuel de la machine virtuelle, celles des réseaux virtuels appairés et celles des réseaux locaux.

    Les machines virtuelles Windows traduisent automatiquement les adresses sources du trafic dont la destination se trouve en dehors du sous-réseau auquel appartient la machine virtuelle. Il n’est pas possible de spécifier des plages d’adresses IP personnalisées.

Une fois les étapes précédentes effectuées, les Pods ajoutés aux machines virtuelles agent Kubernetes reçoivent automatiquement des adresses IP privées à partir du réseau virtuel.

Déployer le plug-in pour les conteneurs Docker

  1. Téléchargez et installez le plug-in.

  2. Créez les conteneurs Docker en utilisant la commande suivante :

    ./docker-run.sh \<container-name\> \<container-namespace\> \<image\>
    

Les conteneurs commencent automatiquement à recevoir des adresses IP provenant du pool alloué. Les conteneurs Docker doivent être placé derrière un logiciel d’équilibration de charge avec un sonde d’intégrité d’équilibration de charge si vous voulez équilibrer la charge de trafic aux conteneurs Docker.

Fichier de configuration réseau CNI

Le fichier de configuration réseau CNI est décrit au format JSON. Par défaut, il est présent dans /etc/cni/net.d pour Linux et dans c:\cni\netconf pour Windows. Ce fichier spécifie la configuration du plug-in et il est différent pour Windows et Linux. Le fichier json qui suit est un exemple de fichier de configuration Linux et est suivi d’une explication pour certains paramètres clés. Aucune modification de ce fichier n’est nécessaire :

{
	   "cniVersion":"0.3.0",
	   "name":"azure",
	   "plugins":[
	      {
	         "type":"azure-vnet",
	         "mode":"bridge",
	         "bridge":"azure0",
	         "ipam":{
	            "type":"azure-vnet-ipam"
	         }
	      },
	      {
	         "type":"portmap",
	         "capabilities":{
	            "portMappings":true
	         },
	         "snat":true
	      }
	   ]
}

Explication des paramètres

  • « cniVersion » : les plug-ins CNI Réseau virtuel Azure prennent en charge les versions 0.3.0 et 0.3.1 de la spécification CNI.

  • « name » : nom du réseau. Cette propriété peut être définie sur une valeur unique.

  • « type » : nom du plug-in réseau. Définissez-le sur azure-vnet.

  • « mode » : mode de fonctionnement. Ce champ est facultatif. Le seul mode pris en charge est « bridge ». Pour plus d’informations, consultez Modes de fonctionnement.

  • « bridge » : nom du pont qui est utilisé pour connecter les conteneurs à un réseau virtuel. Ce champ est facultatif. Si ce paramètres est omis, le plug-in choisit automatiquement un nom unique, en fonction de l’index d’interface principal.

  • « ipam » - « type » : nom du plug-in IPAM. Définissez-le toujours sur azure-vnet-ipam.

Télécharger et installer le plug-in

Téléchargez le plug-in depuis GitHub. Téléchargez la dernière version pour la plateforme que vous utilisez :

Copiez le script d’installation pour Linux ou Windows sur votre ordinateur. Enregistrez le script dans un répertoire scripts sur votre ordinateur et nommez le fichier install-cni-plugin.sh pour Linux, ou install-cni-plugin.ps1 pour Windows.

Pour installer le plug-in, exécutez le script approprié pour votre plateforme, en spécifiant la version du plug-in que vous utilisez. Par exemple, vous pouvez spécifier v1.4.20. Pour l’installation Linux, fournir une version de plug-in CNI appropriée, par exemple v1.0.1 :

scripts/install-cni-plugin.sh [azure-cni-plugin-version] [cni-plugin-version]
scripts\\ install-cni-plugin.ps1 [azure-cni-plugin-version]

Le script installe le plug-in sous /opt/cni/bin pour Linux et c:\cni\bin pour Windows. Le plug-in installé est fourni avec un fichier de configuration réseau simple qui fonctionne après l’installation. Il n’a pas besoin d’être mis à jour. Pour en savoir plus sur les paramètres du fichier, consultez Fichier de configuration réseau CNI.