RKE2は元々デフォルトでNginx Ingressを採用している。しかしNginx Ingressはすでに非推奨なので移行する必要があります。
注意事項
Traefikがすでにあるとデプロイできないので注意です
以下の作業はControlPlaneに作業します
LB(MetalLB)を使用しています
Traefikの追加
現在有効なIngressNginxにTraefikを追加します
sudo tee /etc/rancher/rke2/config.yaml.d/99-ingress.yaml >/dev/null <<'EOF' ingress-controller: - ingress-nginx - traefik EOF
sudo tee /var/lib/rancher/rke2/server/manifests/rke2-traefik-config.yaml > /dev/null <<'EOF'
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-traefik
namespace: kube-system
spec:
valuesContent: |-
deployment:
enabled: true
kind: DaemonSet
ingressClass:
enabled: true
isDefaultClass: true
name: traefik
providers:
kubernetesCRD:
enabled: true
ingressClass: traefik
kubernetesIngress:
enabled: true
ingressClass: traefik
publishedService:
enabled: true
service:
enabled: true
type: LoadBalancer
annotations:
metallb.universe.tf/loadBalancerIPs: "172.16.99.3"
ports:
traefik:
expose:
default: false
web:
port: 8000
exposedPort: 80
hostPort: 80
protocol: TCP
expose:
default: true
websecure:
port: 8443
exposedPort: 443
hostPort: 443
protocol: TCP
expose:
default: true
logs:
general:
level: INFO
ingressRoute:
dashboard:
enabled: false
EOFDaemonSetでデプロイしますが、サービスでLBを展開します。
デプロイ済みのIngressClassをtraefikに差し替えます。
最後に古いNginxIngressを除外します
sudo tee /etc/rancher/rke2/config.yaml.d/99-ingress.yaml >/dev/null <<'EOF' ingress-controller: - traefik EOF
動作確認したらOKです
参考
Ingress NGINX to Traefik Migration Guide | RKE2
The Kubernetes Ingress NGINX project has announced its retirement in March 2026. As a result, RKE2 is transitioning to T...


コメント