Delen via


Volledige implementaties van Kubernetes in AKS Edge Essentials

Let op

Volledige implementatie op meerdere computers is momenteel een experimentele functie. We werken actief aan deze functie.

U kunt een AKS Edge Essentials-cluster configureren voor uitvoering op meerdere computers ter ondersteuning van een gedistribueerde microservicesarchitectuur. AKS Edge Essentials is bedoeld voor statische configuraties en maakt het maken/verwijderen van dynamische VM's of het verwijderen van clusters niet mogelijk, in tegenstelling tot AKS in de cloud of AKS in Azure Local. AKS Edge Essentials heeft slechts één Linux-VM per elke machine, samen met een Windows-VM, indien nodig. Elke VM heeft een statische toewijzing van RAM-, opslag- en fysieke CPU-kernen die tijdens de installatie zijn toegewezen. In een implementatie met meerdere knooppunten is een van de machines de primaire machine met het Kubernetes-besturingsknooppunt en de andere machines zijn secundaire machines met de werkknooppunten. In dit implementatiescenario configureren we het K8S-cluster met behulp van een externe switch. Met deze configuratie kunt kubectl u uitvoeren vanaf een andere computer in uw netwerk, de prestaties van uw workload evalueren op een externe switch, enzovoort.

Vereisten

Stel uw computer in zoals beschreven in het artikel Machine instellen .

Stap 1: volledige configuratieparameters voor Kubernetes-implementatie

U kunt de parameters genereren die nodig zijn om een schaalbaar cluster te maken met behulp van de volgende opdracht:

New-AksEdgeConfig -DeploymentType ScalableCluster -outFile .\aksedge-config.json | Out-Null

Met deze opdracht maakt u een configuratiebestand met de naam aksedge-config.json, dat de configuratie bevat die nodig is voor het maken van een schaalbaar cluster met een Linux-knooppunt. Het bestand wordt gemaakt in uw huidige werkmap. Zie JSON-implementatieconfiguratie voor gedetailleerde beschrijvingen van de configuratieparameters (zoals proxy-instellingen).

Zie de volgende voorbeelden voor meer opties voor het maken van het configuratiebestand.

De belangrijkste parameters die u moet noteren voor een schaalbare Kubernetes-implementatie zijn:

  • Informatie over externe switch: een volledige implementatie maakt gebruik van een externe switch om communicatie tussen de knooppunten mogelijk te maken. U moet de MachineConfigType.NetworkConnection.AdapterName parameter opgeven als Ethernet of Wi-Fi.

    # get the list of available adapters in the machine
    Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' }
    

    Als u een externe switch op uw Hyper-V hebt gemaakt, kunt u ervoor kiezen om de details van de vswitch op te geven in uw configuratiebestand. Als u geen externe switch maakt in Hyper-V-beheer en de New-AksEdgeDeployment opdracht uitvoert, maakt AKS Edge Essentials automatisch een externe switch met de naam aksedgesw-ext en gebruikt deze voor uw implementatie.

    Notitie

    In deze release is er een bekend probleem met het automatisch maken van een externe switch met de New-AksEdgeDeployment opdracht als u een Wi-Fi-adapter voor de switch gebruikt. In dit geval maakt u eerst de externe switch met behulp van de Hyper-V manager - Virtual Switch Manager, wijst u de switch toe aan de Wi-fi-adapter en geeft u vervolgens de switchgegevens op in uw configuratie-JSON, zoals beschreven in deze sectie.

    Schermopname van Hyper-V-switchbeheer.

  • IP-adressen: U moet gratis IP-adressen uit uw netwerk toewijzen voor de Besturingsvlak, Kubernetes-services en knooppunten (VM's). Zie het AKS Edge Essentials-netwerkoverzicht voor meer informatie. In een lokaal netwerk met bijvoorbeeld het IP-adresbereik 192.168.1.0/24 hebt u mogelijk 1.151 en hoger buiten het DHCP-bereik en is deze waarschijnlijk gratis. AKS Edge Essentials ondersteunt momenteel alleen IPv4-adressen. In het ideale voorbeeld weet u welke gratis IP-adressen u kunt gebruiken; U kunt echter het AksEdge-ListUsedIPv4s-script van de GitHub-opslagplaats gebruiken om IP-adressen te bekijken die momenteel in gebruik zijn, om te voorkomen dat deze IP-adressen in uw configuratie worden gebruikt. De volgende parameters moeten worden opgegeven in de sectie Network van het configuratiebestand: ControlPlaneEndpointIp, Ip4GatewayAddress, Ip4PrefixLength, ServiceIPRangeSize, ServiceIPRangeStarten DnsServers.

Belangrijk

Kubernetes pod cidr is 10.42.0.0/16 voor K3s en 10.244.0.0/24 voor K8s. De Kubernetes service cidr is 10.43.0.0/16 voor K3s en 10.96.0.0/12 voor K8s.

  • Arc: deze sectie is vereist. Tijdens de implementatie van AKS Edge Essentials worden de Arc-parameters gebruikt om het AKS Edge Essentials-cluster te verbinden met Azure Arc. Zie de verbinding maken met de Arc-documentatievoor meer informatie over de vereiste Arc-parameters.

Belangrijk

Vanaf de release van AKS Edge Essentials 1.10.868.0 is de sectie Arc van het configuratiebestand vereist. De Azure Arc-verbinding vindt automatisch plaats tijdens de implementatie van AKS Edge Essentials.

  • De Network.NetworkPlugin-waarde is standaard flannel. Flannel is de standaard-CNI voor een K3S-cluster. Wijzig in een K8S-cluster het NetworkPlugin in calico.
  • Naast de vorige parameters kunt u de volgende parameters instellen op basis van uw implementatieconfiguratie, zoals hier beschreven: , , , , , , , , en .

Stap 2: het configuratiebestand valideren

Nadat u het aksedge-config.json-bestand hebt bijgewerkt, voert u het hulpprogramma AksEdgePrompt uit. Met dit hulpprogramma wordt een PowerShell-venster met verhoogde bevoegdheid geopend met de modules die zijn geladen. Voer vervolgens de volgende opdracht uit om uw netwerkparameters te valideren met behulp van de Test-AksEdgeNetworkParameters cmdlet:

Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json

Stap 3: een volledig implementatiecluster maken

Als Test-AksEdgeNetworkParameterstrue teruggeeft, bent u klaar om uw implementatie te maken. U kunt de implementatie maken met behulp van de New-AksEdgeDeployment cmdlet:

New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json

De New-AksEdgeDeployment cmdlet haalt automatisch het kubeconfig-bestand op.

Stap 4: uw implementatie valideren

kubectl get nodes -o wide
kubectl get pods --all-namespaces -o wide

Een schermopname van een Kubernetes-cluster is als volgt:

Diagram met alle pods die worden uitgevoerd.

Stap 5: een Windows-werkknooppunt toevoegen (optioneel)

Let op

Windows-werkknooppunten zijn een experimentele functie in deze release. We werken actief aan deze functie.

Als u een Windows-knooppunt wilt toevoegen aan een bestaande Linux-computer, kunt u het volgende uitvoeren:

New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null

U kunt hier ook parameters opgeven, zoals CpuCount en/of MemoryInMB voor uw Windows-VM.

U kunt het gegenereerde configuratiebestand gebruiken en de volgende opdracht uitvoeren om het Windows-knooppunt toe te voegen

Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json

Voorbeeldconfiguratie voor verschillende implementatieopties

Resources toewijzen aan uw knooppunten

Als u verbinding wilt maken met Arc en uw apps wilt implementeren met GitOps, wijst u vier CPU's of meer toe voor de LinuxNode.CpuCount (verwerkingskracht), 4 GB of meer voor LinuxNode.MemoryinMB (RAM) en wijst u een getal toe dat groter is dan 0.ServiceIpRangeSize Hier wijzen we 10 IP-adressen toe voor uw Kubernetes-services:

{
    "Init": {
        "ServiceIpRangeSize": 10,
        "ServiceIPRangeStart": "192.168.1.151"
    },
    "Network": {
        "ControlPlaneEndpointIp": "192.168.1.191",
        "NetworkPlugin": "calico",
        "Ip4GatewayAddress": "192.168.1.1",
        "Ip4PrefixLength": 24,
        "DnsServers": ["192.168.1.1"]
    },
    "Machines": [
        {
            "NetworkConnection": {
                "AdapterName": "Ethernet"
            },
            "LinuxNode": {
                "CpuCount": 4,
                "MemoryInMB": 4096,
                "DataSizeInGB": 20,
                "Ip4Address": "192.168.1.171"
            }
        }
    ]
}

Linux- en Windows-knooppunten maken

Als u zowel het Linux-besturingsvlak als het Windows-werkknooppunt op een computer wilt uitvoeren, maakt u het configuratiebestand met behulp van de volgende opdracht:

New-AksEdgeConfig -DeploymentType ScalableCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null

Maak de implementatie met behulp van de opdracht:

New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
{
  "Machines": [
      {
          "NetworkConnection": {
              "AdapterName": "Ethernet"
          },
          "LinuxNode": {
              "CpuCount": 4,
              "MemoryInMB": 4096,
              "DataSizeInGB": 20,
              "Ip4Address": "192.168.1.171"
          },
          "WindowsNode": {
              "CpuCount": 2,
              "MemoryInMB": 4096,
              "Ip4Address": "192.168.1.172"
          }
      }
  ]
}

Volgende stappen