Rychlý start: Připojení existujícího clusteru Kubernetes ke službě Azure Arc

Začněte používat Kubernetes s podporou Azure Arc pomocí Azure CLI nebo Azure PowerShell pro připojení existujícího clusteru Kubernetes ke službě Azure Arc.

Koncepční informace o připojení clusterů ke službě Azure Arc najdete v tématu Přehled agenta Kubernetes s podporou Azure Arc.

Předpoklady

  • Účet Azure s aktivním předplatným. Vytvořte si účet zdarma.

  • Základní znalosti základních konceptů Kubernetes.

  • Identita (uživatel nebo instanční objekt), kterou je možné použít k přihlášení k Azure CLI a připojení clusteru ke službě Azure Arc.

    Důležité

    • Identita musí mít oprávnění Číst a Zapisovat pro typ prostředku Kubernetes s podporou Azure Arc (Microsoft.Kubernetes/connectedClusters).
    • Pro tuto identitu je možné použít předdefinovanou roli clusteru Kubernetes – Azure Arc Onboarding . Tato role je užitečná pro onboarding ve velkém měřítku, protože má pouze podrobná oprávnění potřebná k připojení clusterů ke službě Azure Arc a nemá oprávnění k aktualizaci, odstranění nebo úpravě jiných clusterů nebo jiných prostředků Azure.
  • Nainstalujte nebo upgradujte Azure CLI na nejnovější verzi.

  • Nainstalujte nejnovější verzi rozšíření Azure CLI connectedk8s :

    az extension add --name connectedk8s
    
  • Spuštěný cluster Kubernetes. Pokud ho nemáte, můžete cluster vytvořit pomocí jedné z těchto možností:

    • Kubernetes v Dockeru (KIND)

    • Vytvoření clusteru Kubernetes pomocí Dockeru pro Mac nebo Windows

    • Samoobslužně spravovaný cluster Kubernetes s využitím rozhraní API clusteru

      Poznámka

      Cluster musí mít alespoň jeden uzel typu operačního systému a architektury linux/amd64. Clustery, které mají jenom linux/arm64 uzly, se zatím nepodporují.

  • Soubor kubeconfig a kontext odkazující na váš cluster.

  • Nainstalujte Helm 3. Ujistěte se, že helm verze 3 je < 3.7.0.

Registrace poskytovatelů pro Kubernetes s podporou Azure Arc

  1. Zadejte následující příkazy:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    
  2. Monitorujte proces registrace. Registrace může trvat až 10 minut.

    az provider show -n Microsoft.Kubernetes -o table
    az provider show -n Microsoft.KubernetesConfiguration -o table
    az provider show -n Microsoft.ExtendedLocation -o table
    

    Po registraci by se měl stav RegistrationState těchto oborů názvů změnit na Registered.

Splnění požadavků na síť

Důležité

Agenti Azure Arc vyžadují následující odchozí adresy https://:443 URL, aby fungovaly. V případě *.servicebus.windows.netmusí být websockety povolené pro odchozí přístup na bráně firewall a proxy serveru.

Koncový bod (DNS) Description
https://management.azure.com (pro Azure Cloud) https://management.usgovcloudapi.net (pro Azure US Government) Vyžaduje se, aby se agent připojil k Azure a zaregistroval cluster.
https://<region>.dp.kubernetesconfiguration.azure.com (pro Azure Cloud) https://<region>.dp.kubernetesconfiguration.azure.us (pro Azure US Government) Koncový bod roviny dat pro agenta pro nabízení informací o stavu a načítání konfiguračních informací.
https://login.microsoftonline.com, https://<region>.login.microsoft.com, login.windows.net (pro Azure Cloud), https://login.microsoftonline.us, <region>.login.microsoftonline.us (pro Azure US Government) Vyžaduje se k načtení a aktualizaci tokenů Azure Resource Manageru.
https://mcr.microsoft.com, https://*.data.mcr.microsoft.com Vyžaduje se k načtení imagí kontejneru pro agenty Azure Arc.
https://gbl.his.arc.azure.com (pro Azure Cloud) https://gbl.his.arc.azure.us (pro Azure US Government) Vyžaduje se k získání místního koncového bodu pro vyžádání certifikátů spravované identity přiřazených systémem.
https://*.his.arc.azure.com (pro Azure Cloud) https://usgv.his.arc.azure.us (pro Azure US Government) Vyžaduje se k získání certifikátů spravované identity přiřazených systémem.
https://k8connecthelm.azureedge.net az connectedk8s connect Používá Helm 3 k nasazení agentů Azure Arc v clusteru Kubernetes. Tento koncový bod je potřeba ke stažení klienta Helm, aby se usnadnilo nasazení grafu helm agenta.
guestnotificationservice.azure.com, *.guestnotificationservice.azure.com, sts.windows.net, https://k8sconnectcsp.azureedge.net Pro scénáře připojení ke clusteru a pro scénáře založené na vlastním umístění .
*.servicebus.windows.net Pro scénáře připojení ke clusteru a pro scénáře založené na vlastním umístění .
https://graph.microsoft.com/ Vyžaduje se při konfiguraci Azure RBAC

Poznámka

Pokud chcete zástupný znak přeložit *.servicebus.windows.net na konkrétní koncové body, použijte příkaz \GET https://guestnotificationservice.azure.com/urls/allowlist?api-version=2020-01-01&location=<location>. V rámci tohoto příkazu musí být pro zástupný symbol zadána <location> oblast.

Důležité

Pokud chcete zobrazit a spravovat připojené clustery v Azure Portal, ujistěte se, že vaše síť povoluje provoz do *.arc.azure.net.

Vytvoření skupiny prostředků

Spusťte následující příkaz:

az group create --name AzureArcTest --location EastUS --output table

Výstup:

Location    Name
----------  ------------
eastus      AzureArcTest

Připojení existujícího clusteru Kubernetes

Spusťte následující příkaz:

az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest

Poznámka

Pokud jste přihlášení k Azure CLI pomocí instančního objektu, je potřeba nastavit další parametr , který povolí funkci vlastního umístění v clusteru.

Výstup:

Helm release deployment succeeded

    {
      "aadProfile": {
        "clientAppId": "",
        "serverAppId": "",
        "tenantId": ""
      },
      "agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
      "agentVersion": null,
      "connectivityStatus": "Connecting",
      "distribution": "gke",
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1",
      "identity": {
        "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "type": "SystemAssigned"
      },
      "infrastructure": "gcp",
      "kubernetesVersion": null,
      "lastConnectivityTime": null,
      "location": "eastus",
      "managedIdentityCertificateExpirationTime": null,
      "name": "AzureArcTest1",
      "offering": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "AzureArcTest",
      "tags": {},
      "totalCoreCount": null,
      "totalNodeCount": null,
      "type": "Microsoft.Kubernetes/connectedClusters"
    }

Tip

Výše uvedený příkaz bez zadaného parametru location vytvoří prostředek Kubernetes s podporou Azure Arc ve stejném umístění jako skupina prostředků. Pokud chcete vytvořit prostředek Kubernetes s podporou Azure Arc v jiném umístění, zadejte buď --location <region> nebo -l <region> při spuštění az connectedk8s connect příkazu.

Důležité

V některých případech může nasazení selhat kvůli chybě časového limitu. Podrobnosti o řešení tohoto problému najdete v našem průvodci odstraňováním potíží.

Připojení pomocí odchozího proxy serveru

Pokud je váš cluster za odchozím proxy serverem, požadavky musí být směrovány přes odchozí proxy server.

  1. Nastavte proměnné prostředí potřebné k tomu, aby nástroj Azure CLI mohl používat odchozí proxy server:

    export HTTP_PROXY=<proxy-server-ip-address>:<port>
    export HTTPS_PROXY=<proxy-server-ip-address>:<port>
    export NO_PROXY=<cluster-apiserver-ip-address>:<port>
    
  2. Spusťte příkaz connect se zadanými proxy-https parametry a proxy-http . Pokud je proxy server nastavený na protokoly HTTP i HTTPS, nezapomeňte použít --proxy-http pro proxy server HTTP a --proxy-https pro proxy server HTTPS. Pokud proxy server používá pouze protokol HTTP, můžete tuto hodnotu použít pro oba parametry.

    az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
    

Poznámka

  • Některé síťové žádosti, například ty, které zahrnují komunikaci mezi službami v clusteru, musí být odděleny od provozu, který je směrovaný přes proxy server pro odchozí komunikaci. Parametr --proxy-skip-range lze použít k určení rozsahu a koncových bodů CIDR čárkami odděleným způsobem, aby veškerá komunikace od agentů s těmito koncovými body nepřechávala přes odchozí proxy server. Jako hodnota tohoto parametru by měl být zadán minimálně rozsah CIDR služeb v clusteru. Řekněme kubectl get svc -A například, že vrátí seznam služeb, kde všechny služby mají hodnoty ClusterIP v rozsahu 10.0.0.0/16. Hodnota, pro kterou se má zadat --proxy-skip-range , je 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc.
  • --proxy-http, --proxy-httpsa --proxy-skip-range se očekávají pro většinu odchozích proxy prostředí. --proxy-cert Vyžaduje se pouze v případě, že potřebujete vložit důvěryhodné certifikáty očekávané proxy serverem do důvěryhodného úložiště certifikátů podů agentů.
  • Odchozí proxy server musí být nakonfigurovaný tak, aby povoloval připojení přes protokol WebSocket.

U odchozích proxy serverů, kde je potřeba zadat pouze důvěryhodný certifikát bez vstupů koncového bodu proxy serveru, az connectedk8s connect je možné spustit pouze se zadaným --proxy-cert vstupem. V případě, že se očekává více důvěryhodných certifikátů, lze kombinovaný řetěz certifikátů zadat do jednoho souboru pomocí parametru --proxy-cert .

Poznámka

  • --custom-ca-cert je alias pro --proxy-cert. Oba parametry lze použít zaměnitelně. Předání obou parametrů ve stejném příkazu bude respektovat ten, který byl předán jako poslední.

Spusťte příkaz connect se zadaným parametrem --proxy-cert :

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

Ověření připojení clusteru

Spusťte následující příkaz:

az connectedk8s list --resource-group AzureArcTest --output table

Výstup:

Name           Location    ResourceGroup
-------------  ----------  ---------------
AzureArcTest1  eastus      AzureArcTest

Poznámka

Po zprovoznění clusteru trvá přibližně 5 až 10 minut, než se metadata clusteru (verze clusteru, verze agenta, počet uzlů atd.) zobrazí na stránce s přehledem prostředku Kubernetes s podporou Azure Arc na webu Azure Portal.

Tip

Nápovědu k řešení potíží při připojování clusteru najdete v tématu Diagnostika problémů s připojením pro clustery Kubernetes s podporou Azure Arc.

Zobrazení agentů Azure Arc pro Kubernetes

Kubernetes s podporou Azure Arc nasadí do azure-arc oboru názvů několik agentů.

  1. Prohlédněte si tato nasazení a pody pomocí:

    kubectl get deployments,pods -n azure-arc
    
  2. Ověřte, že jsou všechny pody ve Running stavu.

    Výstup:

     NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
     deployment.apps/cluster-metadata-operator   1/1     1            1           13d
     deployment.apps/clusterconnect-agent        1/1     1            1           13d
     deployment.apps/clusteridentityoperator     1/1     1            1           13d
     deployment.apps/config-agent                1/1     1            1           13d
     deployment.apps/controller-manager          1/1     1            1           13d
     deployment.apps/extension-manager           1/1     1            1           13d
     deployment.apps/flux-logs-agent             1/1     1            1           13d
     deployment.apps/kube-aad-proxy              1/1     1            1           13d
     deployment.apps/metrics-agent               1/1     1            1           13d
     deployment.apps/resource-sync-agent         1/1     1            1           13d
    
     NAME                                            READY   STATUS    RESTARTS   AGE
     pod/cluster-metadata-operator-9568b899c-2stjn   2/2     Running   0          13d
     pod/clusterconnect-agent-576758886d-vggmv       3/3     Running   0          13d
     pod/clusteridentityoperator-6f59466c87-mm96j    2/2     Running   0          13d
     pod/config-agent-7cbd6cb89f-9fdnt               2/2     Running   0          13d
     pod/controller-manager-df6d56db5-kxmfj          2/2     Running   0          13d
     pod/extension-manager-58c94c5b89-c6q72          2/2     Running   0          13d
     pod/flux-logs-agent-6db9687fcb-rmxww            1/1     Running   0          13d
     pod/kube-aad-proxy-67b87b9f55-bthqv             2/2     Running   0          13d
     pod/metrics-agent-575c565fd9-k5j2t              2/2     Running   0          13d
     pod/resource-sync-agent-6bbd8bcd86-x5bk5        2/2     Running   0          13d
    

Další informace o těchto agentech najdete v tématu Přehled agenta Kubernetes s podporou Azure Arc.

Vyčištění prostředků

Pomocí následujícího příkazu můžete odstranit prostředek Kubernetes s podporou Azure Arc, všechny přidružené konfigurační prostředky a všechny agenty spuštěné v clusteru pomocí Azure CLI:

az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest

Pokud se proces odstranění nezdaří, použijte následující příkaz k vynucení odstranění (přidání -y , pokud chcete obejít výzvu k potvrzení):

az connectedk8s delete -g AzureArcTest1 -n AzureArcTest --force

Tento příkaz můžete použít také v případě, že při vytváření nového nasazení clusteru dochází k problémům (kvůli tomu, že dříve vytvořené prostředky nebyly zcela odebrány).

Poznámka

Odstraněním prostředku Kubernetes s podporou Azure Arc pomocí Azure Portal se odeberou všechny přidružené prostředky konfigurace, ale neodeberou se žádné agenty spuštěné v clusteru. Osvědčeným postupem je odstranit prostředek Kubernetes s podporou Azure Arc místo az connectedk8s delete odstranění prostředku v Azure Portal.

Další kroky

V dalším článku se dozvíte, jak nasadit konfigurace do připojeného clusteru Kubernetes pomocí GitOps.