Condividi tramite


Preparare Linux per i volumi Perimetrali usando un cluster a nodo singolo o a due nodi

Questo articolo descrive come preparare Linux usando un cluster a nodo singolo o a due nodi e presuppone che i prerequisiti siano stati soddisfatti.

Preparare Linux con il servizio Azure Kubernetes abilitato da Azure Arc

Questa sezione descrive come preparare Linux con il servizio Azure Kubernetes abilitato da Azure Arc se si esegue un cluster a nodo singolo o a due nodi.

  1. Installare Open Service Mesh (OSM) usando il comando seguente:

    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"
    

Preparare Linux con AKS Edge Essentials

Questa sezione descrive come preparare Linux con AKS Edge Essentials se si esegue un cluster a nodo singolo o a due nodi.

  1. Perché Edge Essentials possa supportare le operazioni IoT di Azure e l’Archiviazione contenitori di Azure abilitata da Azure Arc, gli host Kubernetes devono essere modificati in modo da supportare una quantità maggiore di memoria. A questo stadio è anche possibile aumentare le allocazioni di vCPU e disco se si prevede di richiedere risorse aggiuntive per i propri utilizzi di Kubernetes.

    Per iniziare, seguire la guida pratica fornita qui. La guida di avvio rapido usa la configurazione predefinita, che è consigliabile evitare.

    Seguendo il Passaggio 1: parametri di configurazione di un singolo computer, si dispone di un file nella directory di lavoro denominata aksedge-config.json. Aprire il file nel Blocco note o in un altro editor di testo:

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

    Aumentare MemoryInMB ad almeno 16384 e DataSizeInGB a 40G. Impostare ServiceIPRangeSize su 15. Se si prevede di eseguire molti POD, è possibile aumentare anche il CpuCount. Ad esempio:

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

    Continuare con i passaggi rimanenti, a partire dalla creazione di un singolo cluster di computer. Quindi, connettere il cluster Edge Essentials del servizio Azure Kubernetes ad Arc.

  2. Verificare la presenza dell'archiviazione del provisioner di percorso locale e installarla se non è già presente. Controllare se la classe di archiviazione local-path è già disponibile nel nodo eseguendo il cmdlet seguente:

    kubectl get StorageClass
    

    Se la classe di archiviazione local-path non è disponibile, eseguire il comando seguente:

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

    Nota

    Le immagini Local-Path-Provisioner e Busybox non sono gestite da Microsoft e vengono estratte dal repository Rancher Labs. Local-Path-Provisioner e BusyBox sono disponibili solo come immagine del contenitore Linux.

    Se tutto è configurato correttamente, verrà visualizzato l'output seguente:

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

    Se si dispone di più dischi e si desidera reindirizzare il percorso, usare:

    kubectl edit configmap -n kube-system local-path-config
    
  3. Eseguire il comando seguente per determinare se fs.inotify.max_user_instances sia impostato su 1024:

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

    Se dopo aver eseguito questo comando viene restituito meno di 1024, eseguire il comando seguente per aumentare il numero massimo di file:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
    
  4. Installare Open Service Mesh (OSM) usando il comando seguente:

    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"
    

Preparare Linux con Ubuntu

Questa sezione descrive come preparare Linux con Ubuntu se si esegue un cluster a nodo singolo o a due nodi.

  1. Installare Open Service Mesh (OSM) usando il comando seguente:

    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. Eseguire il comando seguente per determinare se fs.inotify.max_user_instances sia impostato su 1024:

    sysctl fs.inotify.max_user_instances
    

    Se dopo aver eseguito questo comando viene restituito meno di 1024, eseguire il comando seguente per aumentare il numero massimo di file e ricaricare le impostazioni sysctl:

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

Preparare Linux con altre piattaforme

Le opzioni della piattaforma disponibili sono ambienti simili alla produzione convalidati da Microsoft. Queste piattaforme non sono necessariamente gli unici ambienti in cui è possibile eseguire Archiviazione Azure Container abilitata da Azure Arc. Archiviazione di Azure Container abilitata da Azure Arc può essere eseguita in qualsiasi cluster Kubernetes abilitato per Arc che soddisfi i requisiti di sistema kubernetes abilitati per Azure Arc. Se si esegue in un ambiente non elencato, ecco alcuni suggerimenti per aumentare la probabilità di un'installazione riuscita:

  1. Eseguire i comandi seguenti per aumentare i limiti di controllo e istanza dell'utente:

    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. Eseguire i comandi seguenti per aumentare il limite del descrittore di file per ottenere prestazioni migliori:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  3. Eseguire il comando seguente per installare il provisioner del percorso locale:

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

Passaggi successivi

Installare Archiviazione di Container Azure abilitata da Azure Arc