Preparare il cluster Kubernetes con abilitazione per Azure Arc
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 sia per Ubuntu che per Windows.
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 > distribuzione Scegliere le funzionalità.
Prerequisiti
Microsoft supporta servizio Azure Kubernetes Edge Essentials (AKS) per le distribuzioni in Windows e K3s per le distribuzioni in Ubuntu. Se si vuole distribuire le operazioni di Azure IoT in una soluzione multinodo, usare K3s in Ubuntu.
Per preparare un cluster Kubernetes abilitato per Azure Arc, è necessario:
Una sottoscrizione di Azure. 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.64.0 o successiva installata nel computer cluster. Usare
az --version
per controllare la versione eaz upgrade
per aggiornare, 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:
- Ambienti supportati dalle operazioni IoT di Azure.
- Requisiti di sistema kubernetes abilitati per Azure Arc.
- Requisiti K3s.
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.
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 in 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
Configurare cluster multinodo per Archiviazione contenitori di Azure
Nei cluster multinodo con almeno tre nodi è possibile abilitare la tolleranza di errore per l'archiviazione con Archiviazione contenitori di Azure 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.
Abilitare Arc per il cluster
Connettere il cluster ad Azure Arc in modo che possa essere gestito in remoto.
Nel computer in cui è stato distribuito il cluster Kubernetes accedere con l'interfaccia della riga di comando 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
az login
di nuovo 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.
Nota
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 Arc-enable il cluster Kubernetes 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 di sistema Arc usate da Azure IoT Operations come dipendenze, questo comando disabilita l'aggiornamento automatico. Aggiornare invece 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.
Creare un file di configurazione k3s.
sudo nano /etc/rancher/k3s/config.yaml
Aggiungere il contenuto seguente al
config.yaml
file, sostituendo il segnaposto con l'URL<SERVICE_ACCOUNT_ISSUER>
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.
Ottenere l'oggetto
objectId
dell'applicazione Microsoft Entra ID usata dal servizio Azure Arc nel tenant e salvarla come variabile di ambiente. 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)
Usare il comando az connectedk8s enable-features per abilitare il supporto della posizione personalizzata nel cluster. Questo comando usa il
objectId
dell'applicazione Microsoft Entra ID usata dal servizio Azure Arc. 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
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 Bring your own issuer.
Passaggi successivi
Ora che si dispone di un cluster Kubernetes abilitato per Azure Arc, è possibile distribuire Operazioni di Azure IoT.