how-to-install-and-manage Help

Traefik

Traefik va être utiliser en tant qu'ingress principale. L'ingress permet de rediriger le traffic des services vers l'exterieur du cluster. Ensuite Traefik va être le service qui va agir en tant que reverse proxy via son role d'ingress. Et ensuite Traefik sera aussi l'entité qui va gérer nos certificats, TLS en le renouvellement avec lets encrypt automatiquement.

Installation de Traefik

Pour l'installation de Traefik, nous allons utiliser Helm. Pour installer Traefik, nous allons avoir besoins d'installer le Repository ou se situe la Charts de Traefik.

apiVersion: source.toolkit.fluxcd.io/v1 kind: HelmRepository metadata: name: traefik namespace: traefik spec: interval: 1m url: https://helm.traefik.io/traefik

Ensuite, il a fallu rajouter la Release Helm et les values rattacher avec pour configurer Traefik.

apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: traefik namespace: traefik spec: interval: 10m chart: spec: chart: traefik version: '34.3.0' sourceRef: kind: HelmRepository name: traefik namespace: traefik interval: 2h values: deployment: # Workaround pour traefik en ACME initContainers: - name: volume-permissions image: busybox:latest command: ["sh", "-c", "touch /data/acme.json; chmod -v 600 /data/acme.json"] volumeMounts: - mountPath: /data name: ssl-certs podSecurityContext: fsGroup: 65532 fsGroupChangePolicy: "OnRootMismatch" # Définir Traefik comme ingress par défaut ingressClass: enabled: true isDefaultClass: true # Ingress route pour avoir acces au dashboard de traefik ingressRoute: dashboard: enable: true matchRule: PathPrefix(`/dashboard`) || PathPrefix(`/api`) service: enabled: true type: LoadBalancer # Change de NodePort à LoadBalancer ports: web: port: 80 # Expose Traefik directement sur le port 80 websecure: port: 443 tls: enable: true # Optionnel pour HTTPS certResolver: "myresolver" logs: # Activer le mode verbose de traefik general: level: DEBUG # Arguement pour configurer l'ACME additionalArguments: - "--certificatesresolvers.myresolver.acme.storage=/data/acme.json" - "--certificatesresolvers.myresolver.acme.dnschallenge.provider=cloudflare" - "--certificatesresolvers.myresolver.acme.dnschallenge.resolvers=1.1.1.1:53,1.0.0.1:53" - "--certificatesresolvers.myresolver.acme.email=ridergogo00@gmail.com" # Token lié au secret cloudflare env: - name: CLOUDFLARE_DNS_API_TOKEN valueFrom: secretKeyRef: name: cloudflare-api-secret key: CLOUDFLARE_DNS_API_TOKEN # Stocker les secrets créer par Traefik persistence: enabled: true name: ssl-certs size: 1Gi path: /data storageClass: longhorn

Tester le fonctionnement de Traefik

Pour tester le fonctionnement de Traefik nous pouvons observé si la helm release est correctement déployé

helm list -n traefik
helm-traefik.png

On peut voir le status deployed cela veut dire que notre configuration à correctement été appliqué

Ensuite, il est possible de tester via le réseau. Pour tester via le réseau, il est possible de faire un curl sur le port http sur load-balancer et voir si nous avons une réponse.

curl-lb.png
Last modified: 13 July 2025