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 klusterlivscykelhantering, 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 CPU-kä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 hjälp av följande kommando:

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

Det här kommandot skapar en konfigurationsfil med namnet aksedge-config.json, som innehåller den konfiguration som krävs för att skapa ett skalbart kluster med en Linux-nod. Filen skapas i den aktuella arbetskatalogen. Se JSON-konfiguration för distribution för detaljerade beskrivningar av konfigurationsparametrarna (till exempel proxyinställningar).

I följande exempel finns fler alternativ för att skapa konfigurationsfilen.

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.

    Kommentar

    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 Manager – Virtual Switch Manager, 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 nätverksöversikten för AKS Edge Essentials. I ett lokalt nätverk med IP-adressintervallet 192.168.1.0/24 kan du till exempel ha 1.151 och senare utanför DHCP-omfånget och därför sannolikt vara kostnadsfri. 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, , Ip4GatewayAddressIp4PrefixLength, ServiceIPRangeSize, , ServiceIPRangeStartoch DnsServers.

Viktigt!

Kubernetes pod cidr är 10.42.0.0/16 för K3s och 10.244.0.0/24 för K8s. Kubernetes service cidr är 10.43.0.0/16 för K3s och 10.96.0.0/12 för K8s.

  • Värdet Network.NetworkPlugin är flannelsom standard . Flanell ä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.ServiceIPRangeSizeoch Network.InternetDisabled.

Steg 2: Verifiera konfigurationsfilen

När du har uppdaterat filen aksedge-config.json 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 den virtuella Windows-datorn 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 dina noder

Om du vill ansluta till Arc och distribuera dina appar med GitOps allokerar du fyra processorer eller mer för (processorkraft), LinuxNode.CpuCount 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