Freigeben über


Vorbereiten von Linux für Edgevolumes mit einem Einzelknoten- oder 2-Knoten-Cluster

In diesem Artikel wird beschrieben, wie Sie Linux mithilfe eines Einzelknoten- oder 2-Knoten-Clusters vorbereiten. Es wird davon ausgehen, dass Sie die Voraussetzungen dafür erfüllt haben.

Vorbereiten von Linux mit AKS, aktiviert durch Azure Arc

In diesem Abschnitt wird beschrieben, wie Sie Linux mit AKS aktiviert durch Azure Arc vorbereiten, wenn Sie ein Einzelknoten- oder 2-Knoten-Cluster ausführen.

  1. Installieren Sie Open Service Mesh (OSM) 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"
    

Vorbereiten von Linux mit AKS Edge Essentials

In diesem Abschnitt wird beschrieben, wie Sie Linux mit AKS Edge Essentials vorbereiten, wenn Sie ein Einzelknoten- oder 2-Knoten-Cluster ausführen.

  1. Damit Edge Essentials Azure IoT Einsatz und Azure Container Storage, aktiviert durch Azure Arc, unterstützt müssen die Kubernetes-Hosts geändert werden, um mehr Arbeitsspeicher zu unterstützen. Sie können auch die vCPU- und Datenträgerbelegung zu diesem Zeitpunkt erhöhen, wenn Sie davon ausgehen, dass zusätzliche Ressourcen für Ihre Kubernetes-Verwendung erforderlich sind.

    Folgen Sie zunächst der Schrittanleitung hier. Der Schnellstart verwendet die Standardkonfiguration und sollte vermieden werden.

    Nach dem Schritt 1: Konfigurationsparameter für einzelne Computer finden Sie die Datei aksedge-config.json in Ihrem Arbeitsverzeichnis. Öffnen Sie diese Datei in Notepad oder einem anderen Text-Editor:

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

    Erhöhen Sie MemoryInMB auf mindestens 16384 und DataSizeInGB auf 40G. Legen Sie ServiceIPRangeSize auf 15 fest. Wenn Sie viele PODs ausführen möchten, können Sie auch CpuCount erhöhen. Zum Beispiel:

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

    Fahren Sie mit den verbleibenden Schritten fort, beginnend mit Erstellen eines einzelnen Computerclusters. Verbinden Sie anschließend Ihr AKS Edge Essentials-Clusters mit Arc.

  2. Überprüfen und installieren Sie den lokalen Pfad für den Speicher, wenn er noch nicht installiert ist. Überprüfen Sie, ob die Speicherklasse des lokalen Pfads bereits auf Ihrem Knoten verfügbar ist, indem Sie das folgende Cmdlet ausführen:

    kubectl get StorageClass
    

    Wenn die Speicherklasse des lokalen Pfads nicht verfügbar ist, führen Sie den folgenden Befehl aus:

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

    Hinweis

    Local-Path-Provisioner- und Busybox-Images werden von Microsoft nicht verwaltet und aus dem Rancher Labs-Repository abgerufen. Local-Path-Provisioner und BusyBox sind nur als Linux-Containerimage verfügbar.

    Wenn alles korrekt konfiguriert wurde, sollte Folgendes angezeigt werden:

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

    Wenn Sie über mehrere Datenträger verfügen und den Pfad umleiten möchten, gehen Sie wie folgt vor:

    kubectl edit configmap -n kube-system local-path-config
    
  3. Führen Sie den folgenden Befehl aus, um zu ermitteln, ob Sie fs.inotify.max_user_instances auf 1024 festlegen:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "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:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
    
  4. Installieren Sie Open Service Mesh (OSM) 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"
    

Vorbereiten von Linux mit Ubuntu

In diesem Abschnitt wird beschrieben, wie Sie Linux mit Ubuntu vorbereiten, wenn Sie ein Einzelknoten- oder 2-Knoten-Cluster ausführen.

  1. Installieren Sie Open Service Mesh (OSM) 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"
    
  2. 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
    

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 die lokale Pfadbereitstellung zu installieren:

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

Nächste Schritte

Installieren von Azure Container Storage, aktiviert durch Azure Arc