Udostępnij za pośrednictwem


Szybki start: wdrażanie połączonego rozszerzenia Arc rejestru (wersja zapoznawcza)

Z tego przewodnika Szybki start dowiesz się, jak wdrożyć rozszerzenie Usługi Arc połączonego rejestru przy użyciu środowiska użytkownika interfejsu wiersza polecenia z ustawieniami bezpiecznymi domyślnie, aby zapewnić niezawodne zabezpieczenia i integralność operacyjną.

Połączony rejestr to kluczowe narzędzie dla klientów brzegowych, które umożliwia efektywne zarządzanie konteneryzowanymi obciążeniami, zarówno lokalnie, jak i w lokacjach zdalnych. Dzięki integracji z usługą Azure Arc usługa zapewnia bezproblemowe i ujednolicone środowisko zarządzania cyklem życia dla konteneryzowanych obciążeń opartych na platformie Kubernetes. Wdrażanie rozszerzenia usługi Arc połączonego rejestru w klastrach Kubernetes z obsługą usługi Arc upraszcza zarządzanie tymi obciążeniami i dostęp do nich.

Wymagania wstępne

  • Skonfiguruj interfejs wiersza polecenia platformy Azure, aby nawiązać połączenie z platformą Azure i platformą Kubernetes.

  • Utwórz istniejącą usługę Azure Container Registry (ACR) lub użyj jej w przewodniku Szybki start.

  • Skonfiguruj dostęp zapory i komunikację między usługą ACR i połączonym rejestrem, włączając dedykowane punkty końcowe danych.

  • Utwórz lub użyj istniejącego klastra usługi Azure KubernetesService (AKS) z samouczkiem .

  • Skonfiguruj połączenie między klastrem Kubernetescluster i usługą Azure Arc, postępując zgodnie z przewodnikiem Szybki start.

  • Użyj polecenia k8s-extension, aby zarządzać rozszerzeniami Kubernetesextensions.

    az extension add --name k8s-extension
    
  • Zarejestruj wymaganych dostawców zasobów platformy Azure w ramach subskrypcji i użyj platformy Kubernetes z obsługą usługi Azure Arc:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    

    Dostawca zasobów platformy Azure to zestaw operacji REST, które umożliwiają korzystanie z funkcji dla określonej usługi platformy Azure.

  • Repozytorium w rejestrze usługi ACR do synchronizacji z połączonym rejestrem.

    az acr import --name myacrregistry --source mcr.microsoft.com/mcr/hello-world:latest --image hello-world:latest
    

    Repozytorium hello-world jest tworzone w rejestrze myacrregistry usługi ACR w celu synchronizacji z rejestrem Connected.

Wdrażanie połączonego rozszerzenia Arc rejestru z ustawieniami bezpiecznymi domyślnie

Po spełnieniu wymagań wstępnych i niezbędnych warunków i składników należy postępować zgodnie z usprawnioną metodą bezpiecznego wdrażania połączonego rozszerzenia rejestru w klastrze Kubernetes z obsługą usługi Arc przy użyciu następujących ustawień. Te ustawienia definiują następującą konfigurację przy użyciu protokołu HTTPS, tylko do odczytu, dystrybucji zaufania i usługi Menedżera certyfikatów. Wykonaj kroki pomyślnego wdrożenia:

  1. Utwórz połączony rejestr.
  2. Wdróż rozszerzenie połączonego rejestru Arc.
  3. Sprawdź wdrożenie połączonego rozszerzenia rejestru.
  4. Wdróż zasobnik używający obrazu z połączonego rejestru.

Tworzenie połączonego rejestru i synchronizowanie z usługą ACR

Tworzenie połączonego rejestru do synchronizacji z usługą ACR jest podstawowym krokiem wdrażania połączonego rozszerzenia arc rejestru.

  1. Utwórz połączony rejestr, który synchronizuje się z rejestrem usługi ACR:

    Aby utworzyć połączony rejestr myconnectedregistry , który synchronizuje się z rejestrem myacrregistry ACR w grupie myresourcegroup zasobów i repozytorium hello-world, możesz uruchomić polecenie az acr connected-registry create :

    az acr connected-registry create --registry myacrregistry \ 
    --name myconnectedregistry \
    --resource-group myresourcegroup \ 
    --repository "hello-world"
    
  • Polecenie az acr connected-registry create tworzy połączony rejestr z określonym repozytorium.
  • Polecenie az acr connected-registry create zastępuje akcje, jeśli mapa zakresu synchronizacji o nazwie myscopemap istnieje i zastępuje właściwości, jeśli token synchronizacji o nazwie mysynctoken istnieje.
  • Polecenie az acr connected-registry create weryfikuje dedykowany punkt końcowy danych podczas tworzenia połączonego rejestru i udostępnia polecenie umożliwiające dedykowany punkt końcowy danych w rejestrze usługi ACR.

Wdrażanie rozszerzenia usługi Arc połączonego rejestru w klastrze Kubernetes z włączoną obsługą usługi Arc

Wdrażając rozszerzenie Usługi Arc połączonego rejestru, można synchronizować obrazy kontenerów i inne artefakty Open Container Initiative (OCI) z rejestrem usługi ACR. Wdrożenie ułatwia przyspieszenie dostępu do artefaktów rejestru i umożliwia tworzenie zaawansowanych scenariuszy. Wdrożenie rozszerzenia zapewnia bezpieczną dystrybucję zaufania między połączonym rejestrem a wszystkimi węzłami klienta w klastrze oraz instaluje usługę cert-manager na potrzeby szyfrowania tls (Transport Layer Security).

  1. Generowanie parametrów połączenia i pliku JSON ustawień chronionych

    W celu bezpiecznego wdrożenia połączonego rozszerzenia rejestru wygeneruj parametry połączenia, w tym nowe hasło, protokół transportu i utwórz protected-settings-extension.json plik wymagany do wdrożenia rozszerzenia za pomocą polecenia az acr connected-registry get-settings:

    cat << EOF > protected-settings-extension.json
    {
      "connectionString": "$(az acr connected-registry get-settings \
      --name myconnectedregistry \
      --registry myacrregistry \
      --parent-protocol https \
      --generate-password 1 \
      --query ACR_REGISTRY_CONNECTION_STRING --output tsv --yes)"
    }
    EOF
    cat << EOF > protected-settings-extension.json
    {
      "connectionString": "$(az acr connected-registry get-settings \
      --name myconnectedregistry \
      --registry myacrregistry \
      --parent-protocol https \
      --generate-password 1 \
      --query ACR_REGISTRY_CONNECTION_STRING --output tsv --yes)"
    }
    EOF
    echo "{\"connectionString\":\"$(az acr connected-registry get-settings \
    --name myconnectedregistry \
    --registry myacrregistry \
    --parent-protocol https \
    --generate-password 1 \
    --query ACR_REGISTRY_CONNECTION_STRING \
    --output tsv \
    --yes | tr -d '\r')\" }" > settings.json

Uwaga

Polecenia cat i echo tworzą protected-settings-extension.json plik ze szczegółami parametry połączenia, wstrzykiwając zawartość parametry połączenia do protected-settings-extension.json pliku, niezbędny krok wdrożenia rozszerzenia. Polecenie az acr connected-registry get-settings generuje parametry połączenia, w tym utworzenie nowego hasła i specyfikację protokołu transportowego.

  1. Wdrażanie połączonego rozszerzenia rejestru

    Wdróż rozszerzenie połączonego rejestru z określonymi szczegółami konfiguracji przy użyciu polecenia az k8s-extension create :

  az k8s-extension create --cluster-name myarck8scluster \ 
  --cluster-type connectedClusters \
  --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \
  --name myconnectedregistry \
  --resource-group myresourcegroup \ 
  --config service.clusterIP=192.100.100.1 \ 
  --config-protected-file protected-settings-extension.json  
  • Polecenie az k8s-extension create wdraża połączone rozszerzenie rejestru na platformie Kubernetescluster z podanymi parametrami konfiguracji i plikiem ustawień chronionych.
  • Zapewnia bezpieczną dystrybucję zaufania między połączonym rejestrem i wszystkimi węzłami klienta w klastrze oraz instaluje usługę cert-manager na potrzeby szyfrowania tls (Transport Layer Security).
  • KlasterIP musi pochodzić z zakresu adresów IP podsieci klastra usługi AKS. Parametr service.clusterIP określa adres IP połączonej usługi rejestru w klastrze. Ważne jest, aby ustawić service.clusterIP zakres prawidłowych adresów IP usługi dla klastra Kubernetescluster. Upewnij się, że adres IP określony dla service.clusterIP należy do wyznaczonego zakresu adresów IP usługi zdefiniowanego podczas początkowej konfiguracji klastra, zazwyczaj w ustawieniach sieci klastra. service.clusterIP Jeśli element nie znajduje się w tym zakresie, musi zostać zaktualizowany do adresu IP, który znajduje się zarówno w prawidłowym zakresie, jak i obecnie nie jest używany przez inną usługę.

Weryfikowanie wdrożenia połączonego rozszerzenia rejestru

Aby sprawdzić wdrożenie połączonego rozszerzenia rejestru w klastrze Kubernetescluster z obsługą usługi Arc, wykonaj następujące kroki:

  1. Weryfikowanie stanu wdrożenia

    Uruchom polecenie az k8s-extension show, aby sprawdzić stan wdrożenia połączonego rozszerzenia rejestru:

  az k8s-extension show --name myconnectedregistry \ 
  --cluster-name myarck8scluster \
  --resource-group myresourcegroup \
  --cluster-type connectedClusters

Przykładowe dane wyjściowe

    {
    "aksAssignedIdentity": null,
    "autoUpgradeMinorVersion": true,
    "configurationProtectedSettings": {
      "connectionString": ""
    },
    "configurationSettings": {
      "pvc.storageClassName": "standard",
      "pvc.storageRequest": "250Gi",
      "service.clusterIP": "[your service cluster ip]"
    },
    "currentVersion": "0.11.0",
    "customLocationSettings": null,
    "errorInfo": null,
    "extensionType": "microsoft.containerregistry.connectedregistry",
    "id": "/subscriptions/[your subscription id]/resourceGroups/[your resource group name]/providers/Microsoft.Kubernetes/connectedClusters/[your arc cluster name]/providers/Microsoft.KubernetesConfiguration/extensions/[your extension name]",
    "identity": {
      "principalId": "[identity principal id]",
      "tenantId": null,
      "type": "SystemAssigned"
    },
    "isSystemExtension": false,
    "name": "[your extension name]",
    "packageUri": null,
    "plan": null,
    "provisioningState": "Succeeded",
    "releaseTrain": "preview",
    "resourceGroup": "[your resource group]",
    "scope": {
      "cluster": {
        "releaseNamespace": "connected-registry"
      },
      "namespace": null
    },
    "statuses": [],
    "systemData": {
      "createdAt": "2024-07-12T18:17:51.364427+00:00",
      "createdBy": null,
      "createdByType": null,
      "lastModifiedAt": "2024-07-12T18:22:42.156799+00:00",
      "lastModifiedBy": null,
      "lastModifiedByType": null
    },
    "type": "Microsoft.KubernetesConfiguration/extensions",
    "version": null
  }
  1. Weryfikowanie stanu i stanu połączonego rejestru

    Dla każdego połączonego rejestru można wyświetlić stan i stan połączonego rejestru za pomocą polecenia az acr connected-registry list :

        az acr connected-registry list --registry myacrregistry \
        --output table
    

Przykładowe dane wyjściowe

    | NAME | MODE | CONNECTION STATE | PARENT | LOGIN SERVER | LAST SYNC(UTC) |
    |------|------|------------------|--------|--------------|----------------|
    | myconnectedregistry | ReadWrite | online | myacrregistry | myacrregistry.azurecr.io | 2024-05-09 12:00:00 |
    | myreadonlyacr | ReadOnly | offline | myacrregistry | myacrregistry.azurecr.io | 2024-05-09 12:00:00 |
  1. Weryfikowanie określonych szczegółów połączonego rejestru

    Aby uzyskać szczegółowe informacje na temat określonego połączonego rejestru, użyj polecenia az acr connected-registry show :

  az acr connected-registry show --registry myacrregistry \
  --name myreadonlyacr \ 
  --output table

Przykładowe dane wyjściowe

   | NAME                | MODE      | CONNECTION STATE | PARENT        | LOGIN SERVER             | LAST SYNC(UTC)      | SYNC SCHEDULE | SYNC WINDOW       |
   | ------------------- | --------- | ---------------- | ------------- | ------------------------ | ------------------- | ------------- | ----------------- |
   | myconnectedregistry | ReadWrite | online           | myacrregistry | myacrregistry.azurecr.io | 2024-05-09 12:00:00 | 0 0 * * *     | 00:00:00-23:59:59 |
  • Polecenie az k8s-extension show weryfikuje stan wdrożenia rozszerzenia.
  • Polecenie zawiera również szczegółowe informacje o stanie połączenia połączonego rejestru, ostatniej synchronizacji, oknie synchronizacji, harmonogramie synchronizacji i nie tylko.

Wdrażanie zasobnika korzystającego z obrazu z połączonego rejestru

Aby wdrożyć zasobnik używający obrazu z połączonego rejestru w klastrze, należy wykonać operację z poziomu samego węzła klastra. Wykonaj te kroki:

  1. Utwórz wpis tajny w klastrze, aby uwierzytelnić się za pomocą połączonego rejestru:

Uruchom polecenie kubectl create secret docker-registry, aby utworzyć wpis tajny w klastrze w celu uwierzytelnienia w rejestrze Połączony:

kubectl create secret docker-registry regcred --docker-server=192.100.100.1 --docker-username=mytoken --docker-password=mypassword
  1. Wdróż zasobnik używający żądanego obrazu z połączonego rejestru przy użyciu wartości adresu 192.100.100.1 service.clusterIP połączonego rejestru oraz nazwy hello-world obrazu z tagiem latest:

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-world-deployment
      labels:
        app: hello-world
    spec:
      selector:
        matchLabels:
          app: hello-world
      replicas: 1
      template:
        metadata:
          labels:
            app: hello-world
        spec:
          imagePullSecrets:
            - name: regcred
          containers:
            - name: hello-world
              image: 192.100.100.1/hello-world:latest
    EOF
    

Czyszczenie zasobów

Usunięcie wdrożonego połączonego rozszerzenia rejestru powoduje usunięcie odpowiednich połączonych zasobników rejestru i ustawień konfiguracji.

  1. Usuwanie połączonego rozszerzenia rejestru

    Uruchom polecenie az k8s-extension delete, aby usunąć połączone rozszerzenie rejestru:

    az k8s-extension delete --name myconnectedregistry 
    --cluster-name myarcakscluster \ 
    --resource-group myresourcegroup \ 
    --cluster-type connectedClusters
    

Usunięcie wdrożonego połączonego rejestru powoduje usunięcie połączonego wystąpienia chmury rejestru i jego szczegółów konfiguracji.

  1. Usuwanie połączonego rejestru

    Uruchom polecenie az acr connected-registry delete, aby usunąć połączony rejestr:

    az acr connected-registry delete --registry myacrregistry \
    --name myconnectedregistry \
    --resource-group myresourcegroup 
    

Następne kroki