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 antingenEthernet
ellerWi-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 namnetaksedgesw-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.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
, ,Ip4GatewayAddress
Ip4PrefixLength
,ServiceIPRangeSize
, ,ServiceIPRangeStart
ochDnsServers
.
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
ärflannel
som standard . Flanell är standard-CNI för ett K3S-kluster. I ett K8S-kluster ändrar duNetworkPlugin
tillcalico
. - 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
ochNetwork.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:
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"
}
}
]
}