Belajar Traefik - Kubernetes Provider - Ingress
Episode 20 of 31

Belajar Traefik - Kubernetes Provider - Ingress

Episode ini membuka fase Kubernetes: provider kubernetesingress, IngressClass dan resource Ingress, routing berbasis host dan path, annotation traefik.ingress.kubernetes.io untuk middleware dan entrypoints, TLS dengan Secret dan cert-manager, serta tipe Service Kubernetes yang mendukung Traefik.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Di cluster Kubernetes, Traefik berubah peran: dari edge router yang diawasi Docker menjadi Ingress Controller. Episode 20 membahas provider kubernetesingress — cara Traefik membaca resource Kubernetes standar Ingress, IngressClass, annotation, dan TLS. Episode 21 akan membawa kalian lebih jauh ke CRD IngressRoute yang eksklusif Traefik.

Perbedaan konsep dengan Docker cukup mendasar: alih-alih label per container, konfigurasi datang dari resource API Kubernetes yang dikelola lewat kubectl. Setelah episode ini, kalian akan paham kenapa Traefik menjadi salah satu ingress controller paling populer di dunia Kubernetes.

Menyiapkan Kubernetes Provider

IngressClass dan Pengaktifan

Provider diaktifkan di static config, dan Traefik menunggu resource yang menunjuk IngressClass bernama yang dikonfigurasi:

Static config untuk kubernetesingress
providers:
  kubernetesIngress:
    ingressClass: traefik
    namespaces:
      - default
      - app-team
    allowEmptyServices: true
  • ingressClass: traefik: hanya memproses Ingress dengan ingressClassName: traefik.
  • namespaces: membatasi namespace yang dipantau; kosong berarti semua.
  • allowEmptyServices: mengizinkan endpoint backend kosong.

IngressClass itu sendiri didefinisikan sebagai resource:

IngressClass
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: traefik
spec:
  controller: traefik.io/ingress-controller

Resource Ingress

Routing Berbasis Host dan Path

Resource Ingress standar memakai rules untuk mendefinisikan host dan paths untuk route per path:

Ingress dengan host dan path
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web
  namespace: default
  annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
    traefik.ingress.kubernetes.io/router.middlewares: default-auth@kubernetescrd
spec:
  ingressClassName: traefik
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: api-service
                port:
                  number: 8080
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web-service
                port:
                  number: 80

Path /api/* diteruskan ke api-service, semua path lain ke web-service. Annotation menentukan entrypoint yang dipakai dan middleware yang ditempel. Template default-auth@kubernetescrd merujuk middleware CRD — kita bedah di episode 21.

Annotation Traefik

Mengontrol Router dari Annotation

Annotation traefik.ingress.kubernetes.io/* memetakan hampir semua kemampuan router Traefik:

  • router.entrypoints: daftar entrypoint yang dilayani.
  • router.middlewares: middleware chain yang dipakai.
  • router.tls: aktivasikan TLS pada router.
  • router.certresolver: certificate resolver untuk sertifikat otomatis.
  • router.priority: nilai priority manual.

Contoh annotation untuk entrypoint HTTPS sekaligus certificate resolver:

Annotation TLS dan resolver
annotations:
  traefik.ingress.kubernetes.io/router.entrypoints: websecure
  traefik.ingress.kubernetes.io/router.tls: "true"
  traefik.ingress.kubernetes.io/router.certresolver: letsencrypt

Annotation router.tls menyalakan TLS pada router, dan router.certresolver menghubungkannya ke resolver yang didefinisikan di static config. Kombinasi keduanya membuat Traefik menerbitkan dan menghidangkan sertifikat secara otomatis.

TLS di Kubernetes

Secret dan Cert-Manager

Dua jalur sertifikat yang umum di Kubernetes:

  1. Secret-based: kalian membuat Secret berisi tls.crt dan tls.key, lalu menyebutnya di bagian tls Ingress.
  2. Cert-manager: cert-manager menerbitkan sertifikat otomatis dan menulisnya ke Secret; annotation cert-manager.io/cluster-issuer mengaktifkannya.
Ingress dengan TLS via cert-manager
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-tls
  namespace: default
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  ingressClassName: traefik
  tls:
    - hosts:
        - app.example.com
      secretName: app-tls-secret
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: app-service
                port:
                  number: 80

Cert-manager membuat sertifikat, menulis Secret app-tls-secret, dan Traefik membaca Secret tersebut untuk menghidangkan HTTPS. Kombinasi ini adalah standar emas otomasi TLS di Kubernetes.

Service Types dan Service Discovery

ClusterIP, NodePort, LoadBalancer, ExternalName

Traefik menemukan backend lewat resource Service:

  • ClusterIP: tipe default; Traefik meneruskan langsung ke IP service. Inilah yang paling umum.
  • NodePort: service di-expose di port node; Traefik bisa meneruskan ke node.
  • LoadBalancer: biasanya diisi oleh controller cloud; Traefik tetap menunjuk backend sesuai endpoints.
  • ExternalName: merujuk service eksternal di luar cluster.

Traefik membaca Endpoints dari service, bukan hanya IP virtual — jika pod di-scale, daftar endpoint berubah dan load balancing mengikutinya. Persis seperti auto-discovery Docker yang sudah kalian kenal.

Warning

Jika allowEmptyServices bernilai false (default) dan sebuah Service tidak memiliki Endpoints, Traefik menganggap konfigurasi tidak valid dan menolak pembaruan. Di banyak cluster, Ingress yang menunjuk Service kosong menjadi alasan kenapa router tidak muncul — cek dulu kubectl get endpoints.

Penutup

Inti yang harus dibawa pulang:

  • Provider kubernetesIngress membaca resource Ingress dengan ingressClassName yang cocok.
  • Routing host dan path didefinisikan di bagian rules dan http.paths.
  • Annotation traefik.ingress.kubernetes.io/* mengatur entrypoint, middleware, dan TLS.
  • Sertifikat datang dari Secret, bisa diotomasi cert-manager.
  • Backend ditemukan lewat Service dan Endpoints, berubah mengikuti scale.
  • Cek Endpoints saat router tidak muncul.

Di episode 21 selanjutnya kita akan membahas kubernetes CRDs IngressRoute — resource eksklusif Traefik yang jauh lebih ekspresif: middleware, weighted services, traffic splitting, sticky sessions, dukungan TCP/UDP, dan referensi lintas namespace. Di sinilah Traefik benar-benar terasa "native" di Kubernetes.

Belajar Traefik - Kubernetes Provider - Ingress | Belajar Traefik