Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un cluster Kubernetes abilitato per Azure Arc è un prerequisito per la distribuzione di Operazioni di Azure IoT. Questo articolo descrive come preparare quel cluster, con indicazioni per Ubuntu, Windows, Azure Locale e vSphere Kubernetes Service (VKS).
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 le implementazioni multi-nodo, usa K3s su Ubuntu, AKS su Azure Locale o vSphere Kubernetes Service (VKS). .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 --versionper controllare la versione eaz upgradeper 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 connectedk8sGruppo 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.
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>
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 e vSphere Kubernetes Service (VKS).
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 --clientSeguire 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.yamlEseguire 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 -pPer 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
kubectlaccesso 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 loginSe in qualsiasi momento ricevi un errore che dice che il tuo dispositivo deve essere gestito per accedere alla tua risorsa, riavvia
az logine 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, selezionareEnter. 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-upgradePer 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.
Importante
Se l'ambiente usa un server proxy o un gateway Azure Arc, modificare il comando
az connectedk8s connectcon le informazioni del proxy:- Seguire le istruzioni riportate in Connettersi usando un server proxy in uscita o Integrare i cluster Kubernetes in Azure Arc con Azure Arc Gateway.
- Aggiungere
169.254.169.254al parametro--proxy-skip-rangedel comandoaz connectedk8s connect. Azure Registro dispositivi usa questo endpoint locale per ottenere i token di accesso per l'autorizzazione.
Operazioni di Azure IoT non supporta i server proxy che richiedono un certificato attendibile.
Ottenere l'URL dell'autorità di certificazione del cluster.
az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsvSalvare l'output di questo comando da usare nei passaggi successivi.
Crea un file di configurazione K3s.
sudo nano /etc/rancher/k3s/config.yamlAggiungere 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=24hSalvare 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-locationsRiavviare K3s.
systemctl restart k3s
Configura Azure Container Storage abilitato tramite Azure Arc
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:
- Rivedere Che cos'è Archiviazione di Container Azure abilitato da Azure Arc.
- Rivedere Preparare Linux per i volumi Edge.
- Segui la procedura descritta in Installare Azure Container Storage abilitato con Azure Arc Edge Volumes.
Passaggi successivi
Ora che si dispone di un cluster Kubernetes abilitato per Azure Arc, è possibile distribuire Operazioni di Azure IoT.
- Usa un'autorità emittente personalizzata: se vuoi configurare un'autorità emittente di certificati nel cluster prima di distribuire Operazioni di Azure IoT.
- Eseguire la distribuzione in un cluster di test: per una valutazione e un test rapidi prima della distribuzione nell'ambiente di produzione.
- Distribuire in un cluster di produzione: per carichi di lavoro pronti per la produzione con impostazioni sicure.