Rychlý start: Připojení existujícího clusteru Kubernetes do Služby Azure Arc

Začínáme s Kubernetes s podporou Azure Arc pomocí Azure CLI nebo Azure PowerShellu pro připojení existujícího clusteru Kubernetes k Azure Arc

Koncepční přehled připojení clusterů k Azure Arc najdete v přehledu agenta Kubernetes s podporou Azure Arc. Pokud si chcete vyzkoušet věci v ukázkovém nebo praktickém prostředí, navštivte jumpstart služby Azure Arc.

Požadavky

Kromě těchto požadavků nezapomeňte splnit všechny požadavky na síť pro Kubernetes s podporou Azure Arc.

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

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

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

  • Nejnovější verze Azure CLI.

  • Spuštěním následujícího příkazu nainstalujte nejnovější verzi rozšíření Azure CLI connectedk8s :

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

  • Alespoň 850 MB zdarma pro agenty Arc, kteří budou nasazeni v clusteru, a kapacitu pro využití přibližně 7 % jednoho procesoru.

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

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 zobrazit RegistrationState stav těchto oborů názvů na Registered.

Vytvoření skupiny zdrojů

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

Spuštěním následujícího příkazu připojte cluster. Tento příkaz nasadí agenty Azure Arc do clusteru a nainstaluje Helm v. 3.6.3 do .azure složky počítače pro nasazení. Tato instalace Helmu 3 se používá jenom pro Azure Arc a neodebere nebo nezmění žádné dříve nainstalované verze Helmu na počítači.

V tomto příkladu je název clusteru AzureArcTest1.

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

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 s podporou Služby 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é

Pokud nasazení selže kvůli chybě vypršení časového limitu, podrobnosti o řešení tohoto problému najdete v průvodci odstraňováním potíží.

Připojení pomocí odchozího proxy serveru

Pokud je váš cluster za odchozím proxy serverem, musí se požadavky směrovat přes odchozí proxy server.

  1. Na počítači nasazení nastavte proměnné prostředí potřebné pro Azure CLI tak, aby používaly 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. V clusteru Kubernetes spusťte příkaz connect se zadanými proxy-https parametry a proxy-http parametry. Pokud je váš proxy server nastavený pomocí protokolu 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á jenom 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 CIDR a koncových bodů čárkami odděleným způsobem, aby veškerá komunikace z agentů s těmito koncovými body nepřešla 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, ve kterých mají všechny služby hodnoty ClusterIP v rozsahu 10.0.0.0/16. Hodnota, pro --proxy-skip-range kterou se má zadat, je 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc.
  • --proxy-http, --proxy-httpsa --proxy-skip-range očekává se u většiny 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ů agenta.
  • 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 jenom důvěryhodný certifikát bez vstupů koncového bodu proxy serveru, az connectedk8s connect je možné spustit pouze se --proxy-cert zadaným vstupem. V případě, že se očekává více důvěryhodných certifikátů, je možné pomocí parametru --proxy-cert poskytnout kombinovaný řetěz certifikátů v jednom souboru.

Poznámka:

  • --custom-ca-cert je alias pro --proxy-cert. Oba parametry se dají zaměnitelně. Předání obou parametrů ve stejném příkazu bude respektovat poslední předaný parametr.

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í ke 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. Zobrazte 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 přehledu 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 proces odstranění selže, použijte následující příkaz k vynucení odstranění (přidání -y , pokud chcete vynechat potvrzovací výzvu):

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

Tento příkaz se dá 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 nejsou úplně odebrány).

Poznámka:

Odstraněním prostředku Kubernetes s podporou Služby Azure Arc pomocí webu Azure Portal se odeberou 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 podporou Azure Arc místo az connectedk8s delete odstranění prostředku na webu Azure Portal.

Další kroky