Sdílet prostřednictvím


Příprava clusteru Kubernetes s podporou Služby Azure Arc

Cluster Kubernetes s podporou Azure Arc je předpokladem pro nasazení operací Azure IoT. Tento článek popisuje, jak připravit cluster před nasazením operací Azure IoT. Tento článek obsahuje návody pro Ubuntu, Windows, Azure Local a Tanzu Kubernetes Grid (TKG).

Pokud chcete operace Azure IoT nasadit rychle a spustit ukázkovou úlohu v testovacím prostředí, projděte si rychlý start: Spuštění operací Azure IoT v GitHub Codespaces s využitím K3s.

Požadavky

Microsoft podporuje Azure Kubernetes Service (AKS) Edge Essentials pro nasazení ve Windows, K3s pro nasazení v Ubuntu, nasazení AKS v Azure Local a Tanzu Kubernetes release (TKr) v TKG. Pokud chcete nasadit operace Azure IoT do řešení s více uzly, použijte K3s na Ubuntu.

K přípravě clusteru Kubernetes s podporou Azure Arc potřebujete:

  • Předplatné Azure s rolí vlastníka nebo kombinací rolí Přispěvatel a Správce uživatelských přístupů. Úroveň přístupu můžete zkontrolovat tak, že přejdete do svého předplatného, vyberete Řízení přístupu (IAM) na levé straně webu Azure Portal a pak vyberete Zobrazit můj přístup. Pokud nemáte předplatné Azure, vytvořte si ho zdarma , než začnete.

  • Skupina prostředků Azure. Pro každou skupinu prostředků je podporována pouze jedna instance operací Azure IoT. Pokud chcete vytvořit novou skupinu prostředků, použijte příkaz az group create . Seznam aktuálně podporovaných oblastí Azure najdete v tématu Podporované oblasti.

    az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
    
  • Azure CLI verze 2.62.0 nebo novější nainstalovaná na počítači clusteru Použijte az --version ke kontrole vaší verze a az upgrade k aktualizaci v případě potřeby. Další informace najdete v tématu Postup instalace Azure CLI.

  • Nejnovější verze rozšíření Connectedk8s pro Azure CLI:

    az extension add --upgrade --name connectedk8s
    

Vytvoření clusteru a povolení služby Arc

Tato část obsahuje postup vytvoření clusterů v ověřených prostředích v Linuxu a Windows.

Příprava clusteru K3s Kubernetes na Ubuntu:

  1. Vytvořte cluster K3s s jedním uzlem nebo více uzly. Příklady najdete v úvodní příručce K3s nebo v projektech souvisejících s K3s.

  2. Zkontrolujte, jestli se kubectl nainstaloval jako součást K3s. Pokud ne, postupujte podle pokynů k instalaci kubectl v Linuxu.

    kubectl version --client
    
  3. Postupujte podle pokynů k instalaci Helmu.

  4. Vytvořte soubor yaml konfigurace K3s v .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
    
  5. Spuštěním následujícího příkazu zvyšte limity sledování uživatelů nebo instancí.

    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
    
  6. Pokud chcete dosáhnout lepšího výkonu, zvyšte limit popisovače souborů:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    

Aktivujte Arc pro váš cluster

Připojte cluster ke službě Azure Arc, abyste ho mohli spravovat vzdáleně.

  1. Z počítače, který má kubectl přístup k vašemu clusteru, se přihlaste k Azure CLI pomocí uživatelského účtu Microsoft Entra, který má požadované role pro předplatné Azure:

    az login
    

    Pokud se v libovolném okamžiku zobrazí chyba s informací , že pro přístup k vašemu prostředku je potřeba spravovat vaše zařízení, spusťte az login to znovu a ujistěte se, že se přihlašujete interaktivně pomocí prohlížeče.

  2. Po přihlášení se v Azure CLI zobrazí všechna vaše předplatná a označí vaše výchozí předplatné hvězdičkou *. Pokud chcete pokračovat s výchozím předplatným, vyberte Enter. V opačném případě zadejte číslo předplatného Azure, které chcete použít.

  3. Zaregistrujte požadované poskytovatele prostředků ve vašem předplatném.

    Poznámka:

    Tento krok stačí spustit jenom jednou pro každé předplatné. K registraci poskytovatelů prostředků potřebujete oprávnění k provedení /register/action operace, která je součástí rolí Přispěvatel předplatného a Vlastník. Další informace najdete v tématu Poskytovatelé a typy prostředků 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"
    
  4. Pomocí příkazu az connectedk8s connect povolte cluster Kubernetes a spravujte ho jako součást skupiny prostředků 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
    

    Aby se zabránilo neplánovaným aktualizacím služby Azure Arc a systémovým rozšířením Arc, které operace Azure IoT používá jako závislosti, tento příkaz zakáže automatické aktualizace. Místo toho podle potřeby agenty ručně upgradujte.

    Důležité

    Pokud vaše prostředí používá proxy server nebo službu Azure Arc Gateway, upravte az connectedk8s connect příkaz s informacemi o proxy serveru:

    1. Postupujte podle pokynů v Připojte se pomocí odchozího proxy serveru nebo Připojte clustery Kubernetes k Azure Arc pomocí služby Azure Arc Gateway.
    2. Přidejte 169.254.169.254 do --proxy-skip-range parametru az connectedk8s connect příkazu. Azure Device Registry používá tento místní koncový bod k získání přístupových tokenů pro autorizaci.

    Operace Azure IoT nepodporují proxy servery, které vyžadují důvěryhodný certifikát.

  5. Získejte adresu URL poskytovatele clusteru.

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Uložte výstup tohoto příkazu, který se použije v dalších krocích.

  6. Vytvořte konfigurační soubor k3s.

    sudo nano /etc/rancher/k3s/config.yaml
    
  7. Přidejte do config.yaml souboru následující obsah a nahraďte <SERVICE_ACCOUNT_ISSUER> zástupný symbol adresou URL vystavitele vašeho clusteru.

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h
    
  8. Uložte soubor a ukončete editor nano.

  9. Připravte se na povolení služby Azure Arc, vlastního umístění v clusteru Arc tím, že získáte ID objektu vlastního umístění a uložíte ho jako proměnnou prostředí OBJECT_ID. Abyste mohli úspěšně spustit příkaz, musíte být přihlášeni k Azure CLI pomocí uživatelského účtu Microsoft Entra, nikoli pomocí instančního objektu (service principal). Spusťte následující příkaz přesně tak, jak je napsaný, aniž byste změnili hodnotu GUID.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    

    Poznámka:

    Pokud se zobrazí chyba: "Nejde načíst identifikátor aplikace 'custom-locations'". Pokračuje se bez povolení této funkce. Nedostatečná oprávnění k dokončení operace: váš služební principál možná postrádá potřebná oprávnění k načtení ID objektu vlastního umístění. Přihlaste se k Azure CLI pomocí uživatelského účtu Microsoft Entra, který splňuje požadavky. Další informace najdete v tématu Vytváření a správa vlastních umístění.

  10. Pomocí příkazu az connectedk8s enable-features povolte funkci "custom location" ve vašem clusteru Arc. Tento příkaz používá proměnnou prostředí OBJECT_ID uloženou z předchozího kroku k nastavení hodnoty pro parametr custom-locations-oid. Spusťte tento příkaz na počítači, na kterém jste nasadili cluster Kubernetes:

    az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    
  11. Restartujte K3s.

    systemctl restart k3s
    

Konfigurace clusterů s více uzly pro Azure Container Storage

V clusterech s Ubuntu s více uzly s alespoň třemi uzly máte možnost povolit odolnost proti chybám pro úložiště se službou Azure Container Storage povolenou službou Azure Arc při nasazování operací Azure IoT.

Pokud chcete povolit odolnost proti chybám během nasazování, nakonfigurujte clustery podle kroků v části Příprava svazků Edge pro Linux pomocí clusteru Ubuntu s více uzly.

Pokud cluster spouštíte v jiné distribuci Kubernetes než k3s, projděte si pokyny k přípravě Linuxu s jinými platformami.

Rozšířená konfigurace

V tuto chvíli, když máte cluster Kubernetes s podporou Služby Azure Arc, ale před nasazením operací Azure IoT do něj možná budete chtít cluster nakonfigurovat pro pokročilé scénáře.

Další kroky

Teď, když máte cluster Kubernetes s podporou Azure Arc, můžete nasadit operaci Azure IoT s testovacím nastavením nebo produkčním nastavením.

  • Testovací nasazení: Doporučuje se pro rychlé vyhodnocení a vytváření prototypů před nasazením v produkčním prostředí. Testovací nasazení není vhodné pro produkční prostředí, nemá pozorovatelnost a posílení zabezpečení.
  • Produkční nasazení: Doporučeno pro úlohy připravené pro produkční prostředí. Produkční nasazení je vhodné pro nasazení IoT z reálného světa s požadavky na dodržování předpisů a zabezpečení.