Udostępnij za pomocą


Szybki start: wdrażanie połączonego rozszerzenia Arc rejestru

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

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 w zakresie prawidłowych adresów IP usługi dla klastra Kubernetes. 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