Delen via


De Arc-extensie voor verbonden registers implementeren

In dit artikel leert u hoe u de verbonden registerextensie implementeert in een Kubernetes-cluster met Arc met behulp van Azure CLI.

De verbonden registerfunctie van Azure Container Registry maakt efficiënt beheer en toegang tot in containers geplaatste workloads mogelijk, zowel on-premises als op externe sites. Het implementeren van de verbonden register arc-extensie op Kubernetes-clusters met Arc vereenvoudigt het beheer en de toegang van deze workloads.

Vereiste voorwaarden

  • Een Azure Container Registry (ACR) met de Premium-servicelaag (SKU), met ten minste één opslagplaats en een verbonden register. Als u nog geen verbonden registerresource hebt, volgt u de stappen in Een verbonden register maken.

  • Een Kubernetes-cluster met Azure Arc.

  • De nieuwste versie van Azure CLI.

  • De nieuwste versies van de connectedk8s en k8s-extension Azure CLI-extensies. Voer de volgende opdrachten uit om deze extensies te installeren:

    az extension add --name k8s-extension
    az extension add --name connectedk8s
    

De verbonden registerextensie implementeren in het Kubernetes-cluster met Arc

Door de Arc-uitbreiding van het verbonden register te implementeren, kunt u container afbeeldingen en andere Open Container Initiative (OCI) artefacten 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).

Zie Een Kubernetes-clusterextensie met Azure Arc implementeren en beheren voor meer informatie over het implementeren van extensies voor Kubernetes-clusters met Azure Arc.

Genereer de verbindingsreeks en beveiligde instellingen JSON-bestand

Voor een veilige implementatie van de verbonden registerextensie genereert u de verbindingsreeks, inclusief een nieuw wachtwoord en de specificatie van het transportprotocol, en slaat u de details op in het protected-settings-extension.json bestand.

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

De verbonden registerextensie implementeren

Implementeer vervolgens de verbonden register extensie naar uw Kubernetes-cluster met Arc-functionaliteit en verwijzing naar het JSON-bestand dat u hebt gemaakt. Gebruik 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  
  --auto-upgrade-minor-version true

De clusterIP moet afkomstig zijn van het IP-adresbereik van het clustersubnet. De service.clusterIP parameter specificeert het IP-adres van de verbonden registerservice in het cluster. Zorg ervoor dat het IP-adres dat u opgeeft service.clusterIP 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 bereik zich niet binnen dit bereik bevindt, werkt u het bij naar een IP-adres dat zich zowel binnen het geldige bereik bevindt als momenteel niet wordt gebruikt door een andere service.

Aanbeveling

In dit voorbeeld worden automatische upgrades voor de verbonden registerextensie ingeschakeld wanneer er een nieuwe versie beschikbaar is. Als u liever niet automatisch een upgrade uitvoert, gebruikt u --auto-upgrade-minor-version false.

Als u een specifieke versie van de verbonden registerextensie wilt implementeren, neemt u de parameter op in de --version <version number> opdracht az-k8s-extension-create .

Implementatie van verbonden registerextensie controleren

Als u de implementatie van de verbonden registerextensie in het Kubernetes-cluster met Arc wilt controleren, voert u 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

Zie Details van de extensie weergeven voor een voorbeeld van de uitvoer.

Bekijk vervolgens de status en toestand van elke aangesloten registratie met de opdracht az acr connected-registry list :

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

U zou uitvoer moeten zien die lijkt op het volgende voorbeeld:

    | NAME | MODE | CONNECTION STATE | PARENT | LOGIN SERVER | LAST SYNC(UTC) |
    |------|------|------------------|--------|--------------|----------------|
    | myconnectedregistry | ReadWrite | online | myacrregistry | myacrregistry.azurecr.io | 2026-01-09 12:00:00 |
    | myreadonlyacr | ReadOnly | offline | myacrregistry | myacrregistry.azurecr.io | 2026-01-09 12:00:00 |

Gebruik az acr connected-registry show voor meer informatie over een specifiek verbonden register:

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

Met deze opdracht wordt uitvoer weergegeven die vergelijkbaar is met het volgende voorbeeld:

   | NAME                | MODE      | CONNECTION STATE | PARENT        | LOGIN SERVER             | LAST SYNC(UTC)      | SYNC SCHEDULE | SYNC WINDOW       |
   | ------------------- | --------- | ---------------- | ------------- | ------------------------ | ------------------- | ------------- | ----------------- |
   | myconnectedregistry | ReadWrite | online           | myacrregistry | myacrregistry.azurecr.io | 2026-01-09 12:00:00 | 0 0 * * *     | 00:00:00-23:59:59 |

Een pod uitrollen die gebruikmaakt van een image uit een verbonden register

Om een pod te implementeren die gebruikmaakt van een image uit het verbonden register binnen het cluster, voert u de bewerking uit vanaf het clusterknooppunt zelf.

  1. 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
    
  2. Implementeer de pod die gebruikmaakt van de gewenste installatiekopieën uit het verbonden register. In dit voorbeeld wordt het service.clusterIP-adres 192.100.100.1 en de imagenaam hello-world met tag latest gebruikt:

    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
    

De hulpbronnen opschonen

Als u het verbonden register niet meer wilt gebruiken, verwijdert u de extensie uit uw Kubernetes-cluster met Arc en verwijdert u vervolgens de verbonden registerresource.

  1. 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
    
  2. Voer de opdracht az acr connected-registry delete uit om de verbonden registerresource te verwijderen:

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