Quickstart: De verbonden register-arc-extensie implementeren (preview)
In deze quickstart leert u hoe u de connected registry Arc-extensie implementeert met behulp van de CLI UX met standaardinstellingen voor beveiliging en operationele integriteit.
Het verbonden register is een draaitabelprogramma voor edge-klanten, waardoor efficiënt beheer en toegang tot in containers geplaatste workloads mogelijk zijn, zowel on-premises als op externe sites. Door integratie met Azure Arc zorgt de service voor een naadloze en geïntegreerde ervaring voor levenscyclusbeheer voor op Kubernetes gebaseerde workloads in containers. Het implementeren van de verbonden register arc-extensie op Kubernetes-clusters met Arc vereenvoudigt het beheer en de toegang van deze workloads.
Vereisten
Stel de Azure CLI in om verbinding te maken met Azure en Kubernetes.
Maak of gebruik een bestaande Azure Container Registry (ACR) met quickstart.
Stel de firewalltoegang en communicatie tussen de ACR en het verbonden register in door de toegewezen gegevenseindpunten in te schakelen.
Maak of gebruik een bestaand AKS-cluster (Azure KubernetesService) met de zelfstudie.
Stel de verbinding tussen het Kubernetescluster en Azure Arc in door de quickstart te volgen.
Gebruik de opdracht k8s-extension om Kubernetesextensions te beheren.
az extension add --name k8s-extension
Registreer de vereiste Azure-resourceproviders in uw abonnement en gebruik Kubernetes met Azure Arc:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Een Azure-resourceprovider is een set REST-bewerkingen die functionaliteit voor een specifieke Azure-service inschakelen.
Opslagplaats in het ACR-register om te synchroniseren met het verbonden register.
az acr import --name myacrregistry --source mcr.microsoft.com/mcr/hello-world:latest --image hello-world:latest
De
hello-world
opslagplaats wordt gemaakt in het ACR-registermyacrregistry
om te synchroniseren met het verbonden register.
De verbonden register arc-extensie implementeren met standaardinstellingen voor veilig
Zodra aan de vereisten en de vereiste voorwaarden en onderdelen is voldaan, volgt u de gestroomlijnde benadering om een verbonden registerextensie veilig te implementeren op een Kubernetes-cluster met Arc met behulp van de volgende instellingen. Deze instellingen definiëren de volgende configuratie met https, alleen-lezen, vertrouwensdistributie en Cert Manager-service. Volg de stappen voor een geslaagde implementatie:
- Maak het verbonden register.
- Implementeer de verbonden register arc-extensie.
- Controleer de implementatie van de verbonden registerextensie.
- Implementeer een pod die gebruikmaakt van installatiekopieën uit het verbonden register.
Het verbonden register maken en synchroniseren met ACR
Het maken van het verbonden register om te synchroniseren met ACR is de basisstap voor het implementeren van de verbonden register arc-extensie.
Maak het verbonden register, dat wordt gesynchroniseerd met het ACR-register:
Als u een verbonden register wilt maken dat wordt gesynchroniseerd met het ACR-register
myconnectedregistry
myacrregistry
in de resourcegroepmyresourcegroup
en de opslagplaatshello-world
, kunt u de opdracht az acr connected-registry create uitvoeren:az acr connected-registry create --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --repository "hello-world"
- Met de opdracht az acr connected-registry create maakt u het verbonden register met de opgegeven opslagplaats.
- De opdracht az acr connected-registry create overschrijft acties als de benoemde
myscopemap
synchronisatiebereiktoewijzing bestaat en eigenschappen overschrijft als het benoemde synchronisatietokenmysynctoken
bestaat. - De opdracht az acr connected-registry create valideert een toegewezen gegevenseindpunt tijdens het maken van het verbonden register en biedt een opdracht om het toegewezen gegevenseindpunt in het ACR-register in te schakelen.
De verbonden register-Arc-extensie implementeren in het Kubernetes-cluster met Arc
Door de verbonden Registry Arc-extensie te implementeren, kunt u containerinstallatiekopieën en andere OCI-artefacten (Open Container Initiative) synchroniseren met uw ACR-register. De implementatie helpt de toegang tot registerartefacten te versnellen en maakt het bouwen van geavanceerde scenario's mogelijk. De implementatie van de extensie zorgt voor een veilige distributie van vertrouwen tussen het verbonden register en alle clientknooppunten in het cluster en installeert de cert-manager-service voor TLS-versleuteling (Transport Layer Security).
Het JSON-bestand met beveiligde instellingen voor verbindingsreeks en beveiligde instellingen genereren
Voor een veilige implementatie van de verbonden registerextensie genereert u de verbindingsreeks, inclusief een nieuw wachtwoord, transportprotocol en maakt u het
protected-settings-extension.json
bestand dat nodig is voor de extensie-implementatie met de opdracht 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
Notitie
De kat- en echoopdrachten maken het protected-settings-extension.json
bestand met de verbindingsreeks details, waarbij de inhoud van de verbindingsreeks in het protected-settings-extension.json
bestand wordt ingevoerd, een noodzakelijke stap voor de implementatie van de extensie. De opdracht az acr connected-registry get-settings genereert de verbindingsreeks, inclusief het maken van een nieuw wachtwoord en de specificatie van het transportprotocol.
De verbonden registerextensie implementeren
Implementeer de verbonden registerextensie met de opgegeven configuratiedetails met behulp van de opdracht 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
- De opdracht az k8s-extension create implementeert de verbonden registerextensie in het Kubernetescluster met de opgegeven configuratieparameters en het beveiligde instellingenbestand.
- Het zorgt voor een veilige distributie van vertrouwensrelaties tussen het verbonden register en alle clientknooppunten in het cluster en installeert de cert-manager-service voor TLS-versleuteling (Transport Layer Security).
- Het clusterIP moet afkomstig zijn van het IP-adresbereik van het AKS-clustersubnet. De
service.clusterIP
parameter specificeert het IP-adres van de verbonden registerservice in het cluster. Het is essentieel om hetservice.clusterIP
bereik van geldige SERVICE-IP's voor het Kubernetescluster in te stellen. Zorg ervoor dat het opgegevenservice.clusterIP
IP-adres binnen het toegewezen IP-bereik van de service valt dat is gedefinieerd tijdens de initiële configuratie van het cluster, meestal gevonden in de netwerkinstellingen van het cluster. Als hetservice.clusterIP
niet binnen dit bereik valt, moet het worden bijgewerkt naar een IP-adres dat zich zowel binnen het geldige bereik bevindt als niet momenteel wordt gebruikt door een andere service.
De implementatie van de verbonden registerextensie controleren
Volg de stappen om de implementatie van de verbonden registerextensie op het Kubernetescluster met Arc te controleren:
De implementatiestatus controleren
Voer de opdracht az k8s-extension show uit om de implementatiestatus van de verbonden registerextensie te controleren:
az k8s-extension show --name myconnectedregistry \
--cluster-name myarck8scluster \
--resource-group myresourcegroup \
--cluster-type connectedClusters
Voorbeelduitvoer
{
"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
}
De status en status van het verbonden register controleren
Voor elk verbonden register kunt u de status en status van het verbonden register bekijken met behulp van de opdracht az acr connected-registry list :
az acr connected-registry list --registry myacrregistry \ --output table
Voorbeelduitvoer
| 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 |
De specifieke details van het verbonden register controleren
Gebruik de opdracht az acr connected-registry show voor meer informatie over een specifiek verbonden register:
az acr connected-registry show --registry myacrregistry \
--name myreadonlyacr \
--output table
Voorbeelduitvoer
| 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 |
- Met de opdracht az k8s-extension show wordt de status van de extensie-implementatie gecontroleerd.
- De opdracht bevat ook details over de verbindingsstatus van het verbonden register, laatste synchronisatie, synchronisatievenster, synchronisatieschema en meer.
Een pod implementeren die gebruikmaakt van een installatiekopieën uit het verbonden register
Als u een pod wilt implementeren die gebruikmaakt van een installatiekopieën uit het verbonden register in het cluster, moet de bewerking worden uitgevoerd vanuit het clusterknooppunt zelf. Volg vervolgens deze stappen:
- Maak een geheim in het cluster om te verifiëren met het verbonden register:
Voer de opdracht kubectl create secret docker-registry uit om een geheim in het cluster te maken om te verifiëren met het verbonden register:
kubectl create secret docker-registry regcred --docker-server=192.100.100.1 --docker-username=mytoken --docker-password=mypassword
Implementeer de pod die gebruikmaakt van de gewenste installatiekopieën uit het verbonden register met behulp van de waarde van het service.clusterIP-adres
192.100.100.1
van het verbonden register en de naamhello-world
van de installatiekopieën met de taglatest
: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
Resources opschonen
Als u de geïmplementeerde verbonden registerextensie verwijdert, verwijdert u de bijbehorende verbonden registerpods en configuratie-instellingen.
De verbonden registerextensie verwijderen
Voer de opdracht az k8s-extension delete uit om de verbonden registerextensie te verwijderen:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClusters
Als u het geïmplementeerde verbonden register verwijdert, verwijdert u het verbonden cloudexemplaren van het register en de configuratiegegevens.
Het verbonden register verwijderen
Voer de opdracht az acr connected-registry delete uit om het verbonden register te verwijderen:
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup