Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
GÄLLER FÖR:
Azure Stack Edge Pro – GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
Den här artikeln beskriver hur du aktiverar Edge-containerregistret och använder det inifrån Kubernetes-klustret på din Azure Stack Edge Pro-enhet. Exemplet som används i artikeln beskriver hur du skickar en avbildning från ett källregister, i det här fallet Microsoft Container-registret, till registret på Azure Stack Edge-enheten, Edge-containerregistret.
Om Edge-containerregistret
Containerbaserade beräkningsprogram körs på containeravbildningar och dessa avbildningar lagras i register. Register kan vara offentliga, till exempel Docker Hub, privata leverantörer eller molnleverantörer som hanteras, till exempel Azure Container Registry. Mer information finns i Om register, lagringsplatser och bilder.
Ett Edge-containerregister tillhandahåller en lagringsplats på Edge på din Azure Stack Edge Pro-enhet. Du kan använda det här registret för att lagra och hantera dina privata containeravbildningar.
I en miljö med flera noder kan containeravbildningar laddas ned och push-överföras till Edge-containerregistret en gång. Alla Edge-program kan använda Edge-containerregistret för efterföljande distributioner.
Förutsättningar
Innan du börjar bör du kontrollera att:
Du har åtkomst till en Azure Stack Edge Pro-enhet.
Du har aktiverat din Azure Stack Edge Pro-enhet enligt beskrivningen i Aktivera Azure Stack Edge Pro.
Du har aktiverat beräkningsrollen på enheten. Ett Kubernetes-kluster skapades också på enheten när du konfigurerade beräkning på enheten enligt anvisningarna i Konfigurera beräkning på din Azure Stack Edge Pro-enhet.
Du har Kubernetes API-slutpunkten från sidan Enhet i ditt lokala webbgränssnitt. Mer information finns i anvisningarna i Hämta Kubernetes API-slutpunkt.
Du har åtkomst till ett klientsystem med ett operativsystem som stöds. Om du använder en Windows-klient ska systemet köra PowerShell 5.0 eller senare för att få åtkomst till enheten.
- Om du vill hämta och push-överföra dina egna containeravbildningar kontrollerar du att docker-klienten är installerad i systemet. Om du använder en Windows-klient installerar du Docker Desktop i Windows.
Aktivera containerregister som tillägg
Det första steget är att aktivera Edge-containerregistret som ett tillägg.
Anslut till Enhetens PowerShell-gränssnitt.
Om du vill aktivera containerregistret som ett tillägg skriver du:
Set-HcsKubernetesContainerRegistryDen här åtgärden kan ta flera minuter att slutföra.
Här är exempelutdata för det här kommandot:
[10.128.44.40]: PS>Set-HcsKubernetesContainerRegistry Operation completed successfully. Use Get-HcsKubernetesContainerRegistryInfo for credentialsOm du vill hämta information om containerregistret skriver du:
Get-HcsKubernetesContainerRegistryInfoHär är exemplet på det här kommandot:
[10.128.44.40]: PS> Get-HcsKubernetesContainerRegistryInfo Endpoint IPAddress Username Password -------- --------- -------- -------- ecr.dbe-hw6h1t2.microsoftdatabox.com:31001 10.128.44.41 ase-ecr-user i3eTsU4zGYyIgxVAnteckna användarnamnet och lösenordet från utdata
Get-HcsKubernetesContainerRegistryInfofrån . Dessa autentiseringsuppgifter används för att logga in i Edge-containerregistret när avbildningar skickas.
Hantera containerregisteravbildningar
Du kanske vill komma åt containerregistret utanför din Azure Stack Edge-enhet. Du kanske också vill skicka eller hämta avbildningar i registret.
Följ dessa steg för att komma åt Edge-containerregistret:
Hämta slutpunktsinformationen för Edge-containerregistret.
I enhetens lokala användargränssnitt går du till Enhet.
Leta upp gränscontainerregistrets slutpunkt.

Kopiera den här slutpunkten och skapa en motsvarande DNS-post i
C:\Windows\System32\Drivers\etc\hostsklientens fil för att ansluta till edge-containerns registerslutpunkt.<IP-adress för Kubernetes huvudnod><Edge-containerregisterslutpunkt>

Ladda ned Edge-containerregistercertifikatet från det lokala användargränssnittet.
I enhetens lokala användargränssnitt går du till Certifikat.
Leta upp posten för Edge-containerregistercertifikatet. Till höger om den här posten väljer du Ladda ned för att ladda ned Edge-containerregistercertifikatet i klientsystemet som du ska använda för att komma åt enheten.

Installera det nedladdade certifikatet på klienten. Följ dessa steg om du använder en Windows-klient:
Välj certifikatet och välj lagringsplats som Lokal dator i guiden Importera certifikat.

Installera certifikatet på den lokala datorn i det betrodda rotarkivet.

När certifikatet har installerats startar du om Docker-klienten i systemet.
Logga in på Edge-containerregistret. Ange:
docker login <Edge container registry endpoint> -u <username> -p <password>Ange edge-containerregistrets slutpunkt från sidan Enheter och det användarnamn och lösenord som du fick från utdata
Get-HcsKubernetesContainerRegistryInfofrån .Använd docker push- eller pull-kommandon för att skicka eller hämta containeravbildningar från containerregistret.
Hämta en avbildning från Microsoft Container Registry-avbildningen. Ange:
docker pull <Full path to the container image in the Microsoft Container Registry>Skapa ett alias för avbildningen som du hämtade med den fullständigt kvalificerade sökvägen till registret.
docker tag <Path to the image in the Microsoft container registry> <Path to the image in the Edge container registry/Image name with tag>Skicka avbildningen till registret.
docker push <Path to the image in the Edge container registry/Image name with tag>Kör avbildningen som du skickade till registret.
docker run -it --rm -p 8080:80 <Path to the image in the Edge container registry/Image name with tag>Här är ett exempel på utdata från pull- och push-kommandona:
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>
Bläddra till för
http://localhost:8080att visa containern som körs. I det här fallet ser du att nginx-webbservern körs.
Om du vill stoppa och ta bort containern trycker du på
Control+C.
Använda Edge-containerregisteravbildningar via Kubernetes-poddar
Nu kan du distribuera avbildningen som du pushade i edge-containerregistret inifrån Kubernetes-poddarna.
För att distribuera avbildningen måste du konfigurera klusteråtkomst via kubectl. Skapa ett namnområde, en användare, ge användaren åtkomst till namnområdet och hämta en konfigurationsfil . Se till att du kan ansluta till Kubernetes-poddarna.
Följ alla steg i Anslut till och hantera ett Kubernetes-kluster via kubectl på din Azure Stack Edge Pro GPU-enhet.
Här är ett exempel på utdata för ett namnområde på enheten där användaren kan komma åt Kubernetes-klustret.
[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>Avbildningens pull-hemligheter har redan angetts i alla Kubernetes-namnområden på enheten. Du kan hämta hemligheter med hjälp
get secretsav kommandot . Här är exempel på utdata: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>Distribuera en podd till ditt namnområde med kubectl. Använd följande
yaml.Ersätt avbildningen:
<image-name>med avbildningen som skickas till containerregistret. Se hemligheterna i dina namnområden med hjälp av imagePullSecrets med ett namn: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-credentialsAnvänd distributionen i namnområdet som du skapade med hjälp av kommandot apply. Kontrollera att containern körs. Här är exempel på utdata:
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>
Ta bort containerregisteravbildningar
Edge Container Registry Storage finns på en lokal resurs i din Azure Stack Edge Pro-enhet som begränsas av den tillgängliga lagringen på enheten. Det är ditt ansvar att ta bort oanvända Docker-avbildningar från containerregistret med Docker HTTP v2 API (https://docs.docker.com/registry/spec/api/).
Följ dessa steg om du vill ta bort en eller flera containeravbildningar:
Ange avbildningsnamnet till den bild som du vill ta bort.
PS C:\WINDOWS\system32> $imageName="nginx"Ange användarnamnet och lösenordet för containerregistret som en PS-autentiseringsuppgift
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)Visa en lista över taggarna som är associerade med bilden
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>Ange den sammandrag som är associerad med taggen som du vill ta bort. Detta använder $tags från utdata från kommandot ovan. Om du har flera taggar väljer du en av dem och använder i nästa kommando.
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>Ta bort bilden med hjälp av sammanfattningen av image:tag
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
När du har tagit bort de oanvända bilderna frigörs utrymmet som är associerat med de orefererade bilderna automatiskt av en process som körs varje natt.