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 ochaz 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:
Skapa ett K3s-kluster med en nod eller flera noder. Exempel finns i snabbstartsguiden för K3s eller K3s-relaterade projekt.
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
Följ anvisningarna för att installera Helm.
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
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
Ö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.
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.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 duEnter
. Annars anger du numret på den Azure-prenumeration som du vill använda.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"
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:- 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.
- Lägg till
169.254.169.254
i parametern--proxy-skip-range
föraz 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.
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.
Skapa en k3s-konfigurationsfil.
sudo nano /etc/rancher/k3s/config.yaml
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
Spara filen och avsluta Nano-redigeraren.
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.
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
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.
- Om du vill aktivera observerbarhetsfunktioner i klustret följer du stegen i Distribuera observerbarhetsresurser och konfigurera loggar.
- Om du vill konfigurera en egen certifikatutfärdare i klustret följer du stegen i Certifikathantering > Ta med din egen utfärdare.
Nästa steg
Nu när du har ett Azure Arc-aktiverat Kubernetes-kluster kan du distribuera Azure IoT Operations.