Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett Azure Arc-aktiverat Kubernetes-kluster är en förutsättning för att distribuera Azure IoT Operations. Den här artikeln beskriver hur man förbereder det klustret, med vägledning för Ubuntu, Windows, Azure Local och vSphere Kubernetes Service (VKS).
Om du vill distribuera Azure IoT Operations snabbt och köra en exempelarbetsbelastning i en testmiljö kan du läsa Quickstart: Kör Azure IoT Operations i GitHub Codespaces med K3s.
Förutsättningar
För multi-nod-distributioner, använd K3s på Ubuntu, AKS på Azure Local eller vSphere Kubernetes Service (VKS). AKS Edge Essentials på Windows stöder endast distributioner av en enda nod.
För att förbereda ett Azure Arc-aktiverat Kubernetes-kluster behöver du:
En Azure-prenumeration med rollen Owner eller en kombination av Contributor och Användaråtkomstadministratör roller. Du kan kontrollera åtkomstnivån genom att gå till din prenumeration, välja Access control (IAM) till vänster i Azure-portalen och sedan välja Visa min åtkomst. Om du inte har en Azure prenumeration skapa en kostnadsfri innan du börjar.
Azure CLI installerat på utvecklingsdatorn. Kontrollera tillgängliga Azure CLI-tillägg för minsta krav på versionen för connectedk8s-tillägget. Använd
az --versionför att kontrollera din version ochaz upgradeuppdatera om det behövs. Mer information finns i Installera Azure CLI.Connectedk8s-tillägget för Azure CLI. Använd följande kommando för att lägga till tillägget eller uppdatera det till den senaste versionen:
az extension add --upgrade --name connectedk8sEn 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 regioner som stöds för närvarande Azure finns i Supported regions.
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Maskinvara som uppfyller systemkraven:
Om du ska distribuera Azure IoT Operations till ett kluster med flera noder med feltolerans aktiverat kan du läsa maskinvaru- och lagringskraven i Prepare Linux for Edge Volumes.
De Azure CLI exemplen i denna artikel använder miljövariabler så att du kan sätta varje värde en gång och sedan kopiera och klistra in kommandona as-is. Om du använder Azure IoT Operations Codespaces-miljön från quickstart är dessa variabler redan inställda för dig och du kan hoppa över detta steg. Annars, ställ in följande miljövariabler i ditt skal innan du kör kommandona.
Följande skript anger de mest använda miljövariablerna:
| Miljövariabel | Beskrivning |
|---|---|
SUBSCRIPTION_ID |
ID:t för prenumerationen som innehåller din Azure IoT Operations-instans. |
RESOURCE_GROUP |
Namnet på resursgruppen som innehåller din Azure IoT Operations-instans. |
AIO_INSTANCE_NAME |
Namnet på din Azure IoT Operations-instans. För att lista dina instanser, kör az iot ops list -o table. |
CLUSTER_NAME |
Namnet på det Azure Arc-aktiverade Kubernetes-klustret som hostar din instans. |
LOCATION |
Azure-regionen att använda för nya resurser, till exempel eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Du behöver bara ställa in de variabler som denna artikel använder. Den här artikeln kan använda ytterligare miljövariabler för resursnamn som du väljer. Artikeln förklarar hur man placerar dem där de introduceras.
Skapa och Arc-aktivera ett kluster
Detta avsnitt ger steg för att skapa kluster i validerade miljöer på Ubuntu, Windows, Azure Local och vSphere Kubernetes Service (VKS).
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 K3s är installerat
kubectl. Om inte följer du anvisningarna för att installera kubectl på Linux.kubectl version --clientFölj anvisningarna för att installera Helm.
Skapa en K3s-konfiguration YAML-fil 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.yamlKö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
Aktivera ditt K3s-kluster för Arc
Koppla ditt kluster till Azure Arc så att du kan hantera det på distans.
Från en dator som har
kubectltillgång till ditt kluster, logga in på Azure CLI med ditt Microsoft Entra-användarkonto som har de nödvändiga rollerna för Azure-prenumerationen:az loginOm du vid något tillfälle får ett felmeddelande som säger att din enhet måste hanteras för att komma åt din resurs, kör
az loginigen och se till att du loggar in interaktivt via en webbläsare.Efter att du 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 skriver du numret på den Azure prenumeration som du vill använda.Registrera nödvändiga resursprovidrar i din prenumeration.
Anmärkning
Du behöver bara köra detta steg en gång per prenumeration. För att registrera resursleverantörer behöver du behörighet att utföra
/register/action-åtgärden, vilket ingår i rollerna Deltagare och Ägare för prenumerationen. Mer information finns i Azure resursleverantörer 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 $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgradeFö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 kommandot
az connectedk8s connectmed 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.254i parametern--proxy-skip-rangeföraz connectedk8s connectkommandot. 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 tsvSpara 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.yamlLägg till följande innehåll i
config.yaml-filen, och ersätt<SERVICE_ACCOUNT_ISSUER>-platshållaren med ditt klusters utfärdarens URL.kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24hSpara 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 logga in på Azure CLI med ett Microsoft Entra-användarkonto, inte en tjänstehuvudansvarig, för att kunna köra kommandot framgångsrikt. 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)Anmärkning
Om du får felet: "Det går inte att hämta oid för appen 'anpassade platser'. Fortsätter utan att aktivera funktionen. Otillräcklig behörighet för att slutföra åtgärden", då kan det bero på att din tjänst-principal saknar de nödvändiga behörigheterna 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 förutsättningarna. Mer information finns i Skapa och hantera anpassade platser.
Använd kommandot az connectedk8s enable-features för att aktivera funktionen för anpassad plats i Arc-klustret. Detta kommando använder variabeln OBJECT_ID environment som du sparade i föregående steg för att sätta 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-locationsStarta om K3s.
systemctl restart k3s
Konfigurera Azure Container Storage som aktiverats med Azure Arc
Funktioner som lokala lagringsslutpunkter för dataflöde och medieanslutningsappen kan också använda Azure Container Storage som aktiveras av Azure Arc (ACSA) för att synkronisera lokala data till molnet. ACSA installeras inte som en del av Azure IoT Operations, så du måste installera det separat.
För att lära dig hur du installerar ACSA på ditt Kubernetes-kluster:
- Granska Vad är Azure Container Storage som aktiveras av Azure Arc?.
- Granska Prepare Linux for Edge Volumes.
- Följ stegen i Install Azure Container Storage som aktiveras av Azure Arc Edge Volumes.
Nästa steg
Nu när du har ett Azure Arc aktiverat Kubernetes-kluster kan du distribuera Azure IoT Operations.
- Bringa en egen utfärdare: Om du vill konfigurera en egen certifikatutfärdare i klustret innan du distribuerar Azure IoT Operations.
- Distribuera till ett testkluster: För snabb utvärdering och testning innan du distribuerar i produktion.
- Distribuera till ett produktionskluster: För produktionsklara arbetsbelastningar med säkra inställningar.