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 deMachineConfigType.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 naamaksedgesw-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.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
, , enServiceIPRangeStart
DnsServers
.
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.
- De
Network.NetworkPlugin
waarde isflannel
standaard . Flannel is de standaard-CNI voor een K3S-cluster. Wijzig in een K8S-cluster hetNetworkPlugin
incalico
. - Naast de vorige parameters kunt u de volgende parameters instellen op basis van uw implementatieconfiguratie, zoals hier wordt beschreven:
LinuxNode.CpuCount
, , ,LinuxNode.DataSizeInGB
LinuxNode.MemoryInMB
,LinuxNode.Ip4Address
WindowsNode.CpuCount
, , ,WindowsNode.MemoryInMB
,WindowsNode.Ip4Address
, enNetwork.InternetDisabled
Init.ServiceIPRangeSize
.
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:
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"
}
}
]
}