Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

Docker Hub -kirjautumistietojen lisääminen projektiin

Docker Hub on asettanut 2. marraskuuta 2020 alkaen image pull -toiminnoille käyttörajoituksen. Rahtissa tämä tarkoittaa 200 vetoa 6 tunnin aikana. Tämä rajoitus voi täyttyä helposti, ja se estää uusien sovellusten käyttöönoton, jos image sijaitsee Docker Hubissa.

Virhe näyttää tältä:

Pulling image "docker.io/centos/python-38-centos7@sha256:da83741689a8d7fe1548fefe7e001c45bcc56a08bc03fd3b29a5636163ca0353" ...
pulling image error : toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Ratkaisu edellyttää sekä selainkäyttöliittymän että asiakasohjelman käyttöä:

  • Ensin tarvitset Docker Hub -tilin. Se voi olla maksuton tili. Tässä tapauksessa käyttörajoitukset ovat edelleen voimassa, mutta käyttörajoituksessa huomioidaan vain ne vedot, jotka on tehty omilla kirjautumistiedoillasi. Maksullisilla tileillä ei ole rajoitusta.

    • Tarvitset TOKENIN. Siirry osoitteeseen https://hub.docker.com/settings/security ja luo token. Näet myös, milloin tokenia on viimeksi käytetty. Voit lisäksi luoda useita tokeneita ja käyttää niitä eri projekteissa, mikä parantaa turvallisuutta.
  • Siirry seuraavaksi selainkäyttöliittymään ja valitse kehittäjänäkymä. Valitse vasemman reunan navigaatiosta Secrets.

  • Napsauta oikeasta yläkulmasta "Create"-valikkoa ja valitse "Image pull secret". Aseta seuraavat arvot:

    • Secret name = anna selkeä nimi, tätä käytetään myöhemmin
    • Authentication type = "Image Registry Credentials"
    • Registry server address = "docker.io"
    • Username = Docker-käyttäjänimesi
    • Password = Docker-tokenisi
    • Email = Docker-sähköpostiosoitteesi

create secret

  • Varmista, että arvot ovat oikein, ja valitse "Create".

  • Seuraavaksi siirrytään komentoriville. Kirjaudu sisään ja käytä seuraavaa komentoa liittääksesi kirjautumistiedot palvelutileihin:

$ oc -n <project-name> secrets link builder <secret-name>

Huomaa: Korvaa paikkamerkki varsinaisella projektin nimellä (ilman <>-merkkejä) ja varsinaisella secretin nimellä.

Vianmääritys

Jos virhe jatkuu, voit tarkistaa kaksi asiaa:

  1. Osoitteessa https://hub.docker.com/settings/security näet, milloin tokenia on viimeksi käytetty. Tarkista, vastaako siellä näkyvä aika viimeisintä ajankohtaa, jolloin sitä olisi pitänyt käyttää.

  2. Tarkista, että secretin ja palvelutilien väliset linkitykset ovat olemassa:

    $ oc -n <project-name> describe sa builder
    

    Huomaa: Korvaa paikkamerkki varsinaisella projektin nimellä (ilman <>-merkkejä).

  3. Tarkista buildissa käytetty Pod ja varmista vielä, että luomaasi secretiä todella käytetään:

$ oc get pod
NAME                               READY     STATUS      RESTARTS   AGE
my-hello-1-build                   0/1       Error       0          5h
my-hello-2-build                   0/1       Error       0          1h

Molemmat yllä olevat Podit ovat epäonnistuneita buildeja. Ne nimetään seuraavasti:

<buildname>-<number>-build

Ota viimeisin build, tässä tapauksessa my-hello-2-build. Kuvaa sen tila ja etsi Volume mountit:

$ oc describe pod my-hello-2-build
(...)
  Mounts:
    /tmp/build from buildworkdir (rw)
    /var/run/crio/crio.sock from crio-socket (rw)
    /var/run/docker.sock from docker-socket (rw)
    /var/run/secrets/kubernetes.io/serviceaccount from builder-token-r5zp8 (ro)
    /var/run/secrets/openshift.io/pull from estivadores-secreto2-pull (ro)
    /var/run/secrets/openshift.io/push from builder-dockercfg-kn8h6-push (ro)

Yllä olevasta esimerkistä näemme, että käytetty pull secret oli estivadores-secreto2-pull. Voimme vielä varmistaa, että polkua käytettiin vetoon seuraavasti:

$  oc describe pod my-hello-2-build | grep PULL_DOCKERCFG_PATH
      PULL_DOCKERCFG_PATH:  /var/run/secrets/openshift.io/pull

ja nähdä, että secretimme oli liitetty kyseiseen polkuun.

Jos tarvitset lisätietoja, tutustu upstreamin image pull secretit -dokumentaatioon.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta