Megosztás a következőn keresztül:


Az Edge-tárolóregisztrációs adatbázis engedélyezése az Azure Stack Edge Pro GPU-eszközön

A következőkre vonatkozik: Igen a Pro GPU termékváltozatáhozAzure Stack Edge Pro – GPUIgen a Pro 2 termékváltozathozAzure Stack Edge Pro 2Igen a Pro R termékváltozathozAzure Stack Edge Pro RIgen a Mini R termékváltozathozAzure Stack Edge Mini R

Ez a cikk azt ismerteti, hogyan engedélyezheti és használhatja az Edge-tárolóregisztrációs adatbázist az Azure Stack Edge Pro-eszközön található Kubernetes-fürtből. A cikkben használt példa részletesen bemutatja, hogyan küldhet le egy rendszerképet egy forrásregisztrációs adatbázisból, ebben az esetben a Microsoft Container Registryből az Azure Stack Edge-eszközön, az Edge-tárolóregisztrációs adatbázisba.

Tudnivalók az Edge tárolóregisztrációs adatbázisáról

A tárolóalapú számítási alkalmazások tárolólemezképeken futnak, és ezek a rendszerképek adatbázisokban vannak tárolva. A regisztrációs adatbázisok lehetnek nyilvánosak, például Docker Hub, privát vagy felhőszolgáltató, például az Azure Container Registry. További információ: A regisztrációs adatbázisok, az adattárak és a képek.

Az Edge-tárolóregisztrációs adatbázis adattárat biztosít az Edge-ben az Azure Stack Edge Pro-eszközön. Ezzel a beállításjegyzékmel tárolhatja és kezelheti a privát tárolólemezképeket.

Többcsomópontos környezetben a tárolólemezképek egyszer letölthetők és leküldhetők az Edge tárolóregisztrációs adatbázisba. Minden Edge-alkalmazás használhatja az Edge tárolóregisztrációs adatbázisát a későbbi üzembe helyezésekhez.

Előfeltételek

Mielőtt hozzákezd, győződjön meg az alábbiakról:

  1. Hozzáféréssel rendelkezik egy Azure Stack Edge Pro-eszközhöz.

  2. Aktiválta az Azure Stack Edge Pro-eszközt az Azure Stack Edge Pro aktiválása című szakaszban leírtak szerint.

  3. Engedélyezte a számítási szerepkört az eszközön. Egy Kubernetes-fürt is létre lett hozva az eszközön, amikor a számítást az eszközön konfigurálta az Azure Stack Edge Pro-eszközön a számítás konfigurálása című témakörben leírtak szerint.

  4. A Kubernetes API-végpont a helyi webes felhasználói felület Eszköz lapján található. További információkért tekintse meg a Kubernetes API-végpont lekérésére vonatkozó utasításokat.

  5. Egy támogatott operációs rendszerrel rendelkező ügyfélrendszerhez fér hozzá. Windows-ügyfél használata esetén a rendszernek a PowerShell 5.0-s vagy újabb verzióját kell futtatnia az eszköz eléréséhez.

    1. Ha saját tárolórendszerképeket szeretne lekérni és leküldni, győződjön meg arról, hogy a rendszer telepítette a Docker-ügyfelet. Windows-ügyfél használata esetén telepítse a Docker Desktopot Windows rendszeren.

Tárolóregisztrációs adatbázis engedélyezése bővítményként

Az első lépés az Edge-tárolóregisztrációs adatbázis bővítményként való engedélyezése.

  1. Csatlakozzon az eszköz PowerShell-felületéhez.

  2. A tárolóregisztrációs adatbázis bővítményként való engedélyezéséhez írja be a következőt:

    Set-HcsKubernetesContainerRegistry

    A művelet végrehajtása több percet is igénybe vehet.

    A parancs mintakimenete a következő:

    [10.128.44.40]: PS>Set-HcsKubernetesContainerRegistry
    Operation completed successfully. Use Get-HcsKubernetesContainerRegistryInfo for credentials    
    
  3. A tárolóregisztrációs adatbázis adatainak lekéréséhez írja be a következőt:

    Get-HcsKubernetesContainerRegistryInfo

    Íme a példa a parancsból:

    [10.128.44.40]: PS> Get-HcsKubernetesContainerRegistryInfo
    
    Endpoint                                   IPAddress    Username     Password
    --------                                   ---------    --------     --------
    ecr.dbe-hw6h1t2.microsoftdatabox.com:31001 10.128.44.41 ase-ecr-user i3eTsU4zGYyIgxV
    
  4. Jegyezze fel a felhasználónevet és a jelszót a kimenetből Get-HcsKubernetesContainerRegistryInfo. Ezekkel a hitelesítő adatokkal jelentkezhet be az Edge tárolóregisztrációs adatbázisba a rendszerképek leküldése közben.

Tárolóregisztrációs adatbázis lemezképének kezelése

Előfordulhat, hogy az Azure Stack Edge-eszközén kívülről szeretné elérni a tárolóregisztrációs adatbázist. Előfordulhat, hogy le szeretné küldeni vagy lekérni a rendszerképeket a beállításjegyzékben.

Az Edge-tárolóregisztrációs adatbázis eléréséhez kövesse az alábbi lépéseket:

  1. Kérje le az Edge-tárolóregisztrációs adatbázis végpontadatait.

    1. Az eszköz helyi felhasználói felületén lépjen az Eszköz elemre.

    2. Keresse meg az Edge-tárolóregisztrációs adatbázis végpontot. Edge-tárolóregisztrációs adatbázis végpontja az eszközoldalon

    3. Másolja ki ezt a végpontot, és hozzon létre egy megfelelő DNS-bejegyzést az C:\Windows\System32\Drivers\etc\hosts ügyfél fájljába az Edge-tárolóregisztrációs végponthoz való csatlakozáshoz.

      <A Kubernetes fő csomópontjának><Edge tárolóregisztrációs végpontjának IP-címe>

      DNS-bejegyzés hozzáadása az Edge-tárolóregisztrációs végponthoz

  2. Töltse le az Edge tárolóregisztrációs tanúsítványát a helyi felhasználói felületről.

    1. Az eszköz helyi felhasználói felületén lépjen a Tanúsítványok elemre.

    2. Keresse meg az Edge tárolóregisztrációs tanúsítvány bejegyzését. A bejegyzés jobb oldalán válassza a Letöltés lehetőséget az Edge tárolóregisztrációs tanúsítvány letöltéséhez az ügyfélrendszeren, amelyet az eszköz eléréséhez használni fog.

      Az Edge tárolóregisztrációs adatbázis végponttanúsítványának letöltése

  3. Telepítse a letöltött tanúsítványt az ügyfélre. Windows-ügyfél használata esetén kövesse az alábbi lépéseket:

    1. Válassza ki a tanúsítványt, majd a Tanúsítványimportálás varázslóban válassza az áruház helyét helyi gépként.

      1. tanúsítvány telepítése

    2. Telepítse a tanúsítványt a helyi gépre a megbízható legfelső szintű tárolóban.

      2. tanúsítvány telepítése

  4. A tanúsítvány telepítése után indítsa újra a Docker-ügyfelet a rendszeren.

  5. Jelentkezzen be az Edge tárolóregisztrációs adatbázisába. Típus:

    docker login <Edge container registry endpoint> -u <username> -p <password>

    Adja meg az Edge-tárolóregisztrációs adatbázis végpontját az Eszközök lapon, valamint a kimenetből kapott felhasználónevet Get-HcsKubernetesContainerRegistryInfoés jelszót.

  6. A Docker leküldéses vagy lekéréses parancsaival leküldheti vagy lekérheti a tárolórendszerképeket a tárolóregisztrációs adatbázisból.

    1. Rendszerkép lekérése a Microsoft Container Registry rendszerképéből. Típus:

      docker pull <Full path to the container image in the Microsoft Container Registry>

    2. Hozzon létre egy aliast a lekért rendszerképről a beállításjegyzék teljes elérési útjával.

      docker tag <Path to the image in the Microsoft container registry> <Path to the image in the Edge container registry/Image name with tag>

    3. A rendszerkép leküldése a beállításjegyzékbe.

      docker push <Path to the image in the Edge container registry/Image name with tag>

    4. Futtassa a regisztrációs adatbázisba leküldött rendszerképet.

      docker run -it --rm -p 8080:80 <Path to the image in the Edge container registry/Image name with tag>

      Íme egy mintakimenet a lekéréses és leküldéses parancsok közül:

      PS C:\WINDOWS\system32> docker login ecr.dbe-hw6h1t2.microsoftdatabox.com:31001 -u ase-ecr-user -p 3bbo2sOtDe8FouD
      WARNING! Using --password via the CLI is insecure. Use --password-stdin.
      Login Succeeded
      PS C:\WINDOWS\system32> docker pull mcr.microsoft.com/oss/nginx/nginx:1.17.5-alpine
      1.17.5-alpine: Pulling from oss/nginx/nginx
      Digest: sha256:5466bbc0a989bd1cd283c0ba86d9c2fc133491ccfaea63160089f47b32ae973b
      Status: Image is up to date for mcr.microsoft.com/oss/nginx/nginx:1.17.5-alpine
      mcr.microsoft.com/oss/nginx/nginx:1.17.5-alpine
      PS C:\WINDOWS\system32> docker tag mcr.microsoft.com/oss/nginx/nginx:1.17.5-alpine ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/nginx:2.0
      PS C:\WINDOWS\system32> docker push ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/nginx:2.0
      The push refers to repository [ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/nginx]
      bba7d2385bc1: Pushed
      77cae8ab23bf: Pushed
      2.0: digest: sha256:b4c0378c841cd76f0b75bc63454bfc6fe194a5220d4eab0d75963bccdbc327ff size: 739
      PS C:\WINDOWS\system32> docker run -it --rm -p 8080:80 ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/nginx:2.0
      2020/11/10 00:00:49 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "localhost:8080", referrer: "http://localhost:8080/"
      172.17.0.1 - - [10/Nov/2020:00:00:49 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://localhost:8080/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36" "-"
      ^C
      PS C:\WINDOWS\system32>    
      
  7. Tallózással http://localhost:8080 megtekintheti a futó tárolót. Ebben az esetben az nginx webkiszolgáló fut.

    A futó tároló megtekintése

    A tároló leállításához és eltávolításához nyomja le a következőt Control+C: .

Edge-tárolóregisztrációs adatbázis lemezképeinek használata Kubernetes-podokon keresztül

Most már üzembe helyezheti az Edge-tárolóregisztrációs adatbázisba leküldett lemezképet a Kubernetes-podokon belül.

  1. A rendszerkép üzembe helyezéséhez konfigurálnia kell a fürthozzáférést a kubectl használatával. Hozzon létre egy névteret, egy felhasználót, adjon hozzáférést a névtérhez, és szerezzen be egy konfigurációs fájlt. Győződjön meg arról, hogy csatlakozni tud a Kubernetes-podokhoz.

    Kövesse a Csatlakozás kubernetes-fürthöz való csatlakoztatásának és kezelésének lépéseit az Azure Stack Edge Pro GPU-eszköz kubectl-jén keresztül.

    Íme egy mintakimenet egy névtérhez az eszközön, ahonnan a felhasználó hozzáférhet a Kubernetes-fürthöz.

    [10.128.44.40]: PS>New-HcsKubernetesNamespace -Namespace myecr
    [10.128.44.40]: PS>New-HcsKubernetesUser -UserName ecruser
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01URXdOVEF6TkRJek1Gb1hEVE13TVRFd016QXpOREl6TUZvd0ZURVRNQkVnNjOVRLWndCQ042cm1XQms2eXFwcXI1MUx6bApTaXMyTy91UEJ2YXNSSUUzdzgrbmEwdG1aTERZZ2F6MkQwMm42Q29mUmtyUTR2d1lLTnR1MlpzR3pUdz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
        server: https://compute.dbe-hw6h1t2.microsoftdatabox.com:6443
        name: kubernetes
        ===================CUT=========================================CUT==============
        client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMwRENDQWJpZ0F3SUJBZ0lJYmVWRGJSTzZ3ell3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TURFeE1EVXdNelF5TXpCYUZ3MHlNVEV4TURreU16UTRNal
        ===================CUT=========================================CUT==============
        DMVUvN3lFOG5UU3k3b2VPWitUeHdzCjF1UDByMjhDZ1lCdHdRY0ZpcFh1blN5ak16dTNIYjhveFI2V3VWWmZldFFKNElKWEFXOStVWGhKTFhyQ2x4bUcKWHRtbCt4UU5UTzFjQVNKRVZWVDd6Tjg2ay9kSU43S3JIVkdUdUxlUDd4eGVjV2VRcWJrZEVScUsxN0liTXpiVApmbnNxc0dobEdmLzdmM21kTGtyOENrcWs5TU5aM3MvUVIwRlFCdk94ZVpuUlpTeDVGbUR5S1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
    
    [10.128.44.40]: PS>Grant-HcsKubernetesNamespaceAccess -Namespace myecr -UserName ecruser
    [10.128.44.40]: PS>kubectl get pods -n "myecr"
    No resources found.
    PS C:\WINDOWS\system32>
    
  2. A rendszerkép lekérési titkos kulcsai már be vannak állítva az eszköz összes Kubernetes-névterében. A parancs használatával get secrets titkos kulcsokat szerezhet be. Itt látható egy mintakimenet:

    PS C:\WINDOWS\system32> .\kubectl.exe get secrets -n myecr
    NAME                  TYPE                                  DATA   AGE
    ase-ecr-credentials   kubernetes.io/dockerconfigjson        1      99m
    default-token-c7kww   kubernetes.io/service-account-token   3      107m
    sec-smbcredentials    microsoft.com/smb                     2      99m
    PS C:\WINDOWS\system32>   
    
  3. Helyezzen üzembe egy podot a névtérben a kubectl használatával. Használja a következőt yaml.

    Cserélje le a lemezképet a <image-name> tárolóregisztrációs adatbázisba leküldött lemezképre. Tekintse meg a névterek titkos kulcsait az imagePullSecrets névvel: ase-ecr-credentials.

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
    spec:
      containers:
      - name: nginx
        image: ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/nginx:2.0
        imagePullPolicy: Always
      imagePullSecrets:
      - name: ase-ecr-credentials
    
  4. Alkalmazza az üzembe helyezést az apply paranccsal létrehozott névtérben. Ellenőrizze, hogy fut-e a tároló. Itt látható egy mintakimenet:

    PS C:\Windows\System32> .\kubectl.exe apply -f .\deployment.yml -n myecr
    pod/nginx configured
    PS C:\Windows\System32> .\kubectl.exe get pods -n myecr
    NAME    READY   STATUS    RESTARTS   AGE
    nginx   1/1     Running   0          27m
    PS C:\Windows\System32>
    

Tárolóregisztrációs adatbázis lemezképének törlése

Az Edge Container Registry-tároló egy helyi megosztáson található az Azure Stack Edge Pro-eszközön, amelyet az eszközön elérhető tárterület korlátoz. Az Ön felelőssége a nem használt Docker-rendszerképek törlése a tárolóregisztrációs adatbázisból a Docker HTTP v2 API (https://docs.docker.com/registry/spec/api/) használatával.

Egy vagy több tárolórendszerkép eltávolításához kövesse az alábbi lépéseket:

  1. Állítsa a kép nevét a törölni kívánt képre.

    PS C:\WINDOWS\system32> $imageName="nginx"    
    
  2. A tárolóregisztrációs adatbázis felhasználónevének és jelszavának beállítása PS-hitelesítő adatként

    PS C:\WINDOWS\system32> $username="ase-ecr-user"
    PS C:\WINDOWS\system32> $password="3bbo2sOtDe8FouD"
    PS C:\WINDOWS\system32> $securePassword = ConvertTo-SecureString $password -AsPlainText -Force
    PS C:\WINDOWS\system32> $credential = New-Object System.Management.Automation.PSCredential ($username, $securePassword)    
    
  3. A képhez társított címkék listázása

    PS C:\WINDOWS\system32> $tags = Invoke-RestMethod -Credential $credential -Uri "https://ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/v2/nginx/tags/list" | Select-Object -ExpandProperty tags
    PS C:\WINDOWS\system32> $tags
    2.0
    PS C:\WINDOWS\system32> $tags = Invoke-RestMethod -Credential $credential -Uri "https://ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/v2/$imageName/tags/list" | Select-Object -ExpandProperty tags
    PS C:\WINDOWS\system32> $tags
    2.0
    PS C:\WINDOWS\system32>    
    
  4. Listázhatja a törölni kívánt címkéhez társított kivonatot. Ez $tags használ a fenti parancs kimenetéből. Ha több címkéje van, jelölje ki az egyiket, és használja a következő parancsban.

    PS C:\WINDOWS\system32> $response = Invoke-WebRequest -Method Head -Credential $credential -Uri "https://ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/v2/$imageName/manifests/$tags" -Headers @{ 'Accept' = 'application/vnd.docker.distribution.manifest.v2+json' }
    PS C:\WINDOWS\system32> $digest = $response.Headers['Docker-Content-Digest']
    PS C:\WINDOWS\system32> $digest
    sha256:b4c0378c841cd76f0b75bc63454bfc6fe194a5220d4eab0d75963bccdbc327ff
    PS C:\WINDOWS\system32>    
    
  5. A kép törlése a kép kivonatával:címke

    PS C:\WINDOWS\system32> Invoke-WebRequest -Method Delete -Credential $credential -Uri "https://ecr.dbe-hw6h1t2.microsoftdatabox.com:31001/v2/$imageName/manifests/$digest" | Select-Object -ExpandProperty StatusDescription    
    

A fel nem használt képek törlése után a rendszer automatikusan visszanyeri a nem hivatkozott képekhez tartozó helyet egy éjszaka futó folyamat.

Következő lépések