Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

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