Share via


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-register myacrregistry 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:

  1. Maak het verbonden register.
  2. Implementeer de verbonden register arc-extensie.
  3. Controleer de implementatie van de verbonden registerextensie.
  4. 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.

  1. 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 resourcegroep myresourcegroup en de opslagplaats hello-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"
    

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).

  1. 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.

  1. 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 het service.clusterIP bereik van geldige SERVICE-IP's voor het Kubernetescluster in te stellen. Zorg ervoor dat het opgegeven service.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 het service.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:

  1. 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
  }
  1. 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 |
  1. 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:

  1. 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
  1. 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 naam hello-world van de installatiekopieën met de tag 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
    

Resources opschonen

Als u de geïmplementeerde verbonden registerextensie verwijdert, verwijdert u de bijbehorende verbonden registerpods en configuratie-instellingen.

  1. 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.

  1. 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 
    

Volgende stappen