Dela via


Fullständiga Kubernetes-distributioner i AKS Edge Essentials

Varning

Fullständig distribution på flera datorer är för närvarande en experimentell funktion. Vi arbetar aktivt med den här funktionen.

Du kan konfigurera ett AKS Edge-Essentials kluster så att det körs på flera datorer för att stödja en distribuerad mikrotjänstarkitektur. AKS Edge-Essentials är för statiska konfigurationer och aktiverar inte dynamisk skapande/borttagning av virtuella datorer eller livscykelhantering för kluster, till skillnad från AKS i molnet eller AKS HCI. AKS Edge-Essentials har bara en virtuell Linux-dator per dator, tillsammans med en virtuell Windows-dator om det behövs. Varje virtuell dator har en statisk allokering av RAM-minne, lagring och fysiska processorkärnor som tilldelats vid installationen. I en distribution med flera noder är en av datorerna den primära datorn med Kubernetes-kontrollnoden, och de andra datorerna är sekundära datorer med arbetsnoderna. I det här distributionsscenariot konfigurerar vi K8S-klustret med hjälp av en extern växel. Med den här konfigurationen kan du köra kubectl från en annan dator i nätverket, utvärdera arbetsbelastningens prestanda på en extern växel och så vidare.

Förutsättningar

Konfigurera datorn enligt beskrivningen i artikeln Konfigurera dator .

Steg 1: Fullständiga konfigurationsparametrar för Kubernetes-distribution

Du kan generera de parametrar som behövs för att skapa ett skalbart kluster med följande kommando:

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

Detta skapar en konfigurationsfil med namnet aksedge-config.json som innehåller den konfiguration som behövs för att skapa ett skalbart kluster med en Linux-nod. Filen skapas i din aktuella arbetskatalog. Se följande exempel för fler alternativ för att skapa konfigurationsfilen. En detaljerad beskrivning av konfigurationsparametrarna finns här.

De viktigaste parametrarna som ska noteras för en skalbar Kubernetes-distribution är:

  • Information om extern växel: En fullständig distribution använder en extern växel för att aktivera kommunikation mellan noderna. Du måste ange parametern MachineConfigType.NetworkConnection.AdapterName som antingen Ethernet eller Wi-Fi:

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

    Om du har skapat en extern växel på Hyper-V kan du välja att ange vswitch-informationen i konfigurationsfilen. Om du inte skapar en extern växel i Hyper-V-hanteraren och kör New-AksEdgeDeployment kommandot skapar AKS Edge Essentials automatiskt en extern växel med namnet aksedgesw-ext och använder den för distributionen.

    Anteckning

    I den här versionen finns det ett känt problem med att automatiskt skapa en extern växel med New-AksEdgeDeployment kommandot om du använder ett Wi-Fi-kort för växeln. I det här fallet skapar du först den externa växeln med hyper-V-hanteraren – hanteraren för virtuella växlar, mappar växeln till Wi-Fi-adaptern och anger sedan växelinformationen i din konfigurations-JSON enligt beskrivningen nedan.

    Skärmbild av Hyper-V-växelhanteraren.

  • IP-adresser: Du måste allokera kostnadsfria IP-adresser från nätverket för kontrollplanet, Kubernetes-tjänsterna och noderna (VM).. Mer information finns i översikten över AKS Edge Essentials-nätverk. I ett lokalt nätverk med IP-adressintervallet 192.168.1.0/24 kan du till exempel ha 1.151 och högre utanför DHCP-omfånget, och därför är det troligtvis kostnadsfritt. AKS Edge Essentials stöder för närvarande endast IPv4-adresser. Helst vet du vilka kostnadsfria IP-adresser du kan använda. Du kan dock använda skriptet AksEdge-ListUsedIPv4s från GitHub-lagringsplatsen för att visa IP-adresser som för närvarande används för att undvika att använda dessa IP-adresser i konfigurationen. Följande parametrar måste anges i avsnittet i Network konfigurationsfilen: ControlPlaneEndpointIp, Ip4GatewayAddress, Ip4PrefixLength, ServiceIPRangeSize, ServiceIPRangeStartoch DnsServers.

  • Värdet Network.NetworkPlugin är flannelsom standard . Flannel är standard-CNI för ett K3S-kluster. I ett K8S-kluster ändrar du NetworkPlugin till calico.

  • Förutom de tidigare parametrarna kan du ange följande parametrar enligt distributionskonfigurationen enligt beskrivningen här: LinuxNode.CpuCount, LinuxNode.MemoryInMB, LinuxNode.DataSizeInGB, LinuxNode.Ip4Address, WindowsNode.CpuCount, WindowsNode.MemoryInMB, WindowsNode.Ip4Address, Init.ServiceIPRangeSize, och Network.InternetDisabled.

Steg 2: Verifiera konfigurationsfilen

När du har uppdaterat aksedge-config.json-filen kör du verktyget AksEdgePrompt. Det här verktyget öppnar ett upphöjt PowerShell-fönster med modulerna inlästa. Kör sedan följande kommando för att verifiera dina nätverksparametrar med hjälp av cmdleten Test-AksEdgeNetworkParameters :

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

Steg 3: Skapa ett fullständigt distributionskluster

Om Test-AksEdgeNetworkParameters returnerar trueär du redo att skapa distributionen. Du kan skapa distributionen med hjälp av cmdleten New-AksEdgeDeployment :

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

Cmdleten New-AksEdgeDeployment hämtar automatiskt kubeconfig-filen.

Steg 4: Verifiera distributionen

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

En skärmbild av ett Kubernetes-kluster visas nedan:

Diagram som visar alla poddar som körs.

Steg 5: Lägg till en Windows-arbetsnod (valfritt)

Varning

Windows-arbetsnoder är en experimentell funktion i den här versionen. Vi arbetar aktivt med den här funktionen.

Om du vill lägga till en Windows-nod till en befintlig linux-dator kan du köra:

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

Du kan också ange parametrar som CpuCount och/eller MemoryInMB för din virtuella Windows-dator här.

Du kan använda den genererade konfigurationsfilen och köra följande kommando för att lägga till Windows-noden

Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json

Exempelkonfiguration för olika distributionsalternativ

Allokera resurser till noderna

Om du vill ansluta till Arc och distribuera dina appar med GitOps allokerar du fyra processorer eller mer för LinuxNode.CpuCount (processorkraft), 4 GB eller mer för LinuxNode.MemoryinMB (RAM) och tilldelar ett tal större än 0 till ServiceIpRangeSize. Här allokerar vi 10 IP-adresser för dina Kubernetes-tjänster:

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

Skapa Linux- och Windows-noder

Om du vill köra både Linux-kontrollplanet och Windows-arbetsnoden på en dator skapar du konfigurationsfilen med följande kommando:

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

Skapa distributionen med kommandot :

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

Nästa steg