Rychlý start: Nasazení připojeného rozšíření Arc registru (Preview)

V tomto rychlém startu se dozvíte, jak nasadit rozšíření Připojeného registru Arc pomocí uživatelského rozhraní příkazového řádku s výchozím nastavením zabezpečeného zabezpečení, abyste zajistili robustní zabezpečení a provozní integritu.

Připojený registr je kontingenční nástroj pro hraniční zákazníky, který umožňuje efektivní správu a přístup ke kontejnerizovaným úlohám, ať už místně nebo ve vzdálených lokalitách. Díky integraci se službou Azure Arc zajišťuje služba bezproblémové a jednotné prostředí pro správu životního cyklu pro kontejnerizované úlohy založené na Kubernetes. Nasazení připojeného rozšíření Registru Arc v clusterech Kubernetes s podporou Arc zjednodušuje správu a přístup k těmto úlohám.

Požadavky

  • Nastavte Azure CLI pro připojení k Azure a Kubernetes.

  • Vytvořte nebo použijte existující službu Azure Container Registry (ACR) s rychlým startem .

  • Nastavte přístup k bráně firewall a komunikaci mezi ACR a připojeným registrem povolením vyhrazených datových koncových bodů.

  • V tomto kurzu vytvořte nebo použijte existující cluster Azure KubernetesService (AKS).

  • Podle rychlého startu nastavte připojení mezi Kubernetescluster a Azure Arc.

  • Ke správě Kubernetesextensions použijte příkaz k8s-extension.

    az extension add --name k8s-extension
    
  • Zaregistrujte požadované poskytovatele prostředků Azure ve vašem předplatném a použijte Kubernetes s podporou Azure Arc:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    

    Poskytovatel prostředků Azure je sada operací REST, které umožňují funkce pro konkrétní službu Azure.

  • Úložiště v registru ACR pro synchronizaci s připojeným registrem.

    az acr import --name myacrregistry --source mcr.microsoft.com/mcr/hello-world:latest --image hello-world:latest
    

    Úložiště hello-world se vytvoří v registru myacrregistry ACR pro synchronizaci s připojeným registrem.

Nasazení připojeného rozšíření Registru Arc s výchozím nastavením zabezpečení

Jakmile jsou splněné požadavky a nezbytné podmínky a komponenty, postupujte podle zjednodušeného přístupu k bezpečnému nasazení připojeného rozšíření registru do clusteru Kubernetes s podporou Arc pomocí následujících nastavení. Tato nastavení definují následující konfiguraci pomocí protokolu HTTPS, jen pro čtení, distribuce důvěryhodnosti a služby Cert Manager. Postupujte podle kroků pro úspěšné nasazení:

  1. Vytvořte připojený registr.
  2. Nasaďte připojené rozšíření Registru Arc.
  3. Ověřte nasazení připojeného rozšíření registru.
  4. Nasaďte pod, který používá image z připojeného registru.

Vytvoření připojeného registru a synchronizace s ACR

Vytvoření připojeného registru pro synchronizaci s ACR je základním krokem pro nasazení připojeného rozšíření registru Arc.

  1. Vytvořte připojený registr, který se synchronizuje s registrem ACR:

    Pokud chcete vytvořit připojený registr myconnectedregistry , který se synchronizuje s registrem myacrregistry ACR ve skupině myresourcegroup prostředků a úložišti hello-world, můžete spustit příkaz az acr connected-registry create :

    az acr connected-registry create --registry myacrregistry \ 
    --name myconnectedregistry \
    --resource-group myresourcegroup \ 
    --repository "hello-world"
    
  • Příkaz az acr connected-registry create vytvoří připojený registr se zadaným úložištěm.
  • Příkaz az acr connected-registry create přepíše akce, pokud mapování oboru synchronizace s názvem myscopemap existuje, a přepíše vlastnosti, pokud existuje token mysynctoken synchronizace.
  • Příkaz az acr connected-registry create během vytváření připojeného registru ověří vyhrazený datový koncový bod a poskytne příkaz, který povolí vyhrazený datový koncový bod v registru ACR.

Nasazení připojeného rozšíření Registru Arc v clusteru Kubernetes s podporou Arc

Nasazením připojeného rozšíření Registry Arc můžete synchronizovat image kontejnerů a další artefakty OCI (Open Container Initiative) s registrem ACR. Nasazení pomáhá urychlit přístup k artefaktům registru a umožňuje vytváření pokročilých scénářů. Nasazení rozšíření zajišťuje zabezpečenou distribuci důvěryhodnosti mezi připojeným registrem a všemi klientskými uzly v clusteru a nainstaluje službu cert-manager pro šifrování TLS (Transport Layer Security).

  1. Vygenerování souboru JSON připojovacího řetězce a chráněného nastavení

    Pro zabezpečené nasazení připojeného rozšíření registru vygenerujte připojovací řetězec, včetně nového hesla, přenosového protokolu a vytvořte protected-settings-extension.json soubor potřebný pro nasazení rozšíření pomocí příkazu 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

Poznámka:

Příkazy cat a echo vytvoří protected-settings-extension.json soubor s podrobnostmi připojovací řetězec a vloží do souboru obsah připojovací řetězecprotected-settings-extension.json, nezbytný krok pro nasazení rozšíření. Příkaz az acr connected-registry get-settings vygeneruje připojovací řetězec, včetně vytvoření nového hesla a specifikace přenosového protokolu.

  1. Nasazení připojeného rozšíření registru

    Nasaďte připojené rozšíření registru se zadanými podrobnostmi konfigurace pomocí příkazu 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  
  • Příkaz az k8s-extension create nasadí připojené rozšíření registru na Kubernetescluster se zadanými parametry konfigurace a souborem chráněných nastavení.
  • Zajišťuje zabezpečenou distribuci důvěryhodnosti mezi připojeným registrem a všemi klientskými uzly v clusteru a nainstaluje službu cert-manager pro šifrování TLS (Transport Layer Security).
  • Ip adresa clusteru musí být z rozsahu IP adres podsítě clusteru AKS. Parametr service.clusterIP určuje IP adresu připojené služby registru v rámci clusteru. Je nezbytné nastavit service.clusterIP rozsah platných IP adres služby pro Kubernetescluster. Ujistěte se, že IP adresa zadaná pro service.clusterIP spadá do určeného rozsahu IP adres služby definovaného během počáteční konfigurace clusteru, obvykle se nachází v nastavení sítě clusteru. service.clusterIP Pokud tento rozsah není v tomto rozsahu, musí být aktualizován na IP adresu, která je v platném rozsahu a aktuálně ji nepoužívá jiná služba.

Ověření nasazení připojeného rozšíření registru

Pokud chcete ověřit nasazení připojeného rozšíření registru v Kubernetescluster s podporou Arc, postupujte takto:

  1. Ověření stavu nasazení

    Spuštěním příkazu az k8s-extension show zkontrolujte stav nasazení připojeného rozšíření registru:

  az k8s-extension show --name myconnectedregistry \ 
  --cluster-name myarck8scluster \
  --resource-group myresourcegroup \
  --cluster-type connectedClusters

Příklad výstupu

    {
    "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. Ověření stavu a stavu připojeného registru

    Pro každý připojený registr můžete pomocí příkazu az acr connected-registry list zobrazit stav a stav připojeného registru:

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

Příklad výstupu

    | 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. Ověření konkrétních podrobností připojeného registru

    Podrobnosti o konkrétním připojeném registru najdete pomocí příkazu az acr connected-registry show :

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

Příklad výstupu

   | 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 |
  • Příkaz az k8s-extension show ověří stav nasazení rozšíření.
  • Příkaz také poskytuje podrobnosti o stavu připojení připojeného registru, poslední synchronizaci, okně synchronizace, plánu synchronizace a dalších.

Nasazení podu, který používá image z připojeného registru

Pokud chcete nasadit pod, který používá image z připojeného registru v clusteru, musí být operace provedena přímo v samotném uzlu clusteru. Postupujte následovně:

  1. Vytvořte v clusteru tajný klíč pro ověření pomocí připojeného registru:

Spuštěním příkazu kubectl create secret docker-registry vytvořte v clusteru tajný kód pro ověření pomocí připojeného registru:

kubectl create secret docker-registry regcred --docker-server=192.100.100.1 --docker-username=mytoken --docker-password=mypassword
  1. Nasaďte pod, který používá požadovanou image z připojeného registru, pomocí hodnoty service.clusterIP adresy 192.100.100.1 připojeného registru a název hello-world image se značkou 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
    

Vyčištění prostředků

Odstraněním nasazeného připojeného rozšíření registru odeberete odpovídající připojené pody registru a nastavení konfigurace.

  1. Odstranění připojeného rozšíření registru

    Spuštěním příkazu az k8s-extension delete odstraňte připojené rozšíření registru:

    az k8s-extension delete --name myconnectedregistry 
    --cluster-name myarcakscluster \ 
    --resource-group myresourcegroup \ 
    --cluster-type connectedClusters
    

Odstraněním nasazeného připojeného registru odeberete připojenou instanci cloudu registru a její podrobnosti o konfiguraci.

  1. Odstranění připojeného registru

    Spuštěním příkazu az acr connected-registry delete odstraňte připojený registr:

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

Další kroky