Hogyan engedélyezhetem a GitLab függőségi proxyját a Docker Images számára – CloudSavvy IT

Avatar admin | 2021.03.29. 7 Views 0 Likes 0 Ratings

7 Views 0 Ratings Rate it

A GitLab logót ábrázoló grafika, egy stilizált rókafej

A GitLab integrált Dependency Proxy-val rendelkezik, amely gyorsítótárazza a Docker képeket. Korábban prémium szolgáltatásként a Dependency Proxy nyílt forráskódú volt, és 2020 novemberében az összes GitLab verzió számára elérhetővé vált. GitLab 13.6.

A Dependency Proxy átmenő gyorsítótárként viselkedik a Docker Hubon tárolt Docker-képeknél. A Dependency Proxy beállítása felgyorsíthatja a csővezetékeket és elősegíti a bennmaradást Docker sebességhatárai.

A függőségi proxy engedélyezése

A Dependency Proxy elérhetőségét egy példányszintű beállítás vezérli. A Dependency Proxy engedélyezéséhez a GitLab konfigurálása szükséges. Ez rövid idejű leállást okoz.

A szolgáltatás engedélyezéséhez adja hozzá a következő sort a telepítéshez /etc/gitlab/gitlab.rb fájl:

gitlab_rails["dependency_proxy_enabled"] = true

Mentse a fájlt, és futtassa a következő parancsot a terminálon:

sudo gitlab-ctl reconfigure

A fenti utasítások a GitLab Omnibus telepítésekre vonatkoznak. Ha forrásból telepítette, a függőségi proxyt belül engedélyezni kell a te config/gitlab.yml fájl.

A Dependency Proxy használata

A Dependency Proxy csak a GitLab csoportokkal működik. Jelenleg nem használható önálló személyes projektekkel.

A funkciót általában a CI-folyamat szkriptjeiben használják. Amikor egy képre hivatkozunk egy folyamaton belül, előtagolja a képet Docker Hub neve a CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX változó. Ez a változó automatikusan feloldja az aktív GitLab-csoport függőségi proxy URL-jét.

image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/nodejs:latest

Ez a csővezeték a nodejs:latest tartály. A kép a Dependency Proxy-n keresztül húzódik. A későbbi futási folyamatoknak csak akkor kell elérniük a Docker Hub-ot, ha az upstream kép valóban megváltozik.

A függőségi proxyt manuálisan is elérheti, a GitLab CI-n kívül. Hitelesítenie kell a következővel: docker login első. Használnia kell GitLab felhasználónevét és jelszavát, vagy felhasználónevét és személyes hozzáférési tokent.

docker login gitlab.example.com --username username --password password

Miután hitelesítette, megteheti docker pull a GitLab Dependency Proxy használatával. Cserélje ki example-group az alábbi URL-ben a használni kívánt csoport nevével. A kihúzott képet a rendszer a Dependency Proxy-ba tárolja.

docker pull gitlab.example.com/example-group/dependency_proxy/containers/nodejs:latest

Ha a GitLab Container Registry-jét is használja (képek tárolásához) te build), vegye figyelembe, hogy a Dependency Proxy teljesen különálló és más URL-lel rendelkezik. Míg a konténernyilvántartás általában a saját aldomainjén van kitéve (pl registry.example.com), A Dependency Proxy ugyanazon gazdagépnéven keresztül érhető el, mint a GitLab webes felhasználói felület.

Hogyan működik a függőségi proxy

A Dependency Proxy egy másik Docker-nyilvántartásként jelenik meg. Amikor használni szeretné a proxyt, akkor docker login hozzá és akkor docker pull mint általában.

Ha a Dependency Proxy már gyorsítótárba helyezte a képet, akkor közvetlenül a Docker Hub használata nélkül adja vissza. Ellenkező esetben a kép a Docker Hubról kerül lehúzásra, a gyorsítótárba kerül, és visszakerül a Docker CLI-re.

A GitLab megpróbálja kapcsolatba lépni a Docker Hub-szal docker pull, akkor is, ha gyorsítótárazott kép áll rendelkezésre. A proxy-nak ugyanis ellenőriznie kell, hogy a kép frissült-e a Docker Hubon.

Ez az eljárás nem befolyásolja a Docker sebességkorlátozását. Dokkmunkás engedélyek ingyen HEAD kéri, hogy hasonlítsa össze a képfájl-verziókat Ha a Docker azt jelzi, hogy a gyorsítótárazott kép elavult, akkor a GitLab húzza a friss verziót (ütemkorláttalálattal jár). Ellenkező esetben a gyorsítótárazott kép visszaküldik, anélkül, hogy hozzáadná a Docker Hub sebességkorlátozásához tartozó összeget.

Ezek a jellemzők teszik a Dependency Proxy-t ideálisnak a CI-csővezetékekhez. Ha belép a proxyba, biztonságosan docker pull minden csővezeték-futáson, anélkül, hogy elérné a Docker Hub sebességkorlátját.

A függőségi proxy beállításainak konfigurálása

A Dependency Proxy idővel jelentős mennyiségű tárhelyet használhat fel. Képeket tárol a Docker Hubból; ezek a képek elég nagyok lehetnek attól függően, hogy mit használ.

A GitLab segítségével testre szabhatja a tárolási helyet. Állítsa be a dependency_proxy_storage_path beállítva /etc/gitlab/gitlab.rb ha dedikált tároló meghajtót szeretne használni.

gitlab_rails["dependency_proxy_storage_path"] = "/mnt/my-storage-drive"

A forrás telepítéseknek be kell állítaniuk a storage_path ingatlanon belül dependency_proxy szakasza config/gitlab.yml helyette.

Tárolhatja a tárolt képeket is egy objektumtárolón szolgáltatás, például az Amazon S3. Itt található egy példa az Omnibus konfigurációjára /etc/gitlab/gitlab.rb:

gitlab_rails["dependency_proxy_object_store_enabled"] = true
 
# This is the S3 bucket name
gitlab_rails["dependency_proxy_object_store_remote_directory"] = "gitlab-dependency-proxy"
 
gitlab_rails["dependency_proxy_object_store_connection"] = {
    "provider" => "AWS",
    "region" => "eu-west-1",
    "aws_access_key_id" => "AWS_ACCESS_KEY_ID",
    "aws_secret_access_key" => "AWS_SECRET_ACCESS_KEY"
}

A teljesítmény javítása érdekében a GitLab helyileg tárolja a képeket, majd a háttérben az S3-ra tölti fel. Ha inkább közvetlenül az S3-ra szeretne feltölteni, állítsa be a dependency_proxy_object_store_direct_upload beállítva true.

Át kell állítania a GitLab (sudo gitlab-ctl reconfigure), miután módosította a tárolási beállításokat. Ezután a Dependency Proxy tárolja a gyorsítótárazott képeket az új konfigurációval.

Tárhely felszabadítása

GitLab soha nem törli gyorsítótárazott függőségi proxy adatok. A csoportok gyorsítótárának tartalmát úgy tekintheti meg, hogy az oldalsávján kiválasztja a Csomagok és nyilvántartások> Függőségi proxy elemet. Ezen a képernyőn engedélyezheti vagy letilthatja a Dependency Proxy szolgáltatást a csoport számára, és megtekintheti a tárolt adatok teljes méretét. Azonban nem használhatja a felhasználói felületet a régi foltok törlésére.

Ha tárhelyet kell felszabadítania, akkor a GitLab API-t kell használnia. Van egyetlen végpont, amely lehetővé teszi az összes, az adott csoport számára tárolt függőségi proxy-adat törlését.

Hozzon létre egy személyes hozzáférési tokent: kattintson a profilra a jobb felső sarokban, kattintson a „Hozzáférési tokenek” lehetőségre a bal oldalsávon, és adjon hozzá egy új api hatálya.

Ezután használja curl a csoport függőségi proxy gyorsítótárának törléséhez:

curl --request DELETE --header "PRIVATE-TOKEN: <Access-Token>" https://gitlab.example.com/api/v4/groups/<Group-Id>/dependency_proxy/cache

A csoportazonosító megkereséséhez keresse fel a megtisztítani kívánt csoport kezdőlapját. A csoport azonosítója megjelenik a neve mellett.

Következtetés

A Dependency Proxy engedélyezése egy egyszerű lépés, amely javítja a csővezetékek rugalmasságát. Ha a Docker Hub leáll, akkor a proxy továbbra is gyorsítótárazott képváltozatokkal látja el a folyamatot.

A Dependency Proxy segít abban is, hogy a Docker Hub tarifakeretein belül maradjon. Csak akkor kell képeket húznia a Docker Hubról, amikor azok valóban megváltoznak. Egy aktív csapat számára, amely naponta sok csővezetéket futtat, ez segíthet abban, hogy ne kelljen prémium Docker Hub-csomagra frissíteni.


Source link


7 Views 0 Ratings Rate it

  • Minden jog fenntartva 2019-2020. Hogyankészítsek.Hu Impresszum Adatkezelési szabályok