I am running Traefik 1.7 on k8s 1.19, So need to upgrade Traefik to 2.3. Need Help

I am running Traefik 1.7 on k8s 1.19, So need to upgrade Traefik to 2.3. Need Help

How we have configured currently-
1--> for LB we are using Netscaler ingress-controller.yml and ipam-controller.yml using CRD in the side kube-system.
2--> For reverse proxy, we have configured Traefik version 1.7

Our configuration is working perfectly fine, but our developer wants traefik to be upgraded to version 2.3, i checked Traefik official doc https://traefik.io/blog/install-and-configure-traefik-with-helm/, but was unable to understand how to deploy exactly using helm.

our current deployment Traefik1.7 was done using helm only.

Can you please help with simpler steps, how to deploy Traefik 2.3

I tried to install helm 2 using Traefik doc

but getting below error traefik pod-
time="2021-07-28T10:32:54Z" level=error msg="Cannot create service: service not found" serviceName=vault servicePort=8200 ingress=vault namespace=vault providerName=kubernetes
time="2021-07-28T10:32:54Z" level=error msg="Cannot create service: service not found" ingress=vault namespace=vault serviceName=vault servicePort=8200 providerName=kubernetes
time="2021-07-28T10:32:56Z" level=error msg="Cannot create service: service not found" serviceName=vault ingress=vault providerName=kubernetes namespace=vault servicePort=8200
time="2021-07-28T10:32:56Z" level=error msg="Cannot create service: service not found" namespace=vault serviceName=vault servicePort=8200 providerName=kubernetes ingress=vault
time="2021-07-28T10:32:58Z" level=error msg="Cannot create service: service not found" servicePort=8200 providerName=kubernetes namespace=vault serviceName=vault ingress=vault
time="2021-07-28T10:32:58Z" level=error msg="Cannot create service: service not found" serviceName=vault providerName=kubernetes ingress=vault servicePort=8200 namespace=vault

Below is the k8s svc detail of traefik
kubectl describe svc traefik
Name: traefik
Namespace: kube-system
Labels: app.kubernetes.io/instance=traefik
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=traefik
helm.sh/chart=traefik-10.1.1
Annotations: meta.helm.sh/release-name: traefik
meta.helm.sh/release-namespace: kube-system
Selector: app.kubernetes.io/instance=traefik,app.kubernetes.io/name=traefik
Type: LoadBalancer
IP: 10.100.200.253
Port: web 80/TCP
TargetPort: web/TCP
NodePort: web 31322/TCP
Endpoints: 10.200.9.208:8000
Port: websecure 443/TCP
TargetPort: websecure/TCP
NodePort: websecure 30527/TCP
Endpoints: 10.200.9.208:8443
Session Affinity: None
External Traffic Policy: Cluster
Events:

SVC is pending to get IP:
svc
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.100.200.1 443/TCP 336d
kube-system kube-dns ClusterIP 10.100.200.2 53/UDP,53/TCP 336d
kube-system metrics-server ClusterIP 10.100.200.190 443/TCP 336d
kube-system traefik LoadBalancer 10.100.200.253 80:31322/TCP,443:30527/TCP 6m24s
pks-system fluent-bit ClusterIP 10.100.200.20 24224/TCP 336d
pks-system node-exporter ClusterIP 10.100.200.82 10536/TCP 336d
pks-system validator ClusterIP 10.100.200.122 443/TCP 336d

the same above was working fine with traefik version 1.7

below is pods status-
kubectl describe pod traefik-596dc7677f-xmg5p
Name: traefik-596dc7677f-xmg5p
Namespace: kube-system
Priority: 0
Node: 327948ef-4940-47fd-9b70-b44e26b449a3/10.184.87.43
Start Time: Wed, 28 Jul 2021 03:30:17 -0700
Annotations:
Status: Running
IP: 10.200.9.208
IPs:
IP: 10.200.9.208
Controlled By: ReplicaSet/traefik-596dc7677f
Containers:
traefik:
Container ID: docker://f8b3067b0f058459c8d10f1fa0116bf0c7ad820dc5cad59c9b7611f7d6e166fe
Image: traefik:2.4.9
Image ID: docker-pullable://traefik@sha256:be23e1f6e64abd4adf70a61b8b9fa0844e4795a4a7b3055174106a957eddbf32
Ports: 9100/TCP, 9000/TCP, 8000/TCP, 8443/TCP
Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP
Args:
--global.checknewversion
--global.sendanonymoususage
--entryPoints.metrics.address=:9100/tcp
--entryPoints.traefik.address=:9000/tcp
--entryPoints.web.address=:8000/tcp
--entryPoints.websecure.address=:8443/tcp
--api.dashboard=true
--ping=true
--metrics.prometheus=true
--metrics.prometheus.entrypoint=metrics
--providers.kubernetescrd
--providers.kubernetesingress
State: Running
Started: Wed, 28 Jul 2021 03:30:21 -0700
Ready: True
Restart Count: 0
Liveness: http-get http://:9000/ping delay=10s timeout=2s period=10s #success=1 #failure=3
Readiness: http-get http://:9000/ping delay=10s timeout=2s period=10s #success=1 #failure=1
Environment:
Mounts:
/data from data (rw)
/tmp from tmp (rw)
/var/run/secrets/kubernetes.io/serviceaccount from traefik-token-rxfhd (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
data:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit:
tmp:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit:
traefik-token-rxfhd:
Type: Secret (a volume populated by a Secret)
SecretName: traefik-token-rxfhd
Optional: false
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message


Normal Scheduled 3m48s default-scheduler Successfully assigned kube-system/traefik-596dc7677f-xmg5p to 327948ef-4940-47fd-9b70-b44e26b449a3
Normal Pulling 3m48s kubelet Pulling image "traefik:2.4.9"
Normal Pulled 3m45s kubelet Successfully pulled image "traefik:2.4.9" in 2.861946646s
Normal Created 3m45s kubelet Created container traefik
Normal Started 3m45s kubelet Started container traefik

Hey @KanhaiyaSinghPatel

You can have a look at the workshop Getting Started with Traefik that should explain how to deploy Traefik using Helm Chart.

Please note, that the latest version is 2.4.11 and we are release 2.5 shortly.

Thank you so much, let me watch :slight_smile:

Does the getting started also contain how to go from 1.x to 2.x?

In my experience the easiest migration path is to set up a test environment with the new Traefik, then recreate your config until it works like your previous environment, using Middleware, TLSoptions and other new resources.