XP Boost

Written By Rania Naura

Published on

Cara Setup GitLab Runner di Kubernetes Cluster

Cara Setup GitLab Runner di Kubernetes Cluster

GitLab Runner itu alat yang keren banget soalnya dia bisa nge-boost proses development, terutama buat tim yang udah pake GitLab. Di artikel ini, kita bakal bahas gimana cara setup GitLab Runner di Kubernetes Cluster dengan cara yang simpel dan gampang dipahami.

Pendahuluan

GitLab Runner itu alat yang super powerful buat ningkatin proses development, terutama buat tim yang udah pake GitLab. Artikel ini bakal bahas lebih dalam tentang GitLab Runner, mulai dari manfaatnya, kemampuannya, sampe perbandingan dengan tools lain kayak Jenkins.

Kita juga bakal kupas tuntas berbagai jenis executor di GitLab Runner dan gimana caranya milih yang paling pas buat proyek kamu.

Apa itu GitLab Runner?

GitLab Runner – aplikasi open-source yang dipake buat ngejalanin pekerjaan Continuous Integration (CI) dan Continuous Deployment (CD) di lingkungan GitLab. Alat ini bekerja bareng GitLab CI/CD buat ngotomatisasi proses build, testing, dan deployment aplikasi software.

GitLab Runner jadi agen yang dengerin instruksi dari GitLab CI/CD, ngejalanin tugas-tugas yang udah ditentuin, dan laporin balik hasilnya ke GitLab. Gampangnya, GitLab Runner bikin semuanya jadi lebih efisien dan otomatis!

GitLab dan GitLab Runner

Kalo tim development kamu udah pake GitLab, integrasiin GitLab Runner bakal ngasih banyak keuntungan, nih:

  • Integrasi Mulus: GitLab Runner emang didesain buat nyambung langsung sama GitLab, jadi keduanya bisa jalan bareng tanpa hambatan.
  • Workflow Lebih Simpel: Kamu bisa ngegabungin repository kode, issue tracking, dan pipeline CI/CD semuanya di satu platform pake GitLab Runner, bikin proses development jadi lebih efisien.
  • Kolaborasi Makin Lancar: GitLab Runner bantu tim kamu buat komunikasi lebih efektif dengan ngasih feedback real-time soal status build, testing, dan deployment.
  • Scalability: GitLab Runner bikin kamu bisa nge-scale infrastruktur CI/CD sesuai kebutuhan proyek dan ukuran tim kamu.

Kemampuan

GitLab Runner punya beberapa kemampuan keren, nih:

  • Dukungan Lintas Platform: GitLab Runner bisa jalan di berbagai platform, mulai dari Linux, macOS, Windows, sampe Kubernetes.
  • Banyak Pilihan Executor: GitLab Runner support berbagai jenis executor, kayak Docker, Kubernetes, Shell, dan lainnya, jadi kamu bisa pilih lingkungan yang paling pas buat ngejalanin tugas kamu.
  • Eksekusi Paralel: GitLab Runner bisa ngejalanin beberapa job sekaligus, jadi proses CI/CD kamu bakal lebih cepat selesai.
  • Caching Canggih: GitLab Runner juga punya mekanisme caching yang oke banget buat ngurangin waktu build.

GitLab Runner Executors 

GitLab Runner punya beberapa pilihan executor, dan masing-masing punya keunggulan tersendiri. Jadi, kamu bisa pilih executor yang paling pas buat proyek kamu. Yuk, kita bahas satu-satu:

Shell Executor 

Shell executor ini ngejalanin build langsung di host tempat GitLab Runner diinstal. Ini executor yang paling simpel dan cepet buat di-setup dan nggak ada tuh konfigurasi ribet.

Tapi, kalo proyek kamu butuh lingkungan yang terisolasi atau ada banyak proyek yang jalan di host yang sama, Shell executor mungkin bukan pilihan terbaik.

Kelebihan Kekurangan
  • Gampang buat setup dan konfigurasi
  • Penggunaan resource yang irit
  • Akses langsung ke file sistem dan layanan host
  • Isolasi terbatas antara environment build
  • Risiko konflik yang lebih tinggi antara proyek-proyek yang pake host yang sama

Docker Executor

Docker executor ngejalanin build di dalam container Docker, jadi bikin lingkungan yang lebih terisolasi dan konsisten di banyak environment.

Executor ini cocok banget buat proyek yang butuh lingkungan yang bersih dan bisa direproduksi setiap kali build. Tapi, kamu perlu install dan konfigurasi Docker di sistem host dulu sebelum bisa pakai executor ini.

Kelebihan Kekurangan
  • Isolasi yang lebih baik antara environment build
  • Environment build yang konsisten
  • Manajemen dependensi yang lebih simpel
  • Butuh Docker yang udah terinstall dan dikonfigurasi
  • Resource tambahan yang kepake karena containerization

Kubernetes Executor

Kubernetes executor ngejalanin build di cluster Kubernetes, jadi bikin prosesnya lebih scalable dan resource-nya lebih ter-manage. Ini pilihan paling oke buat tim yang udah punya infrastruktur Kubernetes atau yang butuh scaling build resources secara dinamis.

Kelebihan Kekuragan
  • Skalabilitas dan manajemen sumber daya yang efisien
  • Isolasi dari build environments
  • Terintegrasi sama fitur-fitur asli Kubernetes
  • Butuh Kubernetes cluster yang udah di-setup dan dikonfigurasi
  • Lebih lama dan lebih susah dipelajari buat tim yang belum familiar sama Kubernetes

Parallels Executor

Parallels executor ini khusus buat sistem macOS dan ngejalanin build di dalam Parallels Desktop VM. Cocok banget buat proyek yang basisnya di macOS, terutama kalau butuh isolasi antara lingkungan build atau mau tes aplikasi di berbagai versi macOS.

Kelebihan Kekurangan
  • Pemisahan antara environment build di sistem macOS
  • Bisa dipake buat ngetes di berbagai versi macOS
  • Harus install dan konfigurasi Parallels Desktop dulu
  • Cuma bisa dipake di sistem macOS
  • Butuh sumber daya ekstra karena pake virtualisasi

SSH Executor

SSH executor ngejalanin build di server remote lewat SSH. Ini berguna banget kalau kamu perlu eksekusi tugas CI/CD di server tertentu atau pengen offload build tasks dari host GitLab Runner.

Kelebihan Kekurangan
  • Ngebebanin tugas build ke server remote
  • Cocok buat proyek yang butuh lingkungan server tertentu
  • Perlu konfigurasi dan manajemen server remote.
  • Ada masalah keamanan karena akses SSH

GitLab Runner vs Jenkins

Kalo dibandingin, Jenkins juga salah satu alat CI/CD yang sering dipake di industri. Meskipun GitLab Runner sama Jenkins sama-sama punya fitur CI/CD yang keren, GitLab Runner lebih unggul soal integrasi dan workflow yang lebih simpel kalo dipake bareng GitLab. Sementara itu, Jenkins punya kelebihan dengan plugin yang lebih banyak dan opsi ekstensi yang lebih luas.

Ini nih perbandingan antara GitLab Runner dan Jenkins, lengkap sama fitur, kelebihan, dan kekurangannya.

Fitur GitLab Runner Jenkins
Integrasi Integrasi sama GitLab lancar Perlu plugin dan konfigurasi buat integrasinya
Setup & Konfigurasi Setup dan konfigurasinya gampang Bisa jadi rumit karena bisa dikustomisasi banyak
User Interface UI sama GitLab nyatu UI-nya berdiri sendiri, misah sama kode repositori
Executor/Agen Punya banyak opsi executor (Docker, Kubernetes, dll) Punya banyak opsi agen (Docker, Kubernetes, dll)
Definisi Pipeline YAML-based `.gitlab-ci.yml` file Pipeline as code (Jenkinsfile) atau konfigurasi UI
Plugins & Extensibility Terbatas buat ekosistem GitLab Ekosistem plugin yang luas
Keamanan & Kepatuhan Fitur keamanan dan kepatuhan bawaan di GitLab Perlu plugin buat fitur keamanan dan kepatuhan
Komunitas & Support Komunitas aktif dan dukungan resmi Komunitas aktif dan dukungan resmi
Harge Gratis buat yang self-hosted, berbayar buat GitLab.com Gratis dan open-source

GitLab Runner sama Jenkins itu dua alat CI/CD yang sama-sama kuat dengan fitur lengkap. GitLab Runner punya integrasi yang mulus dan workflow yang lebih simpel dengan GitLab, sedangkan Jenkins unggul dengan banyaknya plugin dan opsi ekstensi. Pilihan antara keduanya tergantung kebutuhan tim lo, infrastruktur yang ada, dan seberapa familiar lo sama platformnya.

Setup GitLab Runner di Kubernetes Cluster

Sebelum lanjut instalasi GitLab Runner di Kubernetes cluster, pastiin Helm udah terinstall dan dikonfigurasi dengan bener. Helm itu kayak package manager buat Kubernetes, yang bikin deployment dan manajemen aplikasi di cluster jadi lebih gampang.

Di panduan ini, kita bakal pake GitLab Runner Helm Chart resmi.

~$ helm repo add gitlab https://charts.gitlab.io

~$ helm repo update gitlab

Kita bikin namespace khusus buat GitLab Runner dulu, ya.

~$ kubectl create namespace gitlab

Terus, bikin file values.yaml buat instalasi Helm.

Ada beberapa detail penting yang harus kamu perhatiin nih:

  • gitlabUrl: Ganti sama URL GitLab instance kamu. Kalo kamu pake GitLab.com, tinggal set nilainya jadi https://gitlab.com
  • runnerRegistrationToken: Bisa kamu cari di menu CI/CD > Runner
  • privileged: Set ke true kalo kamu pake docker-in-docker (dind)

Abis itu, tinggal install pake Helm, dan cek instalasinya deh. Dan voilà! Kamu udah punya GitLab Runner yang scalable dan andal di Kubernetes Cluster kamu.

GitLab Runner tuh alat yang bener-bener keren buat kamu yang pengen proses development di tim jadi lebih cepat dan efisien, apalagi kalo kamu udah pake GitLab. Integrasinya yang mulus bikin kamu nggak perlu ribet lagi urusin CI/CD pipeline, semuanya bisa jalan otomatis.

Kamu juga bisa pilih executor yang paling cocok buat proyek kamu, kayak Docker atau Kubernetes, jadi fleksibilitasnya oke banget. Pokoknya, GitLab Runner ini pilihan top deh buat kamu yang mau workflow kerja yang smooth dan nggak ribet!

Kamu juga bisa cari tau cara s Setup Redis di Kubernetes Cluster!

Baca di sini

Dalam misi menyediakan akses pendidikan berkualitas dan inklusif

Tentang

OnXP Logo

OnXP menyediakan tempat belajar teknologi dengan biaya terjangkau dan cocok buat pemula. Kurikulum kami dirancang khusus untuk pemula, dengan materi yang mudah dipahami dan dukungan penuh dari para fasilitator.

  • Email: learn@onxp.net
  • Phone number: +62 8311-772-3843
  • Address: Jl. Pembangunan II No.20, RT.7/RW.1, Petojo Utara, Kecamatan Gambir, Kota Jakarta Pusat, Daerah Khusus Ibukota Jakarta 10130