Pełne wdrożenia kubernetes w usłudze AKS Edge Essentials
Uwaga
Pełne wdrożenie na wielu maszynach jest obecnie funkcją eksperymentalną. Aktywnie pracujemy nad tą funkcją.
Klaster AKS Edge Essentials można skonfigurować tak, aby działał na wielu maszynach w celu obsługi architektury rozproszonych mikrousług. Usługa AKS Edge Essentials służy do konfiguracji statycznych i nie umożliwia dynamicznego tworzenia/usuwania maszyn wirtualnych 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
To polecenie tworzy plik konfiguracji o nazwie aksedge-config.json, który zawiera konfigurację wymaganą do utworzenia skalowalnego klastra z węzłem systemu Linux. Plik zostanie utworzony w bieżącym katalogu roboczym. Zobacz Konfiguracja wdrożenia JSON, aby uzyskać szczegółowe opisy parametrów konfiguracji (takich jak ustawienia serwera proxy).
Więcej opcji tworzenia pliku konfiguracji można znaleźć w poniższych przykładach.
Kluczowe parametry, które należy zwrócić uwagę na potrzeby skalowalnego wdrożenia platformy Kubernetes, to:
Informacje o przełączniku zewnętrznym: Pełne wdrożenie używa przełącznika zewnętrznego w celu umożliwienia komunikacji 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 utworzy przełącznik zewnętrzny o nazwieaksedgesw-ext
i użyje 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 karty Wi-Fi dla przełącznika. W tym 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ę sieci 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 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
ServiceIPRangeSize
Ip4PrefixLength
, ,ServiceIPRangeStart
, i .DnsServers
Ważne
Platforma Kubernetes pod cidr
jest 10.42.0.0/16
dla K3s i 10.244.0.0/24
K8s. Platforma Kubernetes service cidr
jest 10.43.0.0/16
dla K3s i 10.96.0.0/12
K8s.
- Wartość domyślna
Network.NetworkPlugin
toflannel
. Flannel jest domyślną siecią CNI 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 w tym miejscu:
LinuxNode.CpuCount
,LinuxNode.MemoryInMB
,LinuxNode.DataSizeInGB
,LinuxNode.Ip4Address
WindowsNode.Ip4Address
Init.ServiceIPRangeSize
WindowsNode.CpuCount
WindowsNode.MemoryInMB
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)
Uwaga
Węzły procesu roboczego systemu Windows to funkcja eksperymentalna 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ą metodyki GitOps, przydziel cztery procesory CPU lub więcej ( LinuxNode.CpuCount
moc obliczeniową), 4 GB lub więcej dla LinuxNode.MemoryinMB
(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"
}
}
]
}
Tworzenie węzłów systemów Linux i Windows
Aby uruchomić zarówno płaszczyznę sterowania systemu Linux, jak i węzeł roboczy 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
Utwórz 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"
}
}
]
}