Summary

K3s 환경에서 기본 제공되는 번들 Traefik을 삭제하고 최신 Traefik을 설치하는 과정을 기록했습니다.

K3s를 설치할 때 기본으로 제공되는 번들 Traefik은 버전이 너무 오래되어서 최신 버전 기준 유용한 기능을 많이 사용하지 못합니다. 그래서 번들 Traefik을 비활성화하고 helm을 사용하여 최신 Traefik을 설치합니다.

번들 Traefik 비활성화

  1. sudo nano /etc/systemd/system/k3s.service
  2. --disable=traefik 추가
  3. K3s 서비스 재시작
sudo systemctl daemon-reload
sudo systemctl restart k3s
  1. 번들 Traefik 리소스 삭제
# K3s가 관리하던 HelmCharts 리소스 삭제
kubectl -n kube-system delete helmcharts.helm.cattle.io traefik
kubectl -n kube-system delete helmcharts.helm.cattle.io traefik-crd
 
# 기존 Traefik 파드 및 서비스 삭제
kubectl -n kube-system delete deploy traefik
kubectl -n kube-system delete svc traefik

최신 Traefik 설치

Traefikhelm으로 설치 및 관리합니다.

helm repo add traefik https://helm.traefik.io/traefik
helm repo update

yaml

helm을 사용하면 좋은 점은 values를 지정하여 yaml 템플릿을 동적으로 수정할 수 있습니다.

trafik-values.yaml
providers:
  kubernetesIngress:
    publishedService:
      enabled: false
 
ports:
  web:
    port: 8000
    expose:
      default: true
    exposedPort: 80
  websecure:
    port: 8443
    expose:
      default: true
    exposedPort: 443
 
deployment:
  kind: DaemonSet
 
updateStrategy:
  type: RollingUpdate
  rollingUpdate:
    maxUnavailable: 1
    maxSurge: 0
 
ingressRoute:
  dashboard:
    enabled: false
 
hostNetwork: true
helm install traefik traefik/traefik \
--namespace traefik-system \
--create-namespace \
-f traefik-values.yaml

Tip

번들 Traefik으로 설정한 Ingress가 있더라도 별도의 수정없이 바로 사용 가능합니다.