Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een Kubernetes-cluster met Azure Arc-functionaliteit is een vereiste voor het implementeren van Azure IoT-bewerkingen. Dit artikel beschrijft hoe je die cluster voorbereidt, met richtlijnen voor Ubuntu, Windows, Azure Lokaal en vSphere Kubernetes Service (VKS).
Als u Azure IoT-bewerkingen snel wilt implementeren en een voorbeeldworkload wilt uitvoeren in een testomgeving, raadpleegt u de Quickstart: Voer Azure IoT-bewerkingen uit in GitHub Codespaces met K3s.
Vereiste voorwaarden
Voor multi-node deployments gebruik je K3s op Ubuntu, AKS op Azure Lokaal, of vSphere Kubernetes Service (VKS). AKS Edge Essentials op Windows ondersteunt alleen single-node-implementaties.
Als u een Kubernetes-cluster met Azure Arc wilt voorbereiden, hebt u het volgende nodig:
Een Azure-abonnement met de rol Owner of een combinatie van Contributor en Gebruiker-toegangsbeheerder. U kunt uw toegangsniveau controleren door naar uw abonnement te navigeren, Access-besturingselement (IAM) aan de linkerkant van de Azure-portal te selecteren en vervolgens Weergave van mijn toegang te selecteren. Als u geen Azure abonnement hebt, gratis een abonnement maken voordat u begint.
De Azure CLI geïnstalleerd op uw ontwikkelcomputer. Controleer Beschikbare Azure CLI-extensies voor de minimaal vereiste versie voor de connectedk8s-extensie. Gebruik
az --versionom uw versie te controleren enaz upgradeom indien nodig bij te werken. Zie De Azure CLI installeren voor meer informatie.De connectedk8s-extensie voor de Azure CLI. Gebruik de volgende opdracht om de extensie toe te voegen of bij te werken naar de nieuwste versie:
az extension add --upgrade --name connectedk8sEen Azure resourcegroep. Er wordt slechts één Azure IoT-bewerkingen exemplaar per resourcegroep ondersteund. Gebruik de opdracht az group create om een nieuwe resourcegroep te maken. Zie Supported regions voor de lijst met momenteel ondersteunde Azure regio's.
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Hardware die voldoet aan de systeemvereisten:
Als u Azure IoT-bewerkingen implementeert in een cluster met meerdere knooppunten waarvoor fouttolerantie is ingeschakeld, controleert u de hardware- en opslagvereisten in Prepare Linux for Edge Volumes.
De Azure CLI voorbeelden in dit artikel gebruiken omgevingsvariabelen zodat je elke waarde één keer kunt instellen en vervolgens de commando's kunt kopiëren en plakken as-is. Als je de Azure IoT-bewerkingen Codespaces-omgeving vanuit de quickstart gebruikt, zijn deze variabelen al voor je ingesteld en kun je deze stap overslaan. Anders stel je de volgende omgevingsvariabelen in je shell voordat je de commando's uitvoert.
De volgende scripts stellen de meest gebruikte omgevingsvariabelen in:
| Omgevingsvariabele | Description |
|---|---|
SUBSCRIPTION_ID |
De ID van het abonnement dat je Azure IoT-bewerkingen-instantie bevat. |
RESOURCE_GROUP |
De naam van de resourcegroep die je Azure IoT-bewerkingen-instantie bevat. |
AIO_INSTANCE_NAME |
De naam van je Azure IoT-bewerkingen instance. Om je instanties op te sommen, voer az iot ops list -o tableje . |
CLUSTER_NAME |
De naam van de Azure Arc-enabled Kubernetes-cluster die jouw instantie host. |
LOCATION |
De Azure-regio om te gebruiken voor nieuwe bronnen, bijvoorbeeld eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Je hoeft alleen de variabelen in te stellen die dit artikel gebruikt. Dit artikel kan extra omgevingsvariabelen gebruiken voor de bronnamen die je kiest. Het artikel legt uit hoe je ze op de plek kunt plaatsen waar ze worden geïntroduceerd.
Een cluster maken en arc inschakelen
Deze sectie geeft stappen om clusters te creëren in gevalideerde omgevingen op Ubuntu, Windows, Azure Lokaal en vSphere Kubernetes Service (VKS).
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 K3s
kubectlis geïnstalleerd. Zo niet, volg dan de instructies voor het installeren van kubectl in Linux.kubectl version --clientVolg de instructies om Helm te installeren.
Maak een K3s-configuratie YAML-bestand aan 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.yamlVoer de volgende opdracht uit om de limieten voor gebruikerstoezicht of instanties 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 -pVoor betere prestaties verhoogt u de limiet voor bestandsdescriptor:
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Schakel je K3s-cluster in voor Arc
Verbind je cluster met Azure Arc zodat je het op afstand kunt beheren.
Vanaf een machine die toegang heeft
kubectltot je cluster, log je in op Azure CLI met je Microsoft Entra-gebruikersaccount dat de vereiste rollen voor het Azure-abonnement heeft:az loginAls je op enig moment een foutmelding krijgt dat je apparaat beheerd moet worden om toegang te krijgen tot je bron, start
az logindan opnieuw en zorg ervoor dat je interactief inlogt via een browser.Nadat je bent ingelogd, toont de Azure CLI al je abonnementen en geeft je standaardabonnement aan met een asterisk
*. 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.
Opmerking
Je hoeft deze stap maar één keer per abonnement uit te voeren. Om resource providers te registreren, heb je toestemming nodig om de bewerking
/register/actionuit te voeren. Deze toestemming is opgenomen in de abonnementsrollen Contributor en Owner. 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 om uw Kubernetes-cluster in te schakelen en te beheren als onderdeel van uw Azure resourcegroep.
az connectedk8s connect --name $CLUSTER_NAME -l $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgradeAls u niet-geplande updates wilt voorkomen voor Azure Arc en de systeem-Arc-extensies die Azure IoT-bewerkingen als afhankelijkheden gebruikt, 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 opdracht
az connectedk8s connectmet uw proxygegevens:- Volg de instructies in Connect using een uitgaande proxyserver of Inschepen van Kubernetes-clusters naar Azure Arc met Azure Arc Gateway.
- Toevoegen
169.254.169.254aan de--proxy-skip-rangeparameter van deaz connectedk8s connectopdracht. Azure Device Registry gebruikt dit lokale eindpunt om toegangstokens voor autorisatie op te halen.
Azure IoT-bewerkingen biedt geen ondersteuning voor proxyservers waarvoor een vertrouwd certificaat is vereist.
Haal de URL van de uitgever van het cluster op.
az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsvSla de uitvoer van deze opdracht op voor gebruik in de volgende stappen.
Maak een K3s-configuratiebestand aan.
sudo nano /etc/rancher/k3s/config.yamlVoeg de volgende inhoud toe aan het
config.yamlbestand, 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=24hSla 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. Je moet inloggen bij Azure CLI met een Microsoft Entra-gebruikersaccount, niet met een serviceprincipal, om het commando succesvol uit te voeren. 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)Opmerking
Als u de foutmelding krijgt: 'Kan de OID van de app "custom-locations" niet ophalen.' Doorgaan zonder de functie in te schakelen. Er zijn onvoldoende bevoegdheden om de bewerking te voltooien. Uw service-principal beschikt mogelijk niet over de benodigde machtigingen om de object-id van de aangepaste locatie op te halen. Log in bij Azure CLI met een Microsoft Entra-gebruikersaccount dat aan de voorwaarden voldoet. Zie Aangepaste locaties maken en beheren voor meer informatie.
Gebruik de opdracht az connectedk8s enable-features om de functie voor aangepaste locatie in uw Arc-cluster in te schakelen. Dit commando gebruikt de OBJECT_ID omgevingsvariabele die je in de vorige stap hebt opgeslagen om de waarde voor de custom-locations-oid parameter 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-locationsStart K3s opnieuw op.
systemctl restart k3s
Azure Container Storage configureren, ingeschakeld door Azure Arc
Functies zoals eindpunten voor lokale opslag voor gegevensstromen en de mediaconnector gebruiken optioneel Azure Container Storage ingeschakeld door Azure Arc (ACSA) om lokale gegevens te synchroniseren met de cloud. ACSA is niet geïnstalleerd als onderdeel van Azure IoT-bewerkingen, dus je moet het apart installeren.
Om te leren hoe je ACSA installeert op je Kubernetes-cluster:
- Bekijk Wat is Azure Container Storage met Azure Arc ingeschakeld.
- Bekijk Linux voorbereiden voor Edge Volumes.
- Volg de stappen in Installeer Azure Container Storage mogelijk gemaakt door Azure Arc Edge Volumes.
Volgende stappen
Nu u een Kubernetes-cluster met Azure Arc hebt, kunt u Azure IoT-bewerkingen implementeren.
- Bring your own issuer: Als u uw eigen certificaatverlener in het cluster wilt configureren voordat u Azure IoT-bewerkingen implementeert.
- Implementeren in een testcluster: Voor snelle evaluatie en testen voordat u in productie implementeert.
- Implementeren in een productiecluster: voor workloads die gereed zijn voor productie met beveiligde instellingen.