Masdika Loading..
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portfolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Panduan Lengkap Install K3s di Ubuntu dan Konfigurasi Remote Kubectl dari Windows PC/Laptop
  • Deploy Next.js di Kubernetes dengan Ingress + SSL Let’s Encrypt
  • Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager
  • Panduan Lengkap Deploy WordPress + Redis + MySQL di Kubernetes dengan SSL Cloudflare
  • Panduan Lengkap Install & Konfigurasi Ceph 3 Node dengan RGW (S3 Compatible)

Recent Comments

  1. Riyan on Cara Kirim Notifikasi Otomatis SSL Expired via Email (Lengkap + Bash Script)
  2. Ardian on Cara Kirim Notifikasi Otomatis SSL Expired via Email (Lengkap + Bash Script)
  3. Masdika.ID on Panduan Lengkap Install K3s di Ubuntu dan Konfigurasi Remote Kubectl dari Windows PC/Laptop
  4. Rudy on Panduan Lengkap Install K3s di Ubuntu dan Konfigurasi Remote Kubectl dari Windows PC/Laptop
  5. Firman on Deploy Next.js di Kubernetes dengan Ingress + SSL Let’s Encrypt

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
BLOG POST

Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager

August 25, 2025 Tutorial by Masdika.ID
Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager

Buat kamu yang baru belajar Kubernetes dan ingin mengamankan domain dengan Let’s Encrypt SSL melalui Cloudflare DNS, ikuti panduan step by step ini. Dijamin gampang dipahami, bahkan untuk pemula! 😉

🔑 1. Membuat Cloudflare API Token

  1. Masuk ke dashboard Cloudflare → https://dash.cloudflare.com
  2. Pilih menu My Profile → API Tokens
  3. Klik Create Token
  4. Pilih template Edit zone DNS → Use template
  5. Atur permission:
    • Zone → DNS → Edit ✅
  6. Atur zone (domain) yang boleh diakses, contoh: masdika.biz.id
  7. Klik Continue to Summary → Create Token
  8. Salin token yang muncul → simpan aman (misalnya 9Lxxr8Gq4Zts...)

👉 Token ini yang nanti akan dipakai di Kubernetes sebagai Secret.

📦 2. Deploy cert-manager di Kubernetes

Pastikan cluster Kubernetes sudah jalan. Deploy cert-manager versi terbaru:

kubectl create namespace cert-manager
kubectl apply -n cert-manager -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml

Tunggu sampai pod cert-manager Running:

kubectl get pods -n cert-manager

🗝 3. Membuat Secret untuk API Token Cloudflare

Buat file cloudflare-secret.yaml:

apiVersion: v1
kind: Secret
metadata:
  name: cloudflare-api-token-secret
  namespace: cert-manager
stringData:
  api-token: "ISI_API_TOKEN_CLOUDFLARE"

Apply ke cluster:

kubectl apply -f cloudflare-secret.yaml

🌍 4. Membuat ClusterIssuer untuk Let’s Encrypt

File: cluster-issuer.yaml

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    email: [email protected]   # ganti dengan email kamu
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: letsencrypt-prod-private-key
    solvers:
    - dns01:
        cloudflare:
          apiTokenSecretRef:
            name: cloudflare-api-token-secret
            key: api-token

Apply:

kubectl apply -f cluster-issuer.yaml

Cek status ClusterIssuer:

kubectl get clusterissuer letsencrypt-prod -o wide

Kalau READY=True berarti sukses 🎉

🔒 5. Uji dengan Certificate

Contoh file certificate.yaml:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: masdika-cert
  namespace: default
spec:
  secretName: masdika-tls
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  dnsNames:
  - masdika.biz.id
  - www.masdika.biz.id

Apply:

kubectl apply -f certificate.yaml

Cek status certificate:

kubectl describe certificate masdika-cert -n default

Kalau berhasil, Secret masdika-tls akan berisi SSL certificate yang bisa langsung dipakai di Ingress. 🔥

🎯 Kesimpulan

Dengan langkah di atas, kita sudah:

  1. Membuat API Token di Cloudflare
  2. Deploy cert-manager di Kubernetes
  3. Simpan token sebagai Secret
  4. Buat ClusterIssuer Let’s Encrypt
  5. Uji dengan membuat Certificate untuk domain

Sekarang domain kamu bisa otomatis dapet SSL gratis dari Let’s Encrypt, dan auto-renew setiap 90 hari. 😎👌

✨ Tips:

  • Gunakan email aktif di ClusterIssuer biar dapat notifikasi kalau ada masalah.
  • Pastikan Cloudflare token hanya punya akses DNS Edit agar lebih aman.
  • Kalau mau staging (testing), bisa ganti server ke: https://acme-staging-v02.api.letsencrypt.org/directory

💬 Gimana, mau saya bikinin juga contoh Ingress yang langsung pakai Secret masdika-tls biar SSL langsung aktif di Nginx Ingress Controller? Komen dibawah ya !!!!

Share:
Tags: api tokenscloudflarednszone
Related Posts

Post navigation

Prev
Next
5 Comments
  • Danuarta 8:18 pm August 25, 2025 Reply

    Wihh thanks mas ehehe

    • Masdika.ID 8:29 pm August 25, 2025 Reply

      okey

  • Cengcet 8:20 pm August 25, 2025 Reply

    sanggar poll maz

    • Masdika.ID 8:22 pm August 25, 2025 Reply

      Oke siap wkw

    • Radit 12:52 pm August 26, 2025 Reply

      Jos emang

Write a comment Cancel Reply


© 2025 www.masdika.id — Semua hak cipta dilindungi