Udostępnij za pośrednictwem


Przygotowywanie woluminów usługi Edge dla systemu Linux przy użyciu klastra z jednym węzłem lub dwoma węzłami

W tym artykule opisano sposób przygotowania systemu Linux przy użyciu klastra z jednym węzłem lub dwoma węzłami i przyjęto założenie, że spełniono wymagania wstępne.

Przygotowywanie systemu Linux z usługą AKS włączoną przez usługę Azure Arc

W tej sekcji opisano sposób przygotowania systemu Linux z usługą AKS włączoną przez usługę Azure Arc w przypadku uruchamiania klastra z jednym węzłem lub dwoma węzłami.

  1. Zainstaluj usługę Open Service Mesh (OSM) przy użyciu następującego polecenia:

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m"
    

Przygotowywanie systemu Linux za pomocą usługi AKS Edge Essentials

W tej sekcji opisano sposób przygotowywania systemu Linux za pomocą usługi AKS Edge Essentials w przypadku uruchamiania klastra z jednym węzłem lub dwoma węzłami.

  1. Aby usługa Edge Essentials obsługiwała operacje usługi Azure IoT i usługę Azure Container Storage włączoną przez usługę Azure Arc, hosty Kubernetes muszą zostać zmodyfikowane w celu obsługi większej ilości pamięci. Możesz również zwiększyć alokację procesorów wirtualnych i dysków w tej chwili, jeśli przewidujesz, że wymagane są dodatkowe zasoby dla użycia platformy Kubernetes.

    Zacznij od przewodnika z instrukcjami tutaj. W przewodniku Szybki start jest używana konfiguracja domyślna i należy go unikać.

    Krok 1. Parametry konfiguracji pojedynczej maszyny zawierają plik w katalogu roboczym o nazwie aksedge-config.json. Otwórz ten plik w Notatniku lub innym edytorze tekstów:

    "SchemaVersion": "1.11",
    "Version": "1.0",
    "DeploymentType": "SingleMachineCluster",
    "Init": {
        "ServiceIPRangeSize": 0
    },
    "Machines": [
    {
        "LinuxNode": {
            "CpuCount": 4,
            "MemoryInMB": 4096,
            "DataSizeInGB": 10,
        }
    }
    ]
    

    Zwiększ MemoryInMB się do co najmniej 16384 i DataSizeInGB do 40G. Ustaw ServiceIPRangeSize wartość 15. Jeśli zamierzasz uruchomić wiele identyfikatorów POD, możesz również zwiększyć CpuCount liczbę. Na przykład:

    "Init": {
        "ServiceIPRangeSize": 15
       },
    "Machines": [
    {
        "LinuxNode": {
            "CpuCount": 4,
            "MemoryInMB": 16384,
            "DataSizeInGB": 40,
        }
    }
    ]
    

    Przejdź do pozostałych kroków, zaczynając od utworzenia pojedynczego klastra maszynowego. Następnie połącz klaster AKS Edge Essentials z usługą Arc.

  2. Sprawdź i zainstaluj magazyn aprowizatora ścieżek lokalnych, jeśli nie został jeszcze zainstalowany. Sprawdź, czy klasa magazynu ścieżki lokalnej jest już dostępna w węźle, uruchamiając następujące polecenie cmdlet:

    kubectl get StorageClass
    

    Jeśli klasa magazynu ścieżki lokalnej jest niedostępna, uruchom następujące polecenie:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml
    

    Uwaga

    Obrazy Local-Path-Provisioner i Busybox nie są obsługiwane przez firmę Microsoft i są pobierane z repozytorium Rancher Labs. Local-Path-Provisioner i BusyBox są dostępne tylko jako obraz kontenera systemu Linux.

    Jeśli wszystko jest poprawnie skonfigurowane, powinny zostać wyświetlone następujące dane wyjściowe:

    NAME                   PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    local-path (default)   rancher.io/local-path   Delete          WaitForFirstConsumer   false                  21h
    

    Jeśli masz wiele dysków i chcesz przekierować ścieżkę, użyj:

    kubectl edit configmap -n kube-system local-path-config
    
  3. Uruchom następujące polecenie, aby określić, czy ustawiono wartość fs.inotify.max_user_instances 1024:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "sysctl fs.inotify.max_user_instances
    

    Po uruchomieniu tego polecenia, jeśli zwraca mniej niż 1024, uruchom następujące polecenie, aby zwiększyć maksymalną liczbę plików:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
    
  4. Zainstaluj usługę Open Service Mesh (OSM) przy użyciu następującego polecenia:

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m"
    

Przygotowywanie systemu Linux z systemem Ubuntu

W tej sekcji opisano sposób przygotowywania systemu Linux z systemem Ubuntu w przypadku uruchamiania klastra z jednym węzłem lub dwoma węzłami.

  1. Zainstaluj usługę Open Service Mesh (OSM) przy użyciu następującego polecenia:

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m"
    
  2. Uruchom następujące polecenie, aby określić, czy ustawiono wartość fs.inotify.max_user_instances 1024:

    sysctl fs.inotify.max_user_instances
    

    Po uruchomieniu tego polecenia, jeśli zwraca mniej niż 1024, uruchom następujące polecenie, aby zwiększyć maksymalną liczbę plików i ponownie załadować ustawienia sysctl :

    echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    

Przygotowywanie systemu Linux z innymi platformami

Dostępne opcje platformy to środowiska przypominające środowisko produkcyjne zweryfikowane przez firmę Microsoft. Te platformy nie muszą być jedynymi środowiskami, w których usługa Azure Container Storage włączona przez usługę Azure Arc może działać. Usługa Azure Container Storage włączona przez usługę Azure Arc może działać w dowolnym klastrze Kubernetes z obsługą usługi Arc, który spełnia wymagania systemowe platformy Kubernetes z obsługą usługi Azure Arc. Jeśli używasz środowiska, którego nie ma na liście, poniżej przedstawiono kilka sugestii, aby zwiększyć prawdopodobieństwo pomyślnej instalacji:

  1. Uruchom następujące polecenia, aby zwiększyć limity obserwowanych użytkowników i wystąpień:

    echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf
    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  2. Uruchom następujące polecenia, aby zwiększyć limit deskryptora plików w celu uzyskania lepszej wydajności:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  3. Uruchom następujące polecenie, aby zainstalować lokalnego modułu aprowizacji ścieżek:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml
    

Następne kroki

Instalowanie usługi Azure Container Storage włączonej przez usługę Azure Arc