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 rejestrzemyacrregistry
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:
- Utwórz połączony rejestr.
- Wdróż rozszerzenie połączonego rejestru Arc.
- Sprawdź wdrożenie połączonego rozszerzenia rejestru.
- 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.
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 rejestremmyacrregistry
ACR w grupiemyresourcegroup
zasobów i repozytoriumhello-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 nazwiemysynctoken
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).
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.
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 dlaservice.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:
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
}
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 |
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:
- 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
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 nazwyhello-world
obrazu z tagiemlatest
: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.
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.
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