Rychlý start: Připojení existujícího clusteru Kubernetes pro Azure Arc

V tomto rychlém startu se dozvíte o výhodách kubernetes s podporou Azure Arc a o tom, jak připojit existující cluster Kubernetes k Azure Arc. Koncepční přehled připojení clusterů k Azure Arc najdete v článku architektura agenta Kubernetes s podporou Azure Arc s podporou kubernetes.

Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.

Předpoklady

  • Instalace nebo upgrade Azure CLI na verzi >= 2.16.0

  • Nainstalujte rozšíření Azure CLI connectedk8s verze >= 1.2.0:

    az extension add --name connectedk8s
    
  • Přihlaste se k Azure CLI pomocí identity (uživatele nebo instančního objektu), kterou chcete použít pro připojení clusteru k Azure Arc.

    • Použitá identita musí mít alespoň oprávnění Ke čtení a zápisu pro Azure Arc s povolenou identitou Kubernetes ( Microsoft.Kubernetes/connectedClusters ).
    • Integrovaný cluster Kubernetes – Azure Arc onboarding je užitečný pro připojování ve velkém měřítku, protože má podrobná oprávnění potřebná jenom k připojení clusterů k Azure Arc. Tato role nemá oprávnění k aktualizaci, odstranění nebo úpravě jiných clusterů nebo jiných prostředků Azure.
  • 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

    • Cluster Kubernetes řízený své vlastní s využitím rozhraní API clusteru

    • Pokud chcete cluster OpenShift připojit ke clusteru Azure Arc, před spuštěním příkazu je potřeba v clusteru spustit následující az connectedk8s connect příkaz:

      oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
      

    Poznámka

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

  • Soubor kubeconfig a kontext odkazující na cluster.

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

Důležité

Azure Arc agenti k funkci vyžadují následující odchozí https://:443 adresy URL. Pro musí být pro odchozí přístup na bráně firewall a proxy serveru povolené webové *.servicebus.windows.net protokolu.

Koncový bod (DNS) Description
https://management.azure.com (pro Azure Cloud), https://management.usgovcloudapi.net (pro Azure US Government) Agent se musí připojit k Azure a zaregistrovat 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í stavu a načtení informací o konfiguraci.
https://login.microsoftonline.com, login.windows.net (pro Azure Cloud), https://login.microsoftonline.us (pro Azure US Government) Vyžaduje se k načtení a aktualizaci Azure Resource Manager tokenů.
https://mcr.microsoft.com, https://*.data.mcr.microsoft.com Vyžaduje se pro vyžadování imagí kontejnerů pro Azure Arc agenty.
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í regionálního koncového bodu pro vyžadová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 pro vyžadování certifikátů spravované identity přiřazených systémem.
*.servicebus.windows.net, guestnotificationservice.azure.com, *.guestnotificationservice.azure.com, sts.windows.net Pro clusterové Připojení a pro scénáře založené na vlastním umístění.
https://k8connecthelm.azureedge.net az connectedk8s connect používá Helm 3 k nasazení Azure Arc agentů v clusteru Kubernetes. Tento koncový bod je potřeba ke stažení klienta Helm, aby se usnadnilo nasazení chartu Helm agenta.

1. Registrace zprostředkovatelů Azure Arc Kubernetes s podporou

  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 byste měli vidět, že RegistrationState se stav těchto oborů názvů změní na Registered .

2. 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

3. 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 k Azure CLI přihlášení pomocí objektu služby, je potřeba nastavit další parametr pro povolení funkce 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 umístění vytvoří prostředek Kubernetes Azure Arc s povoleným přístupem ve stejném umístění jako skupina prostředků. Pokud chcete vytvořit Azure Arc Kubernetes s povoleným přístupem v jiném umístění, zadejte při spuštění příkazu nebo --location <region> -l <region> az connectedk8s connect .

4a. Připojení používá odchozí proxy server

Pokud se váš cluster nachází za odchozí proxy server, Azure CLI a agenti Kubernetes s podporou Azure Arc potřebují směrovat své požadavky přes odchozí proxy server.

  1. Nastavte proměnné prostředí potřebné pro Azure CLI pro použití odchozích 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 parametry proxy serveru:

    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é požadavky, jako jsou požadavky zahrnující komunikaci mezi službou a službou v clusteru, musí být oddělené od provozu, který je směrován přes proxy server pro odchozí komunikaci. Parametr lze použít k určení rozsahu CIDR a koncových bodů čárkami odděleným způsobem, aby komunikace z agentů s těmito koncovými body nebyla přes --proxy-skip-range odchozí proxy server. Jako hodnotu tohoto parametru je třeba zadat minimálně rozsah CIDR služeb v clusteru. Řekněme například, že vrátí seznam služeb, ve kterých mají všechny služby hodnoty kubectl get svc -A ClusterIP v rozsahu 10.0.0.0/16 . Hodnota, která se má zadat --proxy-skip-range pro , je 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc .
    • --proxy-httpU většiny prostředí odchozích proxy serverů se --proxy-https --proxy-skip-range očekávají , a . --proxy-cert se vyžaduje pouze v případě, že potřebujete vložit důvěryhodné certifikáty očekávané proxy serverem do úložiště důvěryhodných certifikátů podů agenta.
    • Odchozí proxy server musí být nakonfigurovaný tak, aby povoloval připojení websocket.

5. Ověřte 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 připojení clusteru trvá přibližně 5 až 10 minut, než se na stránce přehledu v prostředku Kubernetes s podporou ARC Azure v Azure Portal zobrazí stránka s přehledem pro prostředky clusteru.

6. zobrazení agentů Azure ARC pro Kubernetes

Kubernetes s podporou ARC Azure nasadí několik operátorů do azure-arc oboru názvů.

  1. Zobrazit tato nasazení a lusky pomocí:

    kubectl get deployments,pods -n azure-arc
    
  2. Ověřte, že všechny lusky jsou 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
     

Koncepční přehled těchto agentů je k dispozici zde.

7. vyčištění prostředků

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

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

Poznámka

Odstranění prostředku Kubernetes s povoleným ARC Azure pomocí Azure Portal odebere všechny přidružené konfigurační prostředky , ale neodebere žádné agenty spuštěné v clusteru. Osvědčeným postupem je odstranit prostředek Kubernetes s povoleným ARC Azure pomocí az connectedk8s delete místo Azure Portal.

Další kroky

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