Udostępnij za pośrednictwem


Przygotowywanie systemu Linux do obsługi woluminów pamięci podręcznej przy użyciu klastra z jednym węzłem lub 2 węzłem

W tym artykule opisano sposób przygotowania systemu Linux przy użyciu klastra z jednym węzłem lub 2 węzłem 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 2 węzłem.

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

    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. Wyłącz usługę ACStor , tworząc plik o nazwie config.json o następującej zawartości:

    {
      "feature.diskStorageClass": "default",
      "acstorController.enabled": false
    }
    

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"
    
  1. Wyłącz usługę ACStor , tworząc plik o nazwie config.json o następującej zawartości:

    {
      "acstorController.enabled": false,
      "feature.diskStorageClass": "local-path"
    }
    

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
    
  1. Wyłącz usługę ACStor , tworząc plik o nazwie config.json o następującej zawartości:

    {
      "acstorController.enabled": false,
      "feature.diskStorageClass": "local-path"
    }
    

Następne kroki

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