Pełne wdrożenia platformy Kubernetes w usłudze AKS Edge Essentials
Przestroga
Pełne wdrożenie na wielu maszynach jest obecnie funkcją eksperymentalną. Aktywnie pracujemy nad tą funkcją.
Klaster usługi AKS Edge Essentials można skonfigurować do uruchamiania na wielu maszynach w celu obsługi architektury rozproszonych mikrousług. Usługa AKS Edge Essentials jest przeznaczona do konfiguracji statycznych i nie umożliwia dynamicznego tworzenia/usuwania maszyny wirtualnej ani zarządzania cyklem życia klastra, w przeciwieństwie do usługi AKS w chmurze lub AKS HCI. Usługa AKS Edge Essentials ma tylko jedną maszynę wirtualną z systemem Linux na każdą maszynę wraz z maszyną wirtualną z systemem Windows w razie potrzeby. Każda maszyna wirtualna ma statyczną alokację pamięci RAM, magazynu i fizycznych rdzeni procesora CPU przypisanych w czasie instalacji. W przypadku wdrożenia z wieloma węzłami jedna z maszyn jest maszyną podstawową z węzłem sterowania Kubernetes, a pozostałe maszyny będą maszynami pomocniczymi z węzłami procesu roboczego. W tym scenariuszu wdrażania skonfigurujemy klaster K8S przy użyciu przełącznika zewnętrznego. Dzięki tej konfiguracji można uruchomić kubectl
z innej maszyny w sieci, ocenić wydajność obciążenia na przełączniku zewnętrznym itd.
Wymagania wstępne
Skonfiguruj maszynę zgodnie z opisem w artykule Konfigurowanie maszyny .
Krok 1. Pełne parametry konfiguracji wdrożenia platformy Kubernetes
Parametry potrzebne do utworzenia skalowalnego klastra można wygenerować przy użyciu następującego polecenia:
New-AksEdgeConfig -DeploymentType ScalableCluster -outFile .\aksedge-config.json | Out-Null
Spowoduje to utworzenie pliku konfiguracji o nazwie aksedge-config.json zawierającego konfigurację wymaganą do utworzenia skalowalnego klastra z węzłem systemu Linux. Plik zostanie utworzony w bieżącym katalogu roboczym. Zapoznaj się z poniższymi przykładami, aby uzyskać więcej opcji tworzenia pliku konfiguracji. Szczegółowy opis parametrów konfiguracji jest dostępny tutaj.
Kluczowe parametry do zanotowania skalowalnego wdrożenia platformy Kubernetes to:
Informacje o przełączniku zewnętrznym: pełne wdrożenie używa przełącznika zewnętrznego, aby umożliwić komunikację między węzłami. Należy określić
MachineConfigType.NetworkConnection.AdapterName
parametr jakoEthernet
lubWi-Fi
:# get the list of available adapters in the machine Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' }
Jeśli utworzono przełącznik zewnętrzny na funkcji Hyper-V, możesz określić szczegóły przełącznika wirtualnego w pliku konfiguracji. Jeśli nie utworzysz przełącznika zewnętrznego w menedżerze funkcji Hyper-V i uruchomisz
New-AksEdgeDeployment
polecenie, usługa AKS Edge Essentials automatycznie tworzy przełącznik zewnętrzny o nazwieaksedgesw-ext
i używa go do wdrożenia.Uwaga
W tej wersji występuje znany problem z automatycznym tworzeniem przełącznika zewnętrznego za
New-AksEdgeDeployment
pomocą polecenia , jeśli używasz adaptera Wi-Fi dla przełącznika. W takim przypadku najpierw utwórz przełącznik zewnętrzny przy użyciu menedżera funkcji Hyper-V — Menedżera przełącznika wirtualnego, zamapuj przełącznik na kartę Wi-fi, a następnie podaj szczegóły przełącznika w pliku JSON konfiguracji, jak opisano poniżej.Adresy IP: należy przydzielić bezpłatne adresy IP z sieci dla płaszczyzny sterowania, usług Kubernetes i węzłów (maszyn wirtualnych). Aby uzyskać więcej informacji, zobacz omówienie sieci usługi AKS Edge Essentials. Na przykład w sieci lokalnej z zakresem adresów IP 192.168.1.0/24 może istnieć wartość 1.151 lub nowsza poza zakresem DHCP, dlatego prawdopodobnie będzie bezpłatna. Usługa AKS Edge Essentials obecnie obsługuje tylko adresy IPv4. W idealnym przypadku będziesz wiedzieć, jakich bezpłatnych adresów IP można użyć; można jednak użyć skryptu AksEdge-ListUsedIPv4s z repozytorium GitHub , aby wyświetlić adresy IP, które są obecnie używane, aby uniknąć używania tych adresów IP w konfiguracji. W sekcji pliku konfiguracji należy podać
Network
następujące parametry:ControlPlaneEndpointIp
,Ip4GatewayAddress
,Ip4PrefixLength
,ServiceIPRangeSize
,ServiceIPRangeStart
iDnsServers
.Wartość
Network.NetworkPlugin
domyślnie toflannel
. Flannel jest domyślną siecią CNI dla klastra K3S. W klastrze K8S zmień wartość naNetworkPlugin
calico
.Oprócz poprzednich parametrów można ustawić następujące parametry zgodnie z konfiguracją wdrożenia, zgodnie z opisem tutaj:
LinuxNode.CpuCount
, ,WindowsNode.CpuCount
LinuxNode.DataSizeInGB
LinuxNode.MemoryInMB
WindowsNode.MemoryInMB
WindowsNode.Ip4Address
LinuxNode.Ip4Address
,Init.ServiceIPRangeSize
i .Network.InternetDisabled
Krok 2. Weryfikowanie pliku konfiguracji
Po zaktualizowaniu pliku aksedge-config.json uruchom narzędzie AksEdgePrompt. To narzędzie otwiera okno programu PowerShell z podwyższonym poziomem uprawnień z załadowanymi modułami. Następnie uruchom następujące polecenie, aby zweryfikować parametry sieciowe przy użyciu Test-AksEdgeNetworkParameters
polecenia cmdlet:
Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json
Krok 3. Tworzenie pełnego klastra wdrażania
Jeśli Test-AksEdgeNetworkParameters
zwraca true
wartość , możesz przystąpić do tworzenia wdrożenia. Wdrożenie można utworzyć przy użyciu New-AksEdgeDeployment
polecenia cmdlet:
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
Polecenie New-AksEdgeDeployment
cmdlet automatycznie pobiera plik kubeconfig.
Krok 4. Weryfikowanie wdrożenia
kubectl get nodes -o wide
kubectl get pods --all-namespaces -o wide
Poniżej przedstawiono zrzut ekranu klastra Kubernetes:
Krok 5. Dodawanie węzła procesu roboczego systemu Windows (opcjonalnie)
Przestroga
Węzły procesu roboczego systemu Windows to eksperymentalna funkcja w tej wersji. Aktywnie pracujemy nad tą funkcją.
Jeśli chcesz dodać węzeł systemu Windows do istniejącej maszyny tylko z systemem Linux, możesz uruchomić następujące polecenie:
New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null
W tym miejscu możesz również określić parametry, takie jak CpuCount
i/lub MemoryInMB
dla maszyny wirtualnej z systemem Windows.
Możesz użyć wygenerowanego pliku konfiguracji i uruchomić następujące polecenie, aby dodać węzeł systemu Windows
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
Przykładowa konfiguracja dla różnych opcji wdrażania
Przydzielanie zasobów do węzłów
Aby nawiązać połączenie z usługą Arc i wdrożyć aplikacje za pomocą funkcji GitOps, przydziel cztery procesory CPU lub więcej dla (mocy obliczeniowej), 4 GB lub więcej LinuxNode.MemoryinMB
dla LinuxNode.CpuCount
(pamięci RAM) i przypisz liczbę większą niż 0 do ServiceIpRangeSize
. W tym miejscu przydzielamy 10 adresów IP dla usług Kubernetes:
{
"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"
}
}
]
}
węzły Twórca Linux i Windows
Aby uruchomić zarówno płaszczyznę sterowania systemu Linux, jak i węzeł procesu roboczego systemu Windows na maszynie, utwórz plik konfiguracji przy użyciu następującego polecenia:
New-AksEdgeConfig -DeploymentType ScalableCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null
Twórca wdrożenie przy użyciu polecenia :
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"
}
}
]
}
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla