GitLab Runner хостингі, өзіңізге тиесілі машинада

Прага не Ковильяндағы бүкіл диск тек өзіне тиесілі, өзің басқаратын runner. Сондықтан Docker қабаттар кеші күндегі екінші конвейерде әлі орнында тұрады, ал құрастыру ұзарғанда шот өзгермейді.

Tier III сертификатталған ISO 9001 ISO/IEC 27001 ISO 14001 GDPR талаптарына сәйкес

Бұл кімге арналған

Есептеу минуттарын сатып алатын команда

Тесттер жиынтығы өсті, сондықтан конвейер ұзарды, сондықтан шот өсті - ал тариф ұсынатын жалғыз тетік дәл сол минуттарды тағы да көбірек сатып алу.

Бір машинаны екі рет қалайтын конвейер

Әр тапсырма бос дискіден басталады. Базалық образ қайта жүктеледі, тәуелділіктер қайта тартылады, ал кешті жүктеп салу ол үнемдеуге тиіс қадамнан ұзаққа созылады.

Деректер резиденциясы талабы астындағы репозиторий

Бастапқы код, артефакттар және орналастыру кілттері runner арқылы өтеді, ал "бір жердегі ортақ машиналар паркі" деген жауапты аудиторыңыз қайта-қайта қызылмен қоршайды.

Өзің басқаратын runner нені қайтарады

  • Жергілікті NVMe-дегі жылы Docker қабаттар кеші: күндегі екінші конвейер бос дискіден емес, біріншісі тоқтаған жерден басталады.
  • Кез келген executor - docker, shell, docker-autoscaler, instance немесе kubernetes - тарифпен берілмей, әр runner үшін өзіңіз таңдайсыз.
  • Келесі саты ретінде сатып алынбай, config.toml ішінде сан ретінде қойылатын өз параллельдігіңіз.
  • Docker-in-Docker шынымен қажет болғанда привилегиялы режим - мұны ешбір ортақ машиналар паркі сізге бермейді.
  • AS204057 ішіндегі статикалық шығыс IPv4: орналастыру нысаны, пакет айнасы немесе дерекқор брандмауэрі runner-ді адрес бойынша рұқсат ете алады.
  • Құрастыруға хостта шынымен не керек болса: ескі құралдар тізбегі, лицензияланған SDK немесе әр тапсырмаға жүктегісі келмейтін сынақ деректері жиынтығы.

Конвейер шын мәнінде не істейтініне қарай өлшенген

GitLab runner-дің өзіне аппараттық талап жарияламайды, бұл ұмытылып кеткен нәрсе емес: runner процесі кішкентай, ал құрастыру олай емес. Маңыздысы - тапсырма. Бүгін орындайтын ең ауыр тапсырмадан бастаңыз, қажет параллельдікке көбейтіңіз және дискіні аямаңыз - оны қабаттар кеші мен жұмыс каталогы толтырады, ал толған диск конвейерді бұзылған тестке ұқсас түрде құлатады. Тұрақты айлық хост бір нәрсені істемейді: тыныш аптада жоғалып кетпейді. Провайдердегі минуттар ешкім push жасамағанда ештеңе тұрмайды, ал бұл сол күйінде тұрады. Ол конвейер дерлік күн сайын жүретін сәттен бастап ақталады.

Алғашқы раннер
19.96
айына

Тапсырыс беру
бір мезгілде екі-үш тапсырма
4 vCPU
8 GB RAM
120 GB NVMe
1 статикалық IPv4
1 апталық сақтық көшірме кіреді
Топ раннері
39.90
айына

Тапсырыс беру
бір мезгілде алтыдан сегізге дейін тапсырма
8 vCPU
16 GB RAM
240 GB NVMe
1 статикалық IPv4
1 апталық сақтық көшірме кіреді
Жүктелген пул
62.94
айына

Тапсырыс беру
монорепозиторий немесе бірнеше жоба қатар
8 vCPU
32 GB RAM
240 GB NVMe
1 статикалық IPv4
1 апталық сақтық көшірме кіреді

Жаңа хостқа GitLab Runner-ді қалай орнату керек

Debian немесе Ubuntu, таза серверден, GitLab құжаттаған тәртіппен. Төмендегінің бәрі - олардың реттілігі, біздікі емес.

  1. Ресми пакеттер репозиторийін қосыңыз

    curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" -o script.deb.sh
    less script.deb.sh
    sudo bash script.deb.sh

    GitLab репозиторийді орнату сценарийі түрінде береді және оны іске қоспас бұрын оқып шығуды сұрайды - сондықтан олардың өз нұсқаулығы оны алдымен жүктеп алады, тікелей қабыққа бермейді.

  2. Runner-ді орнатыңыз

    sudo apt install gitlab-runner

    Пакет gitlab-runner жүйелік пайдаланушысын жасайды, оның үй каталогы қаңқа файлдарынсыз, бос күйде жасалады. Нұсқаны бекіту үшін gitlab-runner мен gitlab-runner-helper-images дегенді бірге, бір нұсқада орнатыңыз - 17.7.1-ден бері олар жұп, ал біреуін ғана атау тәуелділік қатесімен аяқталады.

  3. Тапсырмалар контейнерде жүрсе, Docker орнатыңыз

    sudo apt install docker.io
    sudo systemctl enable --now docker

    Docker executor жергілікті Docker Engine-мен API v1.25 арқылы сөйлеседі, сондықтан демон runner хостының өзінде болуы керек. Бастау үшін дистрибутив пакеті жеткілікті; қандай да бір құрастыруға керек болса, Docker-дің өз репозиторийі жаңарақ шығарылымдарды ұстайды.

  4. Runner-ді тіркеңіз

    sudo gitlab-runner register \
      --non-interactive \
      --url "https://gitlab.com/" \
      --token "$RUNNER_TOKEN" \
      --executor "docker" \
      --docker-image alpine:latest \
      --docker-pull-policy "if-not-present" \
      --description "docker-runner"

    Алдымен GitLab ішінде runner жасаңыз - Settings, содан кейін CI/CD, содан кейін Runners - ол glrt- деп басталатын аутентификация токенін қайтарады, ол --token ішіне кетеді. Тапсырма тегтерін және тегсіз тапсырмалар параметрін дәл сол формада қойыңыз: аутентификация токендерінде олар register командасына емес, runner-ге тиесілі. Ескілеу --registration-token жолы ескірген және GitLab 20.0 нұсқасында жойылуы жоспарланған.

  5. Параллельдікті қойып, іске қосыңыз

    sudo sed -i "s/^concurrent = .*/concurrent = 4/" /etc/gitlab-runner/config.toml
    sudo gitlab-runner restart
    sudo gitlab-runner status

    Runner root ретінде жүргенде config.toml /etc/gitlab-runner ішінде жатады. concurrent - осы хостта тіркелген барлық runner үшін шектеу, әр runner үшін жеке параметр емес, және әр runner оның астында өзінің кішірек шегін ұстай алады.

  6. Бір тапсырмамен тексеріңіз

    stages: [test]
    
    smoke:
      stage: test
      tags: [docker-runner]
      script:
        - cat /etc/os-release
        - echo "built on $CI_RUNNER_DESCRIPTION"

    Мұны .gitlab-ci.yml ретінде коммит жасап, push жасаңыз - тапсырма бірнеше секундта сіздің хостыңызға түсуі керек. Кезекте қалса, тегтер интерфейсте қойғандарыңызбен сәйкес келмейді немесе runner басқа жобаға байланған.

Ресми құжаттамамен салыстырылған күні 2026-08-15 — дереккөзді оқу

Біз кім емеспіз

  • Біз GitLab емеспіз. GitLab, GitLab CI/CD және GitLab Runner оларға тиесілі, әрі бұл беттегі ештеңе олармен мақұлданбаған. Біз сататынымыз - runner жүретін машина.
  • Бұл бет GitLab-тың өзін хостингте ұстау туралы емес. Өзің басқаратын GitLab данасы - үлкенірек машина және басқа әңгіме; сұраңыз, біз оны өлшеп береміз, бірақ мұнда бағаланғаны ол емес.
  • Біз сіздің .gitlab-ci.yml файлыңызды жазбаймыз. Конвейер сіздікі; хост, желі және адрес - біздікі.
  • Сұрамасаңыз, runner сіз үшін басқарылмайды. Оны өзіңіз орнатасыз немесе біздің әкімшілендіру қызметімізді қосасыз, сонда біз оны жаңартып, тіркеулі әрі бақылауда ұстаймыз.
  • GitLab жазылымыңыз GitLab-та қалады. Өзің басқаратын runner олардың есептеу минуттарын жұмсамайды, мәні сонда, бірақ ол пайдаланушы лицензияларын да алмастырмайды.

Топтар кеш байқайтын бөліктер

  • Тіркеу токені арқылы жүретін жол кетіп барады. Интерфейсте жасалған runner glrt- аутентификация токенін қайтарады, оны gitlab-runner register --token ретінде қабылдайды, ал --registration-token GitLab 20.0-де жойылуы жоспарланған.
  • Тегтер онымен бірге көшті. Аутентификация токенінде тапсырма тегтері, тегсіз параметр және байлау интерфейсте жасалған runner нысанына тиесілі, сондықтан оларды бұрын командалық жолда қойған жалаушалар енді ештеңе шешпейді.
  • Нұсқаны бекіту екі пакетті бекітуді білдіреді. 17.7.1-ден бері айқын gitlab-runner нұсқасы сол нұсқадағы gitlab-runner-helper-images дегенді де талап етеді, әйтпесе apt орнатудан бас тартады.
  • check_interval әдепкіде 3 секундқа тең. Көп runner тіркелген хостта бұл өте көп сұрау салу; желіні кінәламас бұрын бұл мәнді көтеріңіз.
  • Docker-in-Docker привилегиялы режимді талап етеді, ал бұл іс жүзінде тапсырмаға хостта root береді. Егер конвейер тек образ құрастырса, Kaniko немесе Buildah сияқты root-сыз құрастырғыш арзанырақ айырбас.
  • Кешті өзіңіздің S3-үйлесімді шелегіңізге бағыттамайынша артефакттар мен кештер әлі де GitLab-қа саяхаттайды. Әдейі ЕО-ға көшірген runner-де бұл әдетте көшіруге қалған соңғы қадам.

Провайдердегі CI минуттары мен өз runner-іңіз

Провайдер хостингіндегі CI минуттарыDCXV-дегі раннер
Не үшін төлейсізЖоба өмір сүріп тұрғанда әр тапсырманың әр минуты үшінТұрақты айлық хост үшін, конвейер сол айда не істесе де
Баяулаған құрастыруБаяу күйінде қалған әр айда қымбатырақ түседіАртық ештеңе тұрмайды - машина әлдеқашан төленген
Docker қабаттар кешіӨзіңіз жүктеп салып, кері жүктемесеңіз, әр тапсырмада суықЖергілікті NVMe-де жылы, тапсырмалар арасында да, күндер арасында да
ПараллельдікКөтеретін тариф сатысыӨз конфигурация файлыңызда қоятын сан
Checkout қайда түседіОртақ машиналар паркіне, көбіне бекіте алмайтын аймаққаПрага не Ковильяндағы бір машинаға, Кипр келісімшарты бойынша
Шығыс адресЕштеңемен рұқсат ете алмайтын үлкен ортақ диапазонAS204057 ішіндегі бір статикалық IPv4, рұқсат етуге өзіңіздікі
Машина нені ұстай аладыRunner образы кездейсоқ әкелгендіБір рет орнатқан кез келген құралдар тізбегін, лицензияны немесе сынақ деректері жиынтығын

Бұл сіздің хостыңызда қалай іске қосылады

1

Конвейер не істейтінін айтыңыз

Бүгін орындайтын ең ауыр тапсырма, олардың қаншасы қатар жүруі керек және ол контейнер образдарын құрастыра ма. Хостты болжамсыз өлшеуге осы жеткілікті.

2

Біз машинаны тапсырамыз

Прага немесе Ковильян, root қатынасы және статикалық IPv4, он минуттан аз уақытта. Runner әлдеқашан образдың ішінде болса, өз образыңызды әкеліңіз.

3

Осы беттегі қадамдық нұсқаулықты орындаңыз

Бұл өндірушінің реттілігі, блог жазбасынан емес, оның қазіргі құжаттамасынан алынған, әрі таза хостта бірнеше минут алады.

4

Суретке түсіріп алыңыз, содан соң екіншісін қосыңыз

Бірінші конвейер жасыл болған бойда снапшот жасаңыз, сонда келесі машина нөлден құру емес, қалпына келтіру болады. Пул бір хостты алыпқа айналдырумен емес, хост қосумен өседі.

Неліктен бізді таңдайды

  • Tier III сертификатталған нысандар, нысан SLA 99,982 %
  • Өз желісі, AS204057, IPv4 және IPv6
  • Орташа жауап беру уақыты шамамен 10 минут болатын 24/7/365 қолдау
  • Кипрдегі компания, ЕО юрисдикциясы, 2007 жылдан GDPR-ге сәйкестік

FAQ

- Ортақ runner мен өзің басқаратын runner-дің айырмасы неде?

Ортақ runner - GitLab машинасы, ал сіз оның тапсырмаңызға жұмсаған минуттары үшін төлейсіз. Өзің басқаратын runner - сіздің машинаңыз: оған gitlab-runner орнатасыз, оны жобаңызға, тобыңызға немесе данаңызға тіркейсіз, ал ол есептеу минуттарын мүлде жұмсамайды. GitLab-тың тегін тарифіндегі аттар кеңістігі айына 400 есептеу минутын алады, ал қарбалас конвейер оларды бірнеше күнде өткізеді

- GitLab Runner-ді қалай орнатып, тіркеймін?

packages.gitlab.com ішіндегі орнату сценарийінен олардың apt репозиторийін қосыңыз, gitlab-runner пакетін орнатыңыз, содан кейін gitlab-runner register дегенді интерактивті емес режимде, GitLab интерфейсте runner жасағанда беретін аутентификация токенімен іске қосыңыз. Дәл командалары бар толық реттілік осы бетте, блог жазбасынан емес, олардың құжаттамасынан алынған

- Runner әлі де тіркеу токенімен тіркеле ме?

Жоқ, әрі ескі нұсқаулықтардың көбін бұзатын өзгеріс осы. Алдымен GitLab интерфейсінде runner жасаңыз - ол glrt- деп басталатын аутентификация токенін қайтарады, оны gitlab-runner register --token ретінде қабылдайды. --registration-token арқылы жүретін ескі жол ескірген және GitLab 20.0-де жойылуы жоспарланған. Тапсырма тегтері, тегсіз параметр және байлау енді register командасына емес, интерфейсте жасаған runner нысанына тиесілі

- GitLab Runner-ге қандай өлшемдегі сервер керек?

GitLab runner-дің өзіне аппараттық талап жарияламайды, өйткені runner процесі кішкентай, ал сіздің құрастыруыңыз олай емес. Ең ауыр тапсырманы қажет параллельдікке көбейтіп өлшеңіз. Тәжірибеде 4 vCPU, 8 ГБ және 120 ГБ NVMe бір мезгілде екі-үш тапсырманы көтереді; 8 vCPU, 16 ГБ және 240 ГБ алтыдан сегізге дейін көтереді. Дискіні аямаңыз - оны Docker қабаттар кеші мен жұмыс каталогы толтырады

- Runner хостында Docker керек пе?

Тек docker executor қолдансаңыз, ал көпшілік солай істейді. Ол жергілікті Docker Engine-мен API v1.25 арқылы сөйлеседі, сондықтан демон runner хостының өзінде орнатылуы керек. Shell executor-ге Docker мүлде керек емес, ал instance және docker-autoscaler executor-лері машиналарды басқа жерде жасайды

- Бірнеше runner бір хостты бөлісе ала ма?

Иә, әрі бұл қалыпты пішін. Бір инсталляцияға қалағаныңызша тіркеңіз; /etc/gitlab-runner/config.toml ішіндегі concurrent параметрі олардың бәріне шектеу, ал әр runner оның астында өзінің кішірек шегін ұстай алады. check_interval-ды бақылаңыз: ол әдепкіде 3 секунд және хост он шақты runner көтергенде өте көп сұрау салуға айналады

Егер сізге көмек қажет болса немесе қосымша сұрақтарыңыз болса, менеджерлерге хабарласыңыз немесе қолдау қызметіне келесі мекенжай бойынша жазыңыз support@dcxv.com

Бастауға дайынсыз ба?

Бұлттық серверлер 15 €/айдан бастап
  • Ай сайын төлем
  • Қосу ақысы жоқ
  • Байлау жоқ