Dela via


Distribuera plugin-programmet Azure Virtual Network CNI

Plugin-programmet Azure Virtual Network CNI installerar en virtuell Azure-dator och tillhandahåller funktioner för virtuella nätverk i Kubernetes-poddar och Docker-containrar. Du kan läsa mer om plugin-programmet i Enable containers to use Azure Virtual Network capabilities (Aktivera Azure Virtual Network-funktioner i containrar). Du kan också använda plugin-programmet med Azure Kubernetes Service (AKS) genom att välja alternativet Advanced Networking (Avancerat nätverk). Om du gör det placeras AKS-containrar automatiskt i ett virtuella nätverk.

Distribuera plugin-program för Azure Container Service-Engine Kubernetes-kluster

Azure Container Service-Engine distribuerar ett Kubernetes-kluster med en Azure Resource Manager-mall. Klusterkonfigurationen anges i en JSON-fil som överförs till verktyget när mallen skapas. Läs mer om hela listan med klusterinställningar som stöds och beskrivningar av dessa i Microsoft Azure Container Service Engine - Cluster Definition. Plugin-programmet är standardnätverks-plugin-programmet för kluster som skapats med hjälp av Azure Container Service-Engine. Följande inställningar för nätverkskonfiguration är viktiga när du konfigurerar plugin-programmet:

Inställning beskrivning
firstConsecutiveStaticIP IP-adressen som allokeras till huvudnoden. Denna inställning är obligatorisk.
clusterSubnet under kubernetesConfig CIDR för det virtuella nätverkets undernät där klustret distribueras, och från vilket IP-adresser tilldelas till poddar
vnetSubnetId under masterProfile Anger resurs-ID för Azure Resource Manager för undernätet där klustret ska distribueras
vnetCidr CIDR för det virtuella nätverket där klustret distribueras
max-Pods under kubeletConfig Maximalt antal poddar på varje Virtual Machine-agent. Standardvärdet är 30 för plugin-programmet. Du kan ange upp till 250

Exempelkonfiguration

Json-exemplet nedan är för ett kluster med följande egenskaper:

  • En huvudnod och två agentnoder

  • Distribueras i ett undernät med namnet KubeClusterSubnet (10.0.0.0/20), med både huvudnoder och agentnoder som finns i det.

{
  "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"
    }
  }
}

Distribuera plugin-program för ett Kubernetes-kluster

Utför följande steg för att installera plugin-programmet på varje virtuell Azure-dator i ett Kubernetes-kluster:

  1. Ladda ned och installera plugin-programmet.

  2. Förallokera en IP-adresspool för virtuellt nätverk på varje virtuell dator från vilken IP-adresser tilldelas till poddar. Varje virtuell Azure-dator har en primär privat IP-adress i varje nätverksgränssnitt. Adresserna i IP-adresspoolen för poddar läggs till som sekundära adresser (ipconfigs) i nätverksgränssnittet med ett av följande alternativ:

    Se till att du lägger till tillräckligt med IP-adresser för alla poddar som du tänker ha på den virtuella datorn.

  3. Välj plugin-programmet för att ge ditt kluster nätverksfunktion genom att skicka kommandoradsalternativet –network-plugin=cni till Kubelet när klustret skapas. Kubernetes söker som standard efter plugin-programmet och konfigurationsfilen i de kataloger där de redan är installerade.

  4. Om du vill att poddarna ska ha åtkomst till Internet lägger du till följande iptables-regel i din Internettrafik från virtuella Linux-datorer till käll-NAT. I följande exempel är det angivna IP-intervallet 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
    

    Regler NAT-trafik som inte är avsedd för de angivna IP-intervallen. Här antas att all trafik utanför de föregående intervallen är Internettrafik. Du kan välja att ange IP-intervall för den virtuella datorns virtuella nätverk, för peerkopplade virtuella nätverk och lokala nätverk.

    Virtuella Windows-datorer identifierar automatiskt källan för NAT-trafik som har ett mål som är utanför det undernät som den virtuell datorn tillhör. Det går inte att ange anpassade IP-intervall.

När de föregående stegen har slutförts tilldelas poddar som tas upp på de virtuella Kubernetes Agent-datorerna automatiskt privata IP-adresser från det virtuella nätverket.

Distribuera plugin-program för Docker-containrar

  1. Ladda ned och installera plugin-programmet.

  2. Skapa Docker-containrar med följande kommando:

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

Containrarna börjar automatiskt att ta emot IP-adresser från den allokerade poolen. Om du vill lastbalansera trafik till Docker-containrarna måste de placeras bakom en programvarulastbalanserare med en lastbalanserareavsökning.

CNI-nätverkskonfigurationsfil

CNI-nätverkskonfigurationsfilen beskrivs i JSON-format. Den finns som standard i /etc/cni/net.d för Linux och i c:\cni\netconf för Windows. Filen anger konfigurationen för plugin-programmet. Olika filer används för Windows och Linux. Json nedan är ett exempel på en Linux-konfigurationsfil, följt av en förklaring till vissa viktiga inställningar. Du behöver inte göra några ändringar i filen:

{
	   "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
	      }
	   ]
}

Förklaring till inställningar

  • "cniVersion": Azure Virtual Network CNI-plugin-program stöder versionerna 0.3.0 och 0.3.1 av CNI-specifikationen.

  • "name": Namnet på nätverket. Den här egenskapen kan anges till ett unikt värde.

  • "type": Namnet på nätverks-plugin-programmet. Ange azure-vnet.

  • "mode": Driftläge. Det här fältet är valfritt. Det enda läge som stöds är ”bridge”. Mer information finns i funktionslägen.

  • "bridge": Namnet på bryggan som används för att ansluta containrar till ett virtuellt nätverk. Det här fältet är valfritt. Om det utelämnas väljer plugin-programmet automatiskt ett unikt namn baserat på huvudgränssnittsindexet.

  • "ipam"" - type": Namnet på IPAM-plugin-programmet. Ange alltid azure-vnet-ipam.

Ladda ned och installera plugin-programmet

Hämta plugin-programmet från GitHub. Hämta den senaste versionen för den plattform som du använder:

Kopiera installationsskriptet för Linux eller Windows till datorn. Spara skriptet till en scripts-katalog på din dator och ge filen namnet install-cni-plugin.sh för Linux eller install-cni-plugin.ps1 för Windows.

Om du vill installera plugin-programmet kör du rätt skript för din plattform och anger vilken version av plugin-programmet du använder. Du kan till exempel ange v1.4.20. För Linux-installationen anger du en lämplig CNI-pluginversion, till exempel v1.0.1:

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

Skriptet installerar plugin-programmet under /opt/cni/bin för Linux och c:\cni\bin för Windows. Det installerade plugin-programmet levereras med en enkel nätverkskonfigurationsfil som kan användas efter installationen. Den behöver inte uppdateras. Du kan läsa mer om inställningarna i filen i CNI-nätverkskonfigurationsfil.