Freigeben über


Vorbereiten von Linux für Edgevolumes mithilfe eines Clusters mit mehreren Knoten

In diesem Artikel wird beschrieben, wie Sie Linux mithilfe eines Multiknotenclusters vorbereiten und davon ausgehen, dass Sie die Voraussetzungen erfüllt.

Vorbereiten von Linux mit AKS, aktiviert durch Azure Arc

Installieren und konfigurieren Sie Open Service Mesh (OSM) mit den folgenden Befehlen:

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"

Vorbereiten von Linux mit AKS Edge Essentials

In diesem Abschnitt wird beschrieben, wie Sie Linux mit AKS Edge Essentials vorbereiten, wenn Sie einen Multiknotencluster ausführen.

  1. Legen Sie auf jedem Knoten in Ihrem Cluster die Anzahl der HugePages auf 512 fest, indem Sie den folgenden Befehl verwenden:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command 'echo 512 | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages'
    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command 'echo "vm.nr_hugepages=512" | sudo tee /etc/sysctl.d/99-hugepages.conf'
    
  2. Installieren Sie auf jedem Knoten in Ihrem Cluster das erforderliche NVMe-over-TCP-Modul für Ihren Kernel wie folgt:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command 'sudo apt install linux-modules-extra-`uname -r`'
    

    Hinweis

    Die unterstützte Mindestversion ist 5.1. Derzeit gibt es bekannte Probleme mit 6.4 und 6.2.

  3. Erhöhen Sie auf jedem Knoten in Ihrem Cluster die maximale Anzahl von Dateien mithilfe des folgenden Befehls:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command 'echo -e "LimitNOFILE=1048576" | sudo tee -a /etc/systemd/system/containerd.service.d/override.conf'
    
  4. Installieren und konfigurieren Sie Open Service Mesh (OSM) mit den folgenden Befehlen:

    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"
    
    kubectl patch meshconfig osm-mesh-config -n "arc-osm-system" -p '{"spec":{"featureFlags":{"enableWASMStats": false }, "traffic":{"outboundPortExclusionList":[443,2379,2380], "inboundPortExclusionList":[443,2379,2380]}}}' --type=merge
    

Vorbereiten von Linux mit Ubuntu

In diesem Abschnitt wird beschrieben, wie Sie Linux mit Ubuntu vorbereiten, wenn Sie einen Multiknotencluster ausführen.

Installieren und konfigurieren Sie zunächst OSM (Open Service Mesh) mit dem folgenden Befehl:

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"

Führen Sie dann die folgenden Schritte in Ihrem Kubernetes-Cluster aus:

Wichtig

Sie müssen die folgenden Schritte für jeden Knoten in Ihrem Kubernetes-Cluster ausführen.

  1. Führen Sie den folgenden Befehl aus, um zu ermitteln, ob Sie fs.inotify.max_user_instances auf 1024 festlegen:

    sysctl fs.inotify.max_user_instances
    

    Wenn nach der Ausführung des Befehls weniger als 1024 angezeigt wird, führen Sie den folgenden Befehl aus, um die maximale Anzahl von Dateien zu erhöhen und die sysctl-Einstellungen erneut zu laden:

    echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  2. Installieren Sie das erforderliche NVMe-over-TCP-Modul für Ihren Kernel wie folgt:

    sudo apt install linux-modules-extra-`uname -r`
    

    Hinweis

    Die unterstützte Mindestversion ist 5.1. Derzeit gibt es bekannte Probleme mit 6.4 und 6.2.

  3. Legen Sie die Anzahl der HugePages mit dem folgenden Befehl auf 512 fest:

    HUGEPAGES_NR=512
    echo $HUGEPAGES_NR | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
    echo "vm.nr_hugepages=$HUGEPAGES_NR" | sudo tee /etc/sysctl.d/99-hugepages.conf
    
  4. Starten Sie K3s mit dem folgenden Befehl neu:

    sudo systemctl restart k3s || sudo systemctl restart k3s-agent
    

Vorbereiten von Linux mit anderen Plattformen

Die verfügbaren Plattformoptionen sind ähneln Produktionsumgebungen, die von Microsoft überprüft wurden. Diese Plattformen sind nicht die einzigen Umgebungen, in denen Azure Container Storage mit Azure Arc ausgeführt werden kann. Azure Container Storage mit Azure Arc kann auf allen Arc-fähigen Kubernetes-Clustern ausgeführt werden, die die Azure Arc-fähige Kubernetes-Systemanforderungen erfüllen. Wenn Sie eine nicht aufgeführte Umgebung zum Ausführen verwenden, finden Sie hier einige Vorschläge, um die Wahrscheinlichkeit einer erfolgreichen Installation zu erhöhen:

  1. Führen Sie die folgenden Befehle aus, um die Benutzerüberwachungs- und Instanzgrenzwerte zu erhöhen:

    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. Führen Sie die folgenden Befehle aus, um die Dateideskriptorengrenze für eine bessere Leistung zu erhöhen:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  3. Führen Sie den folgenden Befehl aus, um das erforderliche NVME über TCP-Modul für Ihren Kernel zu installieren:

    sudo apt install linux-modules-extra-`uname -r`
    
  4. Führen Sie den folgenden Befehl aus, um die Anzahl von HugePages auf 512 festzulegen:

    HUGEPAGES_NR=512
    echo $HUGEPAGES_NR | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
    echo "vm.nr_hugepages=$HUGEPAGES_NR" | sudo tee /etc/sysctl.d/99-hugepages.conf
    

Nächste Schritte

Installieren der Erweiterung