Dela via


Förbereda ditt Azure Arc-aktiverade Kubernetes-kluster

Ett Azure Arc-aktiverat Kubernetes-kluster är en förutsättning för att distribuera Azure IoT Operations. Den här artikeln beskriver hur du förbereder ett kluster innan du distribuerar Azure IoT Operations. Den här artikeln innehåller vägledning för både Ubuntu och Windows.

Stegen i den här artikeln förbereder klustret för en distribution av säkra inställningar, vilket är en längre men produktionsklar process. Om du vill distribuera Azure IoT Operations snabbt och köra en exempelarbetsbelastning med endast testinställningar läser du Snabbstart: Kör Azure IoT-åtgärder i GitHub Codespaces med K3s i stället. Mer information om testinställningar och säkra inställningar finns i Distributionsinformation > Välj dina funktioner.

Förutsättningar

Microsoft har stöd för Azure Kubernetes Service (AKS) Edge Essentials för distributioner i Windows och K3 för distributioner på Ubuntu. Om du vill distribuera Azure IoT Operations till en lösning med flera noder använder du K3s på Ubuntu.

För att förbereda ett Azure Arc-aktiverat Kubernetes-kluster behöver du:

  • En Azure-prenumeration med rollen Ägare eller en kombination av rollen Deltagare och Administratör för användaråtkomst. Du kan kontrollera åtkomstnivån genom att gå till din prenumeration, välja Åtkomstkontroll (IAM) till vänster i Azure Portal och sedan välja Visa min åtkomst. Om du inte har en Azure-prenumeration skapar du en kostnadsfritt innan du börjar.

  • En Azure-resursgrupp. Endast en Azure IoT Operations-instans stöds per resursgrupp. Om du vill skapa en ny resursgrupp använder du kommandot az group create . Listan över Azure-regioner som stöds finns i Regioner som stöds.

    az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
    
  • Azure CLI version 2.64.0 eller senare installerat på klusterdatorn. Använd az --version för att kontrollera din version och az upgrade uppdatera om det behövs. Mer information finns i Installera Azure CLI.

  • Den senaste versionen av connectedk8s-tillägget för Azure CLI:

    az extension add --upgrade --name connectedk8s
    
  • Maskinvara som uppfyller systemkraven:

  • Om du ska distribuera Azure IoT-åtgärder till ett kluster med flera noder med feltolerans aktiverat läser du maskinvaru- och lagringskraven i Förbereda Linux för Edge-volymer.

Skapa och Arc-aktivera ett kluster

Det här avsnittet innehåller steg för att skapa kluster i verifierade miljöer i Linux och Windows.

Så här förbereder du ett K3s Kubernetes-kluster på Ubuntu:

  1. Skapa ett K3s-kluster med en nod eller flera noder. Exempel finns i snabbstartsguiden för K3s eller K3s-relaterade projekt.

  2. Kontrollera att kubectl har installerats som en del av K3s. Om inte följer du anvisningarna för att installera kubectl på Linux.

    kubectl version --client
    
  3. Följ anvisningarna för att installera Helm.

  4. Skapa en yaml-fil för K3s-konfiguration i .kube/config:

    mkdir ~/.kube
    sudo KUBECONFIG=~/.kube/config:/etc/rancher/k3s/k3s.yaml kubectl config view --flatten > ~/.kube/merged
    mv ~/.kube/merged ~/.kube/config
    chmod  0600 ~/.kube/config
    export KUBECONFIG=~/.kube/config
    #switch to k3s context
    kubectl config use-context default
    sudo chmod 644 /etc/rancher/k3s/k3s.yaml
    
  5. Kör följande kommando för att öka användarbevaknings -/instansgränserna.

    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
    
  6. Öka filbeskrivningsgränsen för bättre prestanda:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    

Arc-aktivera klustret

Anslut klustret till Azure Arc så att det kan hanteras via fjärranslutning.

  1. På den dator där du distribuerade Kubernetes-klustret loggar du in på Azure CLI med ditt Microsoft Entra-användarkonto som har de nödvändiga rollerna för Azure-prenumerationen:

    az login
    

    Om du vid något tillfälle får ett felmeddelande om att enheten måste hanteras för att komma åt resursen kör az login du igen och ser till att du loggar in interaktivt med en webbläsare.

  2. När du har loggat in visar Azure CLI alla dina prenumerationer och anger din standardprenumeration med en asterisk *. Om du vill fortsätta med din standardprenumeration väljer du Enter. Annars anger du numret på den Azure-prenumeration som du vill använda.

  3. Registrera nödvändiga resursprovidrar i din prenumeration.

    Kommentar

    Det här steget behöver bara köras en gång per prenumeration. Om du vill registrera resursprovidrar behöver du behörighet att utföra åtgärden /register/action , som ingår i rollerna deltagare och ägare i prenumerationen. Mer information finns i Azure-resursprovidrar och typer.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperations"
    az provider register -n "Microsoft.DeviceRegistry"
    az provider register -n "Microsoft.SecretSyncController"
    
  4. Använd kommandot az connectedk8s connect för att Arc-aktivera ditt Kubernetes-kluster och hantera det som en del av din Azure-resursgrupp.

    az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
    

    För att förhindra oplanerade uppdateringar av Azure Arc och system arc-tillägg som Azure IoT Operations använder som beroenden inaktiverar det här kommandot autoupgrade. Uppgradera i stället agenter manuellt efter behov.

    Viktigt!

    Om din miljö använder en proxyserver eller Azure Arc Gateway ändrar du az connectedk8s connect kommandot med din proxyinformation:

    1. Följ anvisningarna i Antingen Anslut med hjälp av en utgående proxyserver eller Registrera Kubernetes-kluster till Azure Arc med Azure Arc Gateway.
    2. Lägg till 169.254.169.254 i parametern --proxy-skip-range för az connectedk8s connect kommandot. Azure Device Registry använder den här lokala slutpunkten för att hämta åtkomsttoken för auktorisering.

    Azure IoT Operations stöder inte proxyservrar som kräver ett betrott certifikat.

  5. Hämta klustrets utfärdar-URL.

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Spara utdata från det här kommandot som ska användas i nästa steg.

  6. Skapa en k3s-konfigurationsfil.

    sudo nano /etc/rancher/k3s/config.yaml
    
  7. Lägg till följande innehåll i config.yaml filen och ersätt <SERVICE_ACCOUNT_ISSUER> platshållaren med ditt klusters utfärdar-URL.

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h
    
  8. Spara filen och avsluta Nano-redigeraren.

  9. Förbered för att aktivera Azure Arc-tjänsten, anpassad plats, i Arc-klustret genom att hämta objekt-ID:t för anpassad plats och spara det som miljövariabel OBJECT_ID. Du måste vara inloggad i Azure CLI med ett Microsoft Entra-användarkonto för att kunna köra kommandot, inte tjänstens huvudnamn. Kör följande kommando exakt som skrivet, utan att ändra GUID-värdet.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    

Kommentar

Om du får felet "Det går inte att hämta oid för appen anpassade platser. Proceeding without enabling the feature. Otillräcklig behörighet för att slutföra åtgärden" kan du använda ett huvudnamn för tjänsten som saknar de behörigheter som krävs för att hämta objekt-ID:t för den anpassade platsen. Logga in på Azure CLI med ett Microsoft Entra-användarkonto som uppfyller kraven.

  1. Använd kommandot az connectedk8s enable-features för att aktivera funktionen för anpassad plats i Arc-klustret. Det här kommandot använder miljövariabeln OBJECT_ID som sparades från föregående steg för att ange värdet för parametern custom-locations-oid. Kör det här kommandot på datorn där du distribuerade Kubernetes-klustret:

    az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    
  2. Starta om K3s.

    systemctl restart k3s
    

Konfigurera kluster med flera noder för Azure Container Storage

I kluster med flera noder med minst tre noder har du möjlighet att aktivera feltolerans för lagring med Azure Container Storage aktiverat av Azure Arc när du distribuerar Azure IoT Operations.

Om du vill aktivera feltolerans under distributionen konfigurerar du dina kluster genom att följa stegen i Förbereda Linux för Edge-volymer med hjälp av ett Ubuntu-kluster med flera noder.

Avancerad konfiguration

När du nu har ett Azure Arc-aktiverat Kubernetes-kluster, men innan du distribuerar Azure IoT Operations till det, kanske du vill konfigurera klustret för avancerade scenarier.

Nästa steg

Nu när du har ett Azure Arc-aktiverat Kubernetes-kluster kan du distribuera Azure IoT Operations.