Obsah článku
title: "Konfigurácia Traefik IngressRoute pre Externú Službu (Zabbix Monitor)"
slug: "k3s-traefik-ingressroute-external-service-zabbix"
technologies: ["Kubernetes (k3s)", "Traefik", "YAML", "IngressRoute", "Middleware"]
tags: ["k3s", "traefik", "ingress", "networking", "external-service", "zabbix"]
date_solved: "2025-08-24"
Projekt/Téma: Konfigurácia Traefik IngressRoute pre Externú Službu (Zabbix Monitor)
-
Cieľ / Problém na vyriešenie: Cieľom bolo sprístupniť externú službu (Zabbix monitor bežiaci na samostatnej VM) v rámci Kubernetes klastra cez Traefik IngressRoute na zabezpečenej HTTPS adrese
monitor.oit.sk. -
Použité technológie a nástroje:
- Orchestrátor: Kubernetes (k3s)
- Ingress Controller: Traefik
- Konfiguračný jazyk: YAML
- Kubernetes objekty:
Service(bez selektora),Endpoints,IngressRoute,Middleware
-
Kľúčové postupy a konfiguračné kroky:
- Vytvorenie
Serviceobjektu bez selektora, ktorý slúži ako abstraktný cieľ pre Ingress v rámci klastra. - Vytvorenie
Endpointsobjektu s rovnakým názvom akoService. Tento objekt manuálne mapujeServicena externú IP adresu a port (napr.192.168.22.10:80). - Vytvorenie
Certificateobjektu precert-manager, aby sa zabezpečil TLS certifikát pre doménumonitor.oit.sk. - Definovanie
IngressRouteprewebsecure(HTTPS) entrypoint, ktorý smeruje prevádzku na vytvorenýService.
- Vytvorenie
-
Výsledné kódy a skripty:
# --- 2. Služba (Service) - Abstrakcia pre routing apiVersion: v1 kind: Service metadata: name: monitor-external-service namespace: monitoring spec: ports: - name: web port: 80 targetPort: 80
--- 3. Koncový bod (Endpoints) - Manuálne prepojenie na externú IP VM
apiVersion: v1 kind: Endpoints metadata: name: monitor-external-service namespace: monitoring subsets:
- addresses:
- ip: "192.168.22.10" ports:
- name: web port: 80 protocol: TCP
--- 7. IngressRoute pre HTTPS (secure)
apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: monitor-ingress-secure namespace: monitoring spec: entryPoints:
- websecure routes:
- match: Host(
monitor.oit.sk) kind: Rule services:- name: monitor-external-service
port: 80
tls:
secretName: monitor-tls
- name: monitor-external-service
port: 80
tls:
secretName: monitor-tls
-
Zistené problémy a riešenia (Gotchas):
- Problém:
IngressRoutepremonitor.oit.sknefungoval a nebol registrovaný v Traefik dashboarde. - Riešenie: V definícii
IngressRoute(monitor-ingress-secure) sa nachádzal odkaz naMiddlewares názvommonitor-basic-auth. Definícia tohtoMiddlewarevšak bola v konfiguračnom súbore zakomentovaná. Keďže Traefik nenašiel referencovanýMiddleware, celýIngressRoutepovažoval za neplatný. Riešením bolo odstránenie celej sekciemiddlewaresz definícieIngressRoute.
- Problém:
-
Finálny výsledok / Záver: Po odstránení odkazu na neexistujúci
Middlewarezačal Traefik správne spracovávaťIngressRoutea úspešne smerovať HTTPS prevádzku zmonitor.oit.skna externú IP adresu Zabbix servera.