Kubernetes Hvordan trekke et bilde fra et privat register

Kubernetes Hvordan trekke et bilde fra et privat register

Registreringer er av to typer: Privat og offentlig. Offentlige registre kan nås uten påloggingsinformasjon. For å få tilgang til et privat register, må du imidlertid oppgi legitimasjon for å logge inn. Kubernetes containermiljø fungerer med containerbilder, og disse bildene lagres i enten offentlig eller privat register. Bildene som ligger i et offentlig depot er tilgjengelige for alle uten beskyttelse. Imidlertid, hvis du trenger å få tilgang til et bilde som ligger i et privat register, må du ha påloggingsinformasjon for å få tilgang til et privat register. Denne guiden lærer deg i detalj alle trinnene for hvordan du kan trekke et bilde fra et privat register.

Forutsetninger:

Kubernetes -miljøet krever grunnleggende verktøy for at du kan jobbe i det. Så sørg for at systemet ditt har alle følgende verktøy installert allerede, og hvis de ikke er det, gjør det før du går videre i dette dokumentet:

  • Ubuntu 20.04 eller noen annen siste versjon
  • Kubectl kommandolinjeverktøy
  • Minikube Cluster
  • Minimum to generiske noder uten å fungere som kontrollplanverter
  • Docker Command Line Tool eller et hvilket som helst annet containerregister
  • Docker ID eller et hvilket som helst annet containerregister med påloggingsinformasjon

Forutsatt at du har utarbeidet systemet ditt ved å installere alle forutsetningene, la oss starte med prosessen med å trekke et bilde fra et privat register.

Vi bruker en Docker -beholder i denne guiden, så dette er spesielt designet for å få deg til å lære hvordan du kan hente et bilde fra et Dockers private register.

Så la oss starte denne trinn-for-trinn-guiden som du enkelt kan følge og lære å trekke bildet fra et privat register.

Trinn 1: Start Minikube -klyngen

Når vi bruker Minikube -klyngen, må vi sørge for at den er i aktiv modus. Minikube -klyngen kan komme i gang med å bruke følgende kommando:

Kalsoom@Kalsoom-VirtualBox> Minikube Start

Denne kommandoen lar deg starte Minikube -klyngen der du kan begynne å kjøre kommandoene og applikasjonen din. Når du utfører denne 'Start' -kommandoen, vil du få en lignende utdata som den som er gitt i øyeblikksbildet nedenfor:

Trinn 2: Sjekk inn Docker -beholderen

Siden vi bruker Dockers beholder og prøver å få tilgang til et bilde som ligger i et privat Docker -register, må vi logge inn på det. Vi må oppgi påloggingsnavn og passord for det private registeret for å ha full tilgang til registeret. Nå skriver du inn følgende kommando på kommandolinjeverktøyet og logg inn på Docker Hub:

kalsoom@kalsoom-virtualbox> docker pålogging

Som vist på skjermbildet over, ber kommandolinjeverktøyet om et brukernavn og passord for å logge inn på Docker Hub med Docker ID. Her kan du oppgi legitimasjonen til Docker -ID -en din og ha tilgang til privatregisteret til den tilknyttede ID -en.

Trinn 3: Få tilgang til JSON -filen

Når du logger deg på Docker Hub med Docker ID, er 'Config.JSON 'fil blir oppdatert med autorisasjonstoken. Dette skjer som svar på påloggingsprosessen, og autorisasjonstokenet lar deg opprette den hemmelige nøkkelen for å få tilgang til Docker Private Registry. Skriv inn følgende kommando på kommandolinjeverktøyet for å få autorisasjonstokenet fra konfigurasjonen.JSON -fil:

kalsoom@kalsoom-virtualbox> katt ~/.Docker/Config.JSON

Se utdataene gitt på skjermbildet nedenfor:

Trinn 4: Opprett en hemmelig nøkkel

En hemmelig nøkkel er viktig for å sikre helt sikker tilgang til Dockers private register. Derfor vil vi bruke autorisasjonsnøkkelen til å opprette den hemmelige nøkkelen på den eksisterende legitimasjonen. Dette vil tillate oss å hente bildet fra et privat Docker -register siden Docker bruker hemmeligheten til Kubernetes.IO/DockerCongigjson. Utfør nå følgende kommando på terminalen din og få hemmeligheten på den eksisterende legitimasjon:

Kalsoom@Kalsoom-VirtualBox> Kubectl Lag hemmelig generisk regcred \

Bare bare kopier og lim inn legitimasjonen med kommandoen inn i terminalen og få hemmeligheten til ditt private register. Se utgangen gitt nedenfor:

Den forrige kommandoen lar deg opprette hemmeligheten fra den eksisterende legitimasjonen hvis du vil opprette en hemmelighet ved å gi legitimasjonen på kjøretid. I tillegg kan du gjøre det ved å utføre kommandoen som er vedlagt nedenfor:

> Kubectl Create Secret Docker-Registry Regcred -Docker-Server = --Docker-brukernavn = --Docker-Password = --Docker-e-post =

Her tar parameteren '-Docker-server =' navnet på serveren din, parameteren '-Docker-brukernavn =' tar brukernavnet ditt, parameteren '-Docker-Password =' ​​tar passordet, og '-Docker- E -post = 'Parameter tar e -postadressen din. Se eksempeldataene gitt på skjermdumpen nedenfor:

Dette har skapt en hemmelighet som heter 'Regcred' ved hjelp av legitimasjonen du ga på kommandolinjen.

Trinn 5: Inspeksjon av hemmelighet

Nå som vi har skapt hemmeligheten for å trekke bildet fra det private registeret, må vi inspisere det for å sjekke hva det inneholder. Dette vil gjøre det mulig for oss å forstå innholdet. Utfør følgende kommando i terminalen din og se Regcred Secret:

> KUBECTL Få hemmelig Regcred -output = yaml

Siden Regcred Secret er lagret i YAML -filen, bruker vi denne kommandoen, prøver vi å åpne YAML -filen som inneholder hemmeligheten. Se utgangen gitt nedenfor:

Dataene er representert i Base64 -formatet og legitimasjon er kryptert med Base64 -krypteringsteknikken. For å forstå innholdet i Regcred Secret, må vi ha innholdet i et lesbart format. Derfor vil vi dekryptere hemmeligheten til et lesbart format ved å bruke følgende kommando:

> Kubectl Få hemmelig Regcred -output = jsonPath = .data.\.DockerConfigjson "| Base64 -Decode

Se utgangen gitt nedenfor og se hemmeligheten i et lesbart format:

Trinn 6: Opprett konfigurasjonsfilen

Nå er vi klare til å trekke bildet fra det private registeret. Så vi lager en pod som vil bruke hemmeligheten vi har laget tidligere for å få tilgang til bildet. Konfigurasjonsdefinisjonen av POD holdes i en YAML -fil. Opprett en YAML -fil ved å bruke kommandoen nedenfor:

> Nano privat.Yaml

Denne kommandoen har opprettet en YAML -fil der du kan lagre konfigurasjonsdefinisjonen for å opprette POD. Se den samme definisjonen gitt på skjermbildet nedenfor:

Trinn 7: Last ned konfigurasjonsfilen

Last ned konfigurasjonsfilen i systemet ditt og lagre den ved å bruke følgende kommando:

> Curl -l -o My-Private-Reg-Pod.yaml https: // k8s.io/eksempler/pods/privat-reg-pod.Yaml

Trinn 8: Opprett poden fra konfigurasjonsfilen

Nå er konfigurasjonsfilen vår klar til å opprette poden som vil bruke hemmeligheten. Følgende kommando vil bygge poden:

> KUBECTL Søk -f privat.Yaml

Poden er opprettet med hell. Så la oss bekrefte at det kjører ordentlig ved å bruke følgende kommando:

> kubectl få pod privat-reg

Konklusjon

Vi lærte om de offentlige og private registrene til Docker Hub og hvordan du får tilgang til Dockers private depot ved å bruke legitimasjonen. Ved hjelp av et enkelt scenario lærte vi hvordan vi får tilgang til Docker Hub ved å bruke den eksisterende legitimasjonen, samt gi legitimasjon på kjøretid. Og til slutt lærte vi å trekke et bilde fra et privat register i Docker Hub.