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 delle operazioni di Azure IoT. Questo articolo descrive come preparare un cluster prima di distribuire le operazioni di Azure IoT. Questo articolo include indicazioni per Ubuntu, Windows, Azure Local e Tanzu Kubernetes Grid (TKG).
I passaggi descritti in questo articolo preparano il cluster per una distribuzione di impostazioni sicure, che è un processo più lungo ma pronto per la produzione. Se si vuole distribuire rapidamente le operazioni IoT di Azure ed eseguire un carico di lavoro di esempio con solo le impostazioni di test, vedere la guida introduttiva: Eseguire operazioni IoT di Azure in GitHub Codespaces con K3s. Per altre informazioni sulle impostazioni di test e sulle impostazioni sicure, vedere Dettagli di distribuzione > Scegli le tue funzionalità.
Prerequisiti
Microsoft supporta il servizio Azure Kubernetes Edge Essentials per le distribuzioni in Windows, K3s per distribuzioni in Ubuntu, distribuzioni del servizio Azure Kubernetes in Azure locale e Tanzu Kubernetes (TKr) in TKG. Se si vuole distribuire le operazioni di Azure IoT in una soluzione multinodo, usare K3s in Ubuntu.
- Ubuntu
- Informazioni di base su Edge del servizio Azure Kubernetes
- Servizio Azure Kubernetes in locale di Azure
- TKG con un cluster di gestione
Per preparare un cluster Kubernetes abilitato per Azure Arc, è necessario:
Una sottoscrizione di Azure con il ruolo Owner o una combinazione del ruolo Collaboratore e del ruolo Amministratore di accesso utente. È possibile controllare il livello di accesso passando alla sottoscrizione, selezionando Controllo di accesso (IAM) sul lato sinistro del portale di Azure e quindi selezionando Visualizza l'accesso. Se non si dispone di sottoscrizione di Azure, crearne una gratuitamente prima di iniziare.
Un gruppo di risorse di Azure. Per ogni gruppo di risorse è supportata una sola istanza di Operazioni IoT di Azure. Per creare un nuovo gruppo di risorse, usare il comando az group create. Per trovare l'elenco delle aree Azure attualmente supportate, vedere Aree supportate.
az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
Interfaccia della riga di comando di Azure versione 2.62.0 o successiva installata nel computer cluster. Usare
az --version
per controllare la versione eaz upgrade
per aggiornarla, se necessario. Per altre informazioni, vedere Installare l'interfaccia della riga di comando di Azure.La versione più recente dell'estensione connectedk8s per l'interfaccia della riga di comando di Azure:
az extension add --upgrade --name connectedk8s
Hardware che soddisfa i requisiti di sistema:
Se si intende distribuire le operazioni di Azure IoT in un cluster multinodo con tolleranza di errore abilitata, esaminare i requisiti hardware e di archiviazione in Preparare Linux per i volumi Edge.
Creare e abilitare Arc per un cluster
Questa sezione illustra la procedura per creare cluster in ambienti convalidati in Linux e Windows.
- Ubuntu
- Informazioni di base su Edge del servizio Azure Kubernetes
- Servizio Azure Kubernetes in locale di Azure
- TKG con un cluster di gestione
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.
Verificare che kubectl sia stato installato come parte di K3s. In caso contrario, seguire le istruzioni per installare kubectl su Linux.
kubectl version --client
Seguire le istruzioni per installare Helm.
Creare 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
Abilitare Arc per il cluster
Connettere il cluster ad Azure Arc in modo che possa essere gestito in remoto.
Da un computer che ha
kubectl
accesso al cluster, accedere all'interfaccia della riga di comando di Azure con l'account utente Microsoft Entra con i ruoli necessari per la sottoscrizione di Azure:az login
Se in qualsiasi momento viene visualizzato un errore che indica che il dispositivo deve essere gestito per accedere alla risorsa, eseguire di nuovo
az login
e assicurarsi di accedere in modo interattivo con un browser.Dopo l'accesso, l'interfaccia della riga di comando di Azure visualizza tutte le sottoscrizioni e indica la sottoscrizione predefinita con un asterisco
*
. Per continuare con la sottoscrizione predefinita, selezionareEnter
. In caso contrario, digitare il numero della sottoscrizione di Azure che si vuole usare.Registrare i provider di risorse necessari nella sottoscrizione.
Annotazioni
Questo passaggio deve essere eseguito una volta sola per ogni sottoscrizione. Per registrare i provider di risorse, è necessaria l'autorizzazione per eseguire l'operazione
/register/action
, inclusa nei ruoli Collaboratore e Proprietario della sottoscrizione. 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 il cluster Kubernetes per Arc e gestirlo come parte del gruppo di risorse di Azure.
az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
Per impedire gli aggiornamenti non pianificati in Azure Arc e le estensioni Arc di sistema usate da Operazioni IoT di Azure come dipendenze, questo comando disabilita il downgrade automatico. Invece, Aggiornare manualmente gli agenti in base alle esigenze.
Importante
Se l'ambiente usa un server proxy o Azure Arc Gateway, modificare il comando
az connectedk8s connect
con le informazioni del proxy:- Seguire le istruzioni riportate in Connettersi usando un server proxy in uscita o Eseguire l'onboarding di cluster Kubernetes in Azure Arc con Azure Arc Gateway.
- Aggiungere
169.254.169.254
al parametro--proxy-skip-range
del comandoaz connectedk8s connect
. Registro dispositivi di Azure usa questo endpoint locale per ottenere i token di accesso per l'autorizzazione.
Le operazioni di Azure IoT non supportano 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 tsv
Salvare l'output di questo comando da usare nei passaggi successivi.
Creare 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, la posizione personalizzata, nel cluster Arc recuperando l'ID oggetto percorso personalizzato e salvandolo come variabile di ambiente, OBJECT_ID. Per eseguire correttamente il comando, non un'entità servizio, è necessario accedere all'interfaccia della riga di comando di Azure con un account utente di Microsoft Entra. 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)
Annotazioni
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. Accedere all'interfaccia della riga di comando di Azure con un account utente di 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
Riavviare K3s.
systemctl restart k3s
Configurare cluster multinodo per Archiviazione contenitori di Azure
Nei cluster Ubuntu multinodo con almeno tre nodi è possibile abilitare la tolleranza di errore per l'archiviazione con Archiviazione azure Container abilitata da Azure Arc quando si distribuiscono le operazioni di Azure IoT.
Se si vuole abilitare la tolleranza di errore durante la distribuzione, configurare i cluster seguendo la procedura descritta in Preparare Linux per i volumi Edge usando un cluster Ubuntu multinodo.
Se si esegue il cluster in una distribuzione Kubernetes diversa da k3s, vedere le indicazioni per Preparare Linux con altre piattaforme.
Configurazione avanzata
A questo punto, quando si dispone di un cluster Kubernetes abilitato per Azure Arc, ma prima di distribuire operazioni IoT di Azure, è possibile configurare il cluster per scenari avanzati.
- Per abilitare le funzionalità di osservabilità nel cluster, seguire la procedura descritta in Distribuire le risorse di osservabilità e configurare i log.
- Se si vuole configurare un'autorità di certificazione personalizzata nel cluster, seguire la procedura descritta in Gestione certificati > Porta il tuo emittente.
Passaggi successivi
Ora che si dispone di un cluster Kubernetes abilitato per Azure Arc, è possibile distribuire Operazioni di Azure IoT.