Uw Kubernetes-cluster met Azure Arc voorbereiden
Een Kubernetes-cluster met Azure Arc is een vereiste voor het implementeren van Azure IoT Operations. In dit artikel wordt beschreven hoe u een cluster voorbereidt voordat u Azure IoT Operations implementeert. Dit artikel bevat richtlijnen voor zowel Ubuntu als Windows.
De stappen in dit artikel bereiden uw cluster voor op een implementatie van beveiligde instellingen. Dit is een langer proces dat gereed is voor productie. Als u Azure IoT-bewerkingen snel wilt implementeren en een voorbeeldworkload wilt uitvoeren met alleen testinstellingen, raadpleegt u de quickstart: Azure IoT Operations uitvoeren in GitHub Codespaces met K3s . Zie Implementatiedetails > Kies uw functies voor meer informatie over testinstellingen en beveiligde instellingen.
Vereisten
Microsoft ondersteunt Azure Kubernetes Service (AKS) Edge Essentials voor implementaties in Windows en K3s voor implementaties op Ubuntu. Als u Azure IoT-bewerkingen wilt implementeren in een oplossing met meerdere knooppunten, gebruikt u K3's in Ubuntu.
Als u een Kubernetes-cluster met Azure Arc wilt voorbereiden, hebt u het volgende nodig:
Een Azure-abonnement met de rol Eigenaar of een combinatie van de rollen Inzender en Beheerder voor gebruikerstoegang. U kunt uw toegangsniveau controleren door naar uw abonnement te navigeren, toegangsbeheer (IAM) aan de linkerkant van Azure Portal te selecteren en vervolgens Mijn toegang weergeven te selecteren. Als u geen Azure-abonnement hebt, kunt u er gratis een maken voordat u begint.
Een Azure-resourcegroep. Er wordt slechts één Azure IoT Operations-exemplaar per resourcegroep ondersteund. Gebruik de opdracht az group create om een nieuwe resourcegroep te maken . Zie Ondersteunde regio's voor de lijst met momenteel ondersteunde Azure-regio's.
az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
Azure CLI versie 2.64.0 of hoger geïnstalleerd op uw clustercomputer. Gebruik
az --version
deze optie om uw versie te controleren enaz upgrade
zo nodig bij te werken. Zie De Azure CLI installeren voor meer informatie.De nieuwste versie van de connectedk8s-extensie voor Azure CLI:
az extension add --upgrade --name connectedk8s
Hardware die voldoet aan de systeemvereisten:
- Door Azure IoT Operations ondersteunde omgevingen.
- Systeemvereisten voor Kubernetes met Azure Arc.
- K3s-vereisten.
Als u Azure IoT-bewerkingen gaat implementeren in een cluster met meerdere knooppunten waarvoor fouttolerantie is ingeschakeld, controleert u de hardware- en opslagvereisten in Linux voorbereiden op Edge-volumes.
Een cluster maken en arc inschakelen
Deze sectie bevat stappen voor het maken van clusters in gevalideerde omgevingen in Linux en Windows.
Een K3s Kubernetes-cluster voorbereiden op Ubuntu:
Maak een K3s-cluster met één knooppunt of meerdere knooppunten. Zie de K3s-snelstartgids of K3s-gerelateerde projecten voor voorbeelden.
Controleer of kubectl is geïnstalleerd als onderdeel van K3s. Zo niet, volg dan de instructies voor het installeren van kubectl in Linux.
kubectl version --client
Volg de instructies om Helm te installeren.
Maak een YAML-bestand voor K3s-configuratie 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
Voer de volgende opdracht uit om de limieten voor gebruikershorloge /exemplaren te verhogen.
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
Voor betere prestaties verhoogt u de limiet voor bestandsdescriptor:
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Uw cluster inschakelen met Arc
Verbind uw cluster met Azure Arc, zodat het extern kan worden beheerd.
Meld u op de computer waarop u het Kubernetes-cluster hebt geïmplementeerd aan bij Azure CLI met uw Microsoft Entra-gebruikersaccount met de vereiste rollen voor het Azure-abonnement:
az login
Als u op enig moment een foutmelding krijgt met de mededeling dat uw apparaat moet worden beheerd voor toegang tot uw resource, voert
az login
u deze opnieuw uit en zorgt u ervoor dat u zich interactief aanmeldt met een browser.Nadat u zich hebt aangemeld, worden in de Azure CLI al uw abonnementen weergegeven en wordt uw standaardabonnement aangegeven met een sterretje
*
. Als u wilt doorgaan met uw standaardabonnement, selecteert uEnter
. Typ anders het nummer van het Azure-abonnement dat u wilt gebruiken.Registreer de vereiste resourceproviders in uw abonnement.
Notitie
Deze stap hoeft slechts één keer per abonnement te worden uitgevoerd. Als u resourceproviders wilt registreren, moet u gemachtigd zijn om de
/register/action
bewerking uit te voeren, die is opgenomen in de rollen Inzender en Eigenaar van het abonnement. Zie Azure-resourceproviders en -typen voor meer informatie.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"
Gebruik de opdracht az connectedk8s connect to Arc-enable your Kubernetes cluster and manage it as part of your Azure resource group.
az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
Als u niet-geplande updates voor Azure Arc en de systeem-Arc-extensies die Door Azure IoT Operations als afhankelijkheden worden gebruikt, wilt voorkomen, wordt met deze opdracht automatischupgrade uitgeschakeld. In plaats daarvan moet u agents handmatig bijwerken als dat nodig is.
Belangrijk
Als uw omgeving gebruikmaakt van een proxyserver of Azure Arc Gateway, wijzigt u de
az connectedk8s connect
opdracht met uw proxygegevens:- Volg de instructies in Verbinding maken met behulp van een uitgaande proxyserver of Kubernetes-clusters onboarden naar Azure Arc met Azure Arc Gateway.
- Toevoegen
169.254.169.254
aan de--proxy-skip-range
parameter van deaz connectedk8s connect
opdracht. Azure Device Registry gebruikt dit lokale eindpunt om toegangstokens op te halen voor autorisatie.
Azure IoT Operations biedt geen ondersteuning voor proxyservers waarvoor een vertrouwd certificaat is vereist.
Haal de URL van de verlener van het cluster op.
az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
Sla de uitvoer van deze opdracht op voor gebruik in de volgende stappen.
Maak een k3s-configuratiebestand.
sudo nano /etc/rancher/k3s/config.yaml
Voeg de volgende inhoud toe aan het
config.yaml
bestand, waarbij u de tijdelijke aanduiding vervangt door de<SERVICE_ACCOUNT_ISSUER>
URL van de verlener van uw cluster.kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Sla het bestand op en sluit de nano-editor af.
Bereid u voor op het inschakelen van de Azure Arc-service, aangepaste locatie, op uw Arc-cluster door de id van het aangepaste locatieobject op te halen en op te slaan als de omgevingsvariabele, OBJECT_ID. U moet zijn aangemeld bij Azure CLI met een Microsoft Entra-gebruikersaccount om de opdracht uit te voeren, niet een service-principal. Voer de volgende opdracht precies uit zoals geschreven, zonder de GUID-waarde te wijzigen.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Notitie
Als u de foutmelding 'Kan de oid van de app custom-locations' niet ophalen. Doorgaan zonder de functie in te schakelen. Onvoldoende bevoegdheden om de bewerking te voltooien' gebruikt u mogelijk een service-principal die niet over de benodigde machtigingen beschikt om de object-id van de aangepaste locatie op te halen. Meld u aan bij Azure CLI met een Microsoft Entra-gebruikersaccount dat voldoet aan de vereisten.
Gebruik de opdracht az connectedk8s enable-features om de functie voor aangepaste locatie in uw Arc-cluster in te schakelen. Deze opdracht maakt gebruik van de omgevingsvariabele OBJECT_ID die is opgeslagen in de vorige stap om de waarde voor de parameter custom-locations-oid in te stellen. Voer deze opdracht uit op de computer waarop u het Kubernetes-cluster hebt geïmplementeerd:
az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Start K3s opnieuw op.
systemctl restart k3s
Clusters met meerdere knooppunten configureren voor Azure Container Storage
Op clusters met meerdere knooppunten met ten minste drie knooppunten kunt u fouttolerantie inschakelen voor opslag met Azure Container Storage ingeschakeld door Azure Arc wanneer u Azure IoT Operations implementeert.
Als u fouttolerantie wilt inschakelen tijdens de implementatie, configureert u uw clusters door de stappen in Linux voorbereiden voor Edge-volumes te volgen met behulp van een Ubuntu-cluster met meerdere knooppunten.
Geavanceerde configuratie
Wanneer u op dit moment een Kubernetes-cluster met Azure Arc hebt, maar voordat u Azure IoT Operations implementeert, wilt u mogelijk uw cluster configureren voor geavanceerde scenario's.
- Als u waarneembaarheidsfuncties in het cluster wilt inschakelen, volgt u de stappen in Waarneembaarheidsbronnen implementeren en stelt u logboeken in.
- Als u uw eigen certificaatverlener in het cluster wilt configureren, volgt u de stappen in Certificaatbeheer > Bring your own issuer.
Volgende stappen
Nu u een Kubernetes-cluster met Azure Arc hebt, kunt u Azure IoT Operations implementeren.