Delen via


Volledige Kubernetes-implementaties 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 HCI. 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 kubernetes-beheerknooppunt 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 parameter opgeven als een Ethernet van de MachineConfigType.NetworkConnection.AdapterName volgende opties: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 Hyper-V-beheer - 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 hieronder wordt beschreven.

    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 weer te geven 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 Network sectie van het configuratiebestand: ControlPlaneEndpointIp, Ip4GatewayAddress, Ip4PrefixLength, ServiceIPRangeSize, , en ServiceIPRangeStartDnsServers.

Belangrijk

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

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-AksEdgeNetworkParameters u terugkeert true, 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

Hieronder ziet u een schermopname van een Kubernetes-cluster:

Diagram met alle pods die worden uitgevoerd.

Stap 5: een Windows-werkknooppunt toevoegen (optioneel)

Let op

Windows-werkknooppunten is 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