Serve un cluster Kubernetes abilitato per Azure Arc per distribuire Operazioni di Azure IoT. Questo articolo spiega come preparare quel cluster, con indicazioni per Ubuntu, Windows, Azure Locale, vSphere Kubernetes Service (VKS) e Red Hat OpenShift Container Platform (OpenShift).
Per distribuire Operazioni di Azure IoT rapidamente ed eseguire un carico di lavoro di esempio in un ambiente di test, vedere Quickstart: Eseguire Operazioni di Azure IoT in GitHub Codespaces con K3s.
Prerequisiti
Per implementazioni multi-nodo, usa K3s su Ubuntu, AKS su Azure Locale, vSphere Kubernetes Service (VKS) o OpenShift. .NET Aspire in Windows supporta solo distribuzioni a nodo singolo.
Per preparare un cluster Kubernetes abilitato per Azure Arc, è necessario:
Una sottoscrizione Azure con il ruolo Owner o una combinazione dei ruoli Contributor e Amministratore accesso utente. È possibile controllare il livello di accesso passando alla sottoscrizione, selezionando Controlla di accesso (IAM) sul lato sinistro del portale di Azure e quindi selezionando Visualizzare l'accesso. Se non si ha una sottoscrizione Azure, crearne una gratuitamente prima di iniziare.
Il interfaccia della riga di comando di Azure installato nel computer di sviluppo.
Controlla le estensioni interfaccia della riga di comando di Azure disponibili per la versione minima richiesta per l'estensione connectedk8s. Usare az --version per controllare la versione e az upgrade per aggiornarla, se necessario. Per altre informazioni, vedere Installare il interfaccia della riga di comando di Azure.
L'estensione connectedk8s per la interfaccia della riga di comando di Azure. Usare il comando seguente per aggiungere l'estensione o aggiornarla alla versione più recente:
az extension add --upgrade --name connectedk8s
Gruppo di risorse Azure. Per ogni gruppo di risorse è supportata una sola istanza di Operazioni di Azure IoT. Per creare un nuovo gruppo di risorse, usare il comando az group create. Per l'elenco delle aree Azure attualmente supportate, vedere Aree supportate.
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Hardware che soddisfa i requisiti di sistema:
Se si intende distribuire Operazioni di Azure IoT in un cluster multinodo con tolleranza di errore abilitata, esaminare i requisiti hardware e di archiviazione in Prepare Linux for Edge Volumes.
Per preparare un cluster Kubernetes abilitato per Azure Arc, è necessario:
Per preparare un cluster Kubernetes abilitato per Azure Arc, è necessario:
Per preparare un cluster di carico di lavoro vSphere Kubernetes Service (VKS), è necessario:
Una sottoscrizione Azure con il ruolo Owner o una combinazione dei ruoli Contributor e Amministratore accesso utente. È possibile controllare il livello di accesso passando alla sottoscrizione, selezionando Controlla di accesso (IAM) sul lato sinistro del portale di Azure e quindi selezionando Visualizzare l'accesso. Se non si ha una sottoscrizione Azure, crearne una gratuitamente prima di iniziare.
Il interfaccia della riga di comando di Azure installato nel computer di sviluppo.
Controlla le estensioni interfaccia della riga di comando di Azure disponibili per la versione minima richiesta per l'estensione connectedk8s. Usare az --version per controllare la versione e az upgrade per aggiornarla, se necessario. Per altre informazioni, vedere Installare il interfaccia della riga di comando di Azure.
L'estensione connectedk8s per la interfaccia della riga di comando di Azure. Usare il comando seguente per aggiungere l'estensione o aggiornarla alla versione più recente:
az extension add --upgrade --name connectedk8s
Gruppo di risorse Azure. Per ogni gruppo di risorse è supportata una sola istanza di Operazioni di Azure IoT. Per creare un nuovo gruppo di risorse, usare il comando az group create. Per l'elenco delle aree Azure attualmente supportate, vedere Aree supportate.
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Per preparare un cluster OpenShift abilitato per Azure Arc, è necessario:
Una sottoscrizione Azure con il ruolo Owner o una combinazione dei ruoli Contributor e Amministratore accesso utente. È possibile controllare il livello di accesso passando alla sottoscrizione, selezionando Controlla di accesso (IAM) sul lato sinistro del portale di Azure e quindi selezionando Visualizzare l'accesso. Se non si ha una sottoscrizione Azure, crearne una gratuitamente prima di iniziare.
Il interfaccia della riga di comando di Azure installato nel computer di sviluppo.
Controlla le estensioni interfaccia della riga di comando di Azure disponibili per la versione minima richiesta per l'estensione connectedk8s. Usare az --version per controllare la versione e az upgrade per aggiornarla, se necessario. Per altre informazioni, vedere Installare il interfaccia della riga di comando di Azure.
L'estensione connectedk8s per la interfaccia della riga di comando di Azure. Usare il comando seguente per aggiungere l'estensione o aggiornarla alla versione più recente:
az extension add --upgrade --name connectedk8s
Gruppo di risorse Azure. Per ogni gruppo di risorse è supportata una sola istanza di Operazioni di Azure IoT. Per creare un nuovo gruppo di risorse, usare il comando az group create. Per l'elenco delle aree Azure attualmente supportate, vedere Aree supportate.
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Un cluster Red Hat OpenShift, versione 4.20 o successiva.
La CLI OpenShift (oc) installata sulla tua macchina di sviluppo, ha effettuato l'accesso al cluster con un account che ha il cluster-admin ruolo. Concedere vincoli di contesto di sicurezza richiede cluster-admin.
Hardware che soddisfa i requisiti di sistema:
Gli esempi interfaccia della riga di comando di Azure in questo articolo usano variabili di ambiente così puoi impostare ogni valore una volta e poi copiare e incollare i comandi as-is. Se stai usando l'ambiente Operazioni di Azure IoT Codespaces dal quickstart, queste variabili sono già impostate per te e puoi saltare questo passaggio. Altrimenti, imposta le seguenti variabili di ambiente nella tua shell prima di eseguire i comandi.
I seguenti script impostano le variabili di ambiente più comunemente utilizzate:
| Variabile di ambiente |
Description |
SUBSCRIPTION_ID |
L'ID della sottoscrizione che contiene l'istanza di Operazioni di Azure IoT. |
RESOURCE_GROUP |
Il nome del gruppo di risorse che contiene la tua istanza Operazioni di Azure IoT. |
AIO_INSTANCE_NAME |
Il nome dell'istanza di Operazioni di Azure IoT. Per elencare le tue istanze, esegui az iot ops list -o table. |
CLUSTER_NAME |
Il nome del cluster Kubernetes abilitato Azure Arc che ospita la tua istanza. |
LOCATION |
La regione Azure da utilizzare per nuove risorse, ad esempio eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
$SUBSCRIPTION_ID = "<subscription-id>"
$RESOURCE_GROUP = "<resource-group-name>"
$AIO_INSTANCE_NAME = "<instance-name>"
$CLUSTER_NAME = "<cluster-name>"
$LOCATION = "<region>"
Devi solo impostare le variabili utilizzate in questo articolo. Questo articolo potrebbe utilizzare variabili ambientali aggiuntive per i nomi delle risorse che scegli. L'articolo spiega come posizionarli dove vengono introdotti.
Creare e abilitare Arc per un cluster
Questa sezione fornisce i passaggi per creare cluster in ambienti validati su Ubuntu, Windows, Azure Locale, vSphere Kubernetes Service (VKS) e OpenShift.
Per preparare un cluster Kubernetes K3s in Ubuntu:
Creare un cluster K3s a nodo singolo o multinodo. Per esempi, vedere la guida introduttiva di K3s o i progetti correlati a K3s.
Controlla che K3s sia installato kubectl. In caso contrario, seguire le istruzioni per installare kubectl su Linux.
kubectl version --client
Seguire le istruzioni per installare Helm.
Crea un file YAML di configurazione K3s in .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
Eseguire il comando seguente per aumentare i limiti di controllo/istanza dell'utente.
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
Per prestazioni migliori, aumentare il limite del descrittore di file:
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Abilita Azure Arc nel tuo cluster K3s
Collega il tuo cluster ad Azure Arc così potrai gestirlo da remoto.
Da una macchina che ha kubectl accesso al tuo cluster, accedi a interfaccia della riga di comando di Azure con il tuo account utente Microsoft Entra che contiene i ruoli richiesti per l'abbonamento Azure:
az login
Se in qualsiasi momento ricevi un errore che dice che il tuo dispositivo deve essere gestito per accedere alla tua risorsa, riavvia az login e assicurati di accedere in modo interattivo tramite un browser.
Dopo aver effettuato l'accesso, la interfaccia della riga di comando di Azure mostra tutti i tuoi abbonamenti e indica il tuo abbonamento predefinito con un asterisco*. Per continuare con la sottoscrizione predefinita, selezionare Enter. In caso contrario, digitare il numero della sottoscrizione Azure che si desidera usare.
Registrare i provider di risorse necessari nella sottoscrizione.
Note
Devi eseguire questo passaggio solo una volta per abbonamento. Per registrare i fornitori di risorse, è necessario il permesso per svolgere l'operazione /register/action , che include i ruoli di Contributore e Proprietario in abbonamento. Per altre informazioni, vedere Provider e tipi di risorse di Azure.
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"
Usare il comando az connectedk8s connect per abilitare Arc il cluster Kubernetes e gestirlo come parte del gruppo di risorse Azure.
az connectedk8s connect --name $CLUSTER_NAME -l $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
Per evitare aggiornamenti non pianificati per Azure Arc e le estensioni di sistema Arc che Operazioni di Azure IoT usa come dipendenze, questo comando disabilita l'aggiornamento automatico. Invece, Aggiornare manualmente gli agenti in base alle esigenze.
Ottenere l'URL dell'autorità di certificazione del cluster.
az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsv
Salvare l'output di questo comando da usare nei passaggi successivi.
Crea un file di configurazione K3s.
sudo nano /etc/rancher/k3s/config.yaml
Aggiungere il contenuto seguente al file config.yaml, sostituendo il segnaposto <SERVICE_ACCOUNT_ISSUER> con l'URL dell'autorità di certificazione del cluster.
kube-apiserver-arg:
- service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
- service-account-max-token-expiration=24h
Salvare il file e uscire dall'editor nano.
Prepararsi per abilitare il servizio Azure Arc, posizione personalizzata, nel cluster Arc ottenendo l'ID dell'oggetto posizione personalizzata e salvandolo come variabile d'ambiente, OBJECT_ID. Devi accedere ad interfaccia della riga di comando di Azure con un account utente Microsoft Entra, non un principale di servizio, per eseguire correttamente il comando. Eseguire il comando seguente esattamente come scritto, senza modificare il valore GUID.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Note
Se viene visualizzato l'errore: "Impossibile recuperare l'oid dell'app 'custom-locations'. Procedere senza abilitare la funzionalità. Privilegi insufficienti per completare l'operazione", l'entità servizio potrebbe non disporre delle autorizzazioni necessarie per recuperare l'ID oggetto della posizione personalizzata. Accedi a interfaccia della riga di comando di Azure con un account utente Microsoft Entra che soddisfi i prerequisiti. Per altre informazioni, vedere Creare e gestire posizioni personalizzate.
Usare il comando az connectedk8s enable-features per abilitare la funzionalità di posizione personalizzata nel cluster Arc. Questo comando utilizza la variabile di ambiente OBJECT_ID che hai salvato nel passaggio precedente per impostare il valore del parametro custom-locations-oid. Eseguire questo comando nel computer in cui è stato distribuito il cluster Kubernetes:
az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Riavviare K3s.
systemctl restart k3s
Edge Essentials Servizio Azure Kubernetes è un'implementazione kubernetes locale di Servizio Azure Kubernetes (AKS) che automatizza l'esecuzione di applicazioni in contenitori su larga scala. .NET Aspire include una piattaforma Kubernetes supportata da Microsoft che comprende una distribuzione Kubernetes leggera con un ingombro ridotto e un'esperienza di installazione semplice che supporta hardware edge di classe PC o 'leggero'.
Lo scriptAksEdgeQuickStartForAio.ps1 automatizza la creazione e la connessione di un cluster ed è il percorso consigliato per distribuire Operazioni di Azure IoT su .NET Aspire.
Per istruzioni sull'esecuzione dello script, vedere Configurare un cluster .NET Aspire per Operazioni di Azure IoT.
Di default, un cluster Kubernetes include un pool di nodi che può eseguire container Linux. Se aggiungi altri pool di nodi dopo la creazione, assicurati di impostare il sistema operativo su Linux. Operazioni di Azure IoT non supporta la distribuzione nei nodi di Windows.
Dopo aver avuto un cluster Kubernetes abilitato per Azure Arc, puoi distribuire Operazioni di Azure IoT.
Per preparare un cluster di carico di lavoro VKS, è necessario un cluster di carico VKS a nodo singolo o multi-nodo.
Aggiornare le impostazioni di ammissione di sicurezza dei pod
Prima di implementare Operazioni di Azure IoT, aggiorna le impostazioni di Pod Security Admission sul tuo cluster VKS. Applicando questo file, vengono create in anticipo le etichette del namespace e la sicurezza del pod viene impostata su privileged.
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/tanzu-config/psa.yaml
Abilita il tuo cluster VKS con Arc
Collega il tuo cluster ad Azure Arc così potrai gestirlo da remoto.
Sulla macchina dove hai distribuito il cluster Kubernetes, accedi ad interfaccia della riga di comando di Azure con il tuo account utente Microsoft Entra che contiene i ruoli richiesti per l'abbonamento Azure:
az login
Dopo aver effettuato l'accesso, la interfaccia della riga di comando di Azure mostra tutti i tuoi abbonamenti e indica il tuo abbonamento predefinito con un asterisco*. Per continuare con la sottoscrizione predefinita, selezionare Enter. In caso contrario, digitare il numero della sottoscrizione Azure che si desidera usare.
Registrare i provider di risorse necessari nella sottoscrizione.
Note
Devi eseguire questo passaggio solo una volta per abbonamento. Per registrare i fornitori di risorse, è necessario il permesso per svolgere l'operazione /register/action , che include i ruoli di Contributore e Proprietario in abbonamento. Per altre informazioni, vedere Provider e tipi di risorse di Azure.
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"
Usare il comando az connectedk8s connect per abilitare Arc il cluster Kubernetes e gestirlo come parte del gruppo di risorse Azure.
az connectedk8s connect --name $CLUSTER_NAME -l $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
Per evitare aggiornamenti non pianificati per Azure Arc e le estensioni di sistema Arc che Operazioni di Azure IoT usa come dipendenze, questo comando disabilita l'aggiornamento automatico. Invece, Aggiornare manualmente gli agenti in base alle esigenze.
Configura l'identità del carico di lavoro sul tuo cluster VKS. Per le istruzioni, vedi Distribuisci e configura l'identità del carico di lavoro su un cluster AKS. L'esecuzione di Operazioni di Azure IoT con impostazioni sicure richiede l'identità del carico di lavoro.
Prepararsi per abilitare il servizio Azure Arc, posizione personalizzata, nel cluster Arc ottenendo l'ID dell'oggetto posizione personalizzata e salvandolo come variabile d'ambiente, OBJECT_ID. Devi accedere ad interfaccia della riga di comando di Azure con un account utente Microsoft Entra, non un principale di servizio, per eseguire correttamente il comando. Eseguire il comando seguente esattamente come scritto, senza modificare il valore GUID.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Note
Se viene visualizzato l'errore: "Impossibile recuperare l'oid dell'app 'custom-locations'. Procedere senza abilitare la funzionalità. Privilegi insufficienti per completare l'operazione", l'entità servizio potrebbe non disporre delle autorizzazioni necessarie per recuperare l'ID oggetto della posizione personalizzata. Accedi a interfaccia della riga di comando di Azure con un account utente Microsoft Entra che soddisfi i prerequisiti. Per altre informazioni, vedere Creare e gestire posizioni personalizzate.
Usare il comando az connectedk8s enable-features per abilitare la funzionalità di posizione personalizzata nel cluster Arc. Questo comando usa la variabile di ambiente OBJECT_ID salvata dal passaggio precedente per impostare il valore per il parametro custom-locations-oid. Eseguire questo comando nel computer in cui è stato distribuito il cluster Kubernetes:
az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Per preparare un cluster OpenShift, è necessario un cluster OpenShift a nodo singolo o multi-nodo, versione 4.20 o successiva.
OpenShift applica vincoli di contesto di sicurezza (SCC), che controllano i privilegi che i pod possono richiedere. Per impostazione predefinita, OpenShift assegna a ciascun progetto un intervallo UID e ammette i pod sotto il restricted-v2 vincolo. Alcuni componenti di Operazioni di Azure IoT richiedono ID utente fissi al di fuori di quella fascia, quindi si concedono vincoli aggiuntivi prima di distribuire.
Concedere vincoli del contesto di sicurezza
Prima di implementare Operazioni di Azure IoT, concedi i vincoli di contesto di sicurezza richiesti dai suoi componenti. Il comando seguente mira al gruppo account di servizio per il namespace, quindi si applica a ogni account di servizio creato successivamente dalla distribuzione. Puoi eseguirlo prima che esista il namespace.
for scc in anyuid privileged hostnetwork-v2 hostaccess hostmount-anyuid nonroot-v2; do
oc adm policy add-scc-to-group $scc system:serviceaccounts:azure-iot-operations
done
Se salti questo passaggio, il deployment fallisce e i carichi di lavoro interessati segnalano un errore di ammissione simile al seguente:
pods "aio-akri-operator-0" is forbidden: unable to validate against any security context
constraint: provider restricted-v2: .spec.securityContext.fsGroup: Invalid value:
[]int64{65532}: 65532 is not an allowed group
Abilita il tuo cluster OpenShift con Arc
Collega il tuo cluster ad Azure Arc così potrai gestirlo da remoto.
Registrare i provider di risorse necessari nella sottoscrizione.
Note
Devi eseguire questo passaggio solo una volta per abbonamento. Per registrare i fornitori di risorse, è necessario il permesso per svolgere l'operazione /register/action , che include i ruoli di Contributore e Proprietario in abbonamento. Per altre informazioni, vedere Provider e tipi di risorse di Azure.
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"
Usa il comando az connectedk8s connect per Azure Arc - abilita il tuo cluster Kubernetes e gestiscilo come parte del tuo gruppo di risorse Azure.
az connectedk8s connect --name $CLUSTER_NAME -l $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
Per evitare aggiornamenti non pianificati di Azure Arc e delle estensioni Azure Arc di sistema che Operazioni di Azure IoT utilizza come dipendenze, questo comando disabilita l'autoupgrade. Invece, Aggiornare manualmente gli agenti in base alle esigenze.
Gli agenti Azure Arc creano i vincoli di contesto di sicurezza necessari, quindi non è necessaria alcuna configurazione aggiuntiva di OpenShift per questo passaggio.
Ottenere l'URL dell'autorità di certificazione del cluster.
az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsv
Salva l'output di questo comando per usarlo nel passo successivo.
Configura il cluster per utilizzare l'emittente Azure Arc come emittente dell'account di servizio, sostituendo il placeholder <SERVICE_ACCOUNT_ISSUER> con il valore ottenuto nel passaggio precedente. L'esecuzione di Operazioni di Azure IoT con impostazioni sicure richiede l'identità del carico di lavoro.
oc patch authentication cluster --type=merge \
-p '{"spec":{"serviceAccountIssuer":"<SERVICE_ACCOUNT_ISSUER>"}}'
La modifica dell'emittente dell'account di servizio fa sì che gli operatori di cluster kube-apiserver e authentication distribuiscano una nuova revisione nell'intero piano di controllo. Aspetta che entrambi finiscano prima di continuare.
oc wait --for=condition=Progressing=False --timeout=30m clusteroperator/kube-apiserver
oc wait --for=condition=Progressing=False --timeout=30m clusteroperator/authentication
Preparati ad abilitare il servizio Azure Arc, la posizione personalizzata, nel tuo cluster Azure Arc ottenendo l'ID dell'oggetto di localizzazione personalizzato e salvandolo come variabile di ambiente, OBJECT_ID. Devi accedere ad interfaccia della riga di comando di Azure con un account utente Microsoft Entra, non un principale di servizio, per eseguire correttamente il comando. Eseguire il comando seguente esattamente come scritto, senza modificare il valore GUID.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Note
Se viene visualizzato l'errore: "Impossibile recuperare l'oid dell'app 'custom-locations'. Procedere senza abilitare la funzionalità. Privilegi insufficienti per completare l'operazione", l'entità servizio potrebbe non disporre delle autorizzazioni necessarie per recuperare l'ID oggetto della posizione personalizzata. Accedi a interfaccia della riga di comando di Azure con un account utente Microsoft Entra che soddisfi i prerequisiti. Per altre informazioni, vedere Creare e gestire posizioni personalizzate.
Importante
Esegui questa ricerca mentre sei connesso allo stesso tenant Microsoft Entra che contiene le tue risorse Azure Arc. L'ID dell'oggetto dell'applicazione Custom Locations è diverso in ogni tenant. L'uso di un ID oggetto da un altro tenant sembra avere successo, ma la distribuzione di Operazioni di Azure IoT successivamente fallisce con "Microsoft.ExtendedLocation" resource provider does not have the required permissions to create a namespace on the cluster.
Usa il comando az-connectedk8s enable-features per abilitare la funzione di localizzazione personalizzata nel tuo cluster Azure Arc. Questo comando utilizza la OBJECT_ID variabile di ambiente che hai salvato nel passaggio precedente per impostare il valore del custom-locations-oid parametro.
az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Opzioni di distribuzione richieste su OpenShift
Quando distribuisci Operazioni di Azure IoT in questo cluster, includi le seguenti opzioni.
Disabilita la telemetria del gestore certificato:
az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cm-config global.telemetry.enabled=false
L'estensione cert-manager aggiunge altrimenti un sidecar diagnostico la cui immagine è citata tramite digest. Il runtime per container CRI-O usato da OpenShift non può scaricare un'immagine referenziata tramite digest che rimanda a un elenco di manifest multiarchitettura, quindi il sidecar non riesce con ImagePullBackOff e cert-manager non raggiunge mai uno stato integro.
Disabilita il contesto di sicurezza del connettore:
az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name <instance-name> --sr-resource-id <schema-registry-id> --ns-resource-id <namespace-id> --ops-config connectors.values.setSecurityContext=false
Il supervisore dei connettori altrimenti funziona con un UID arbitrario assegnato da OpenShift e non può leggere i propri file applicativ, quindi il rilascio dei connettori da Helm scade e il deployment viene annullato.
Note
Questa opzione fa sì che i pod di connettore funzionino sotto il anyuid vincolo di contesto di sicurezza invece che con il default di OpenShift. Oggi è obbligatorio perché l'immagine del connettore non è leggibile da un UID arbitrario. Tutti gli altri pod di Operazioni di Azure IoT funzionano sotto un vincolo più restrittivo.
Funzionalità come gli endpoint di archiviazione locale del flusso di dati e il connettore multimediale possono utilizzare opzionalmente Azure Archiviazione di Contenitori abilitata da Azure Arc (ACSA) per sincronizzare i dati locali con il cloud. ACSA non viene installato come parte di Operazioni di Azure IoT, quindi devi installarlo separatamente.
Per imparare come installare ACSA sul tuo cluster Kubernetes:
Passaggi successivi
Ora che si dispone di un cluster Kubernetes abilitato per Azure Arc, è possibile distribuire Operazioni di Azure IoT.