Kali ini kita akan belajar Integrasi ke K3s, jadi berikut yang akan kita bahas
Berikut Topology yang di harapkan
Macbook / Laptop -> Gitlab -> Server gitlab runner -> Ks3 ( untuk deploy)
A.Integrasi laptop dengan Gitlab konek via ssh
Sekarang tinggal memastikan local project kamu benar-benar sudah menjadi Git repository dan ada commit yang bisa di-push.
Urutan lengkapnya seperti ini:
cd existing_repo1. Inisialisasi Git (kalau belum)
git init2. Tambahkan file project
git add .3. Commit pertama
git commit -m "first commit"Kalau muncul error identity unknown:
git config --global user.name "Nama Kamu"
git config --global user.email "[email protected]"Lalu commit ulang.
4. Tambahkan remote GitLab
git remote add origin https://gitlab.com/project7112620/belajar-gitlab.gitKalau sebelumnya sudah pernah add origin dan muncul:
remote origin already existsgunakan:
git remote remove originlalu add lagi.
5. Rename branch ke main
git branch -M main6. Push ke GitLab
git push -uf origin mainKalau Muncul Login Password Error
GitLab sekarang biasanya tidak menerima password biasa untuk HTTPS.
Solusi terbaik:
- gunakan Personal Access Token
ATAU - gunakan SSH key (lebih recommended)
Cara Pakai SSH (Recommended)
Generate SSH key
ssh-keygen -t rsa -b 4096 -C "[email protected]"Tekan ENTER terus.
Ambil public key
cat ~/.ssh/id_rsa.pubCopy hasilnya.
Tambahkan ke GitLab
Klik:
- Add new key
- paste public key
- save
Ganti remote HTTPS jadi SSH
Cek dulu:
git remote -vGanti:
git remote set-url origin [email protected]:project7112620/belajar-gitlab.gitTest SSH
ssh -T [email protected]Kalau berhasil muncul:
Welcome to GitLab ...Push lagi
git push -uf origin mainSetelah Berhasil
Cek project GitLab kamu:
Kalau file sudah muncul berarti sukses 🎉
B. Install Gitlab Runner
Misalkan saya installkan gitlab runner di master K3s
Agar pipeline jalan:
- install GitLab Runner
- runner harus punya Docker
install docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullinstall gitlab runner
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner -yRegister Runner
Di GitLab:
- Settings
- CI/CD
- Runners
- Create project runner
- Copy token


misal namanya -> main-runner
Lalu:
sudo gitlab-runner register
Enter the GitLab instance URL:
https://gitlab.com/
Enter the registration token:
xxxxxx
Enter a description for the runner:
k3s-runner
Enter tags for the runner:
k3s,docker
Enter optional maintenance note:
(skip)
Enter an executor:
docker
Enter the default Docker image:
docker:latestSetelah Berhasil
Cek runner:
sudo gitlab-runner statusC. Coba Build dari Gitlab ke K3s
Ambil code dari -> https://github.com/kyuby13/belajar-gitlab
yang wajib harus ada file .gitlab-ci.yml -> jangan lupa tags nya harus sama nama nya dengan nama runner di gitlab yang di langkah bagian B misalkan namanya main-runner
deploy:
image: alpine:latest
tags:
- main-runner
stage: deploy
before_script:
- apk add --no-cache curl
- curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
- chmod +x kubectl
- mv kubectl /usr/local/bin/
variables:
KUBECONFIG: /etc/rancher/k3s/k3s.yaml
script:
- kubectl get nodes
- kubectl apply -f deployment.yaml
- kubectl apply -f service.yamlkurang lebih nanti isi file nya seperti berikut :

saya anggap nanti isi project gitlab anda sudah sama dengan gambar tersebut.
D. Setting K3s dan Gitlab Runner
setting k3s ( ubah IP dari localhost ke IP K3s)
nano /etc/rancher/k3s/k3s.yaml
ubah bagian server: https://127.0.0.1:6443
menjadi server: https://192.168.10.15:6443Setting Gitlab Runner
nano /etc/gitlab-runner/config.toml
concurrent = 1
check_interval = 0
connection_max_age = "15m0s"
shutdown_timeout = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "master-runner"
url = "https://gitlab.com"
id = 53125612
token = "glrt-T2W3hsya775bXIB7_TdsVmM6MQpvOjEKcDoxY3c0NXIKdDozCnU6OG94MnAc.01.1o0ngqaug"
token_obtained_at = 2026-05-12T10:07:25Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "docker"
tag_list = ["k3s"]
[runners.cache]
MaxUploadedArchiveSize = 0
[runners.cache.s3]
AssumeRoleMaxConcurrency = 0
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "docker:latest"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache", "/etc/rancher/k3s:/etc/rancher/k3s"]
volume_keep = false
shm_size = 0
network_mtu = 0
Note: tambahkan line tag_list = [“k3s”] , ubah line privileged = true dan volumes = [“/cache”, “/etc/rancher/k3s:/etc/rancher/k3s”]
sudo systemctl restart gitlab-runner
sudo gitlab-runner verify
sudo systemctl status gitlab-runner
kubectl get node
kubectl get pods
kubectl get svcE. Coba trigger untuk Build
Dari macbook/lapotp coba trigger
git add .
git commit -m "first k3s deployment"
git push
atau cara triger pipline nya saja
git commit --allow-empty -m "rerun pipeline"
git pushcek di gitlab, jika sukses berarti berhasil

cek pods di K3s , jika berhasil akan muncul pod baru
root@kube1:~# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-app-6489b68c68-44f5b 1/1 Running 0 3h2m
coba akses via web -> http://192.168.10.15:30080

Workflow kamu sekarang:
MacBook
↓
git push
↓
GitLab Pipeline
↓
Runner di kube1
↓
kubectl apply
↓
Deploy otomatis ke K3sItu sudah real DevOps pipeline.
Yang Sudah Berhasil
✅ GitLab Runner lokal
✅ Runner connect ke K3s
✅ Pipeline otomatis
✅ Auto deployment Kubernetes
✅ Service NodePort
✅ kubectl dari pipeline

