Hi,
I have a k3s with traefik installed from the helm charts, seems to work fine, but now I need to add two additional tcp entrypoints, how do I do that on a "helmified" traefik?
cheers
MH
Hi,
I have a k3s with traefik installed from the helm charts, seems to work fine, but now I need to add two additional tcp entrypoints, how do I do that on a "helmified" traefik?
cheers
MH
Hello @lemmy04
Thanks for using Traefik!
While deploying K3S together with Traefik installed the configuration has to be managed through HelmChartConfig CRD.
Here is the basic example of that custom resource. Please follow the official Traefik Helm chart repository to learn more about other available values that might be configured.
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
image:
name: traefik
tag: v2.7.1
ports:
tcp1:
port: 20000
expose: true
exposedPort: 20000
tcp2:
port: 20001
expose: true
exposedPort: 20001
Basically speaking, once that resource will be created, Helm Controller automatically notices the new config and transform the created Helm configuration into CLI arguments passed into Traefik.
Here is the result of the command kubectl describe deployment traefik
traefik:
Image: traefik:v2.7.1
Ports: 20000/TCP, 20001/TCP, 9000/TCP, 8000/TCP, 8443/TCP
Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP
Args:
--global.checknewversion
--global.sendanonymoususage
--entryPoints.tcp1.address=:20000/tcp
--entryPoints.tcp2.address=:20001/tcp
--entryPoints.traefik.address=:9000/tcp
--entryPoints.web.address=:8000/tcp
--entryPoints.websecure.address=:8443/tcp
--api.dashboard=true
--ping=true
--providers.kubernetescrd
--providers.kubernetesingress
--providers.kubernetesingress.ingressendpoint.publishedservice=kube-system/traefik
--entrypoints.websecure.http.tls=true
Hope that helps,
Thanks!
So I just create a yaml file with content similar to the first example, and apply it?
What if I deploye traefik into its own namespace, do I apply that new yaml file into that namespace, or still into kube-system?
Or do I have to remove and redeploy traefik after applying that helmchartconfig?
The solution I presented works for the default K3S deployment when Traefik is deployed in the kube-system
namespace.
How did you deploy Traefik in its own namespace? I mean, what method did you use to deploy it?
i created the namespace:
kubectl create ns traefik-v2
then I installed traefik:
helm install -n traefik-v2 traefik traefik/traefik
so ... what exactly do I do with that HelmChartConfig? I have zero experience with helm...
All I need right now is to add 3270/tcp to my ports, so I can run tk4 in kubernetes.
based on that, you don't use Traefik installed together with K3S, so you don't have to use HelmChartConfig.
I would recommend following the following workshops: Getting started with Traefik on K8S
Here, in detail, we explain how to deploy Traefik by using the official Helm Chart.
Please ensure that you deploy K3S without Traefik.
For my testing purposes, I use K3D on my local workstation and use the following command to spin up a test K3S cluster in docker.
k3d cluster create testing-traefik --k3s-arg "--disable=traefik@server:0" -p 80:80@loadbalancer -p 443:443@loadbalancer --agents 1
then you can create a dedicated namespace and deploy Traefik by using the Helm command you shared.
Hope that helps.
sorry... but that tutorial did not help.
By now I have a working traefik, which even knows the entry point I have added.
here's my values.yaml:
ports:
x3270:
port: 3270
exposed: true
exposedPort: 3270
additionalArguments:
- "--entryPoints.x3270.address=:3270/tcp"
But when I look at the deployment I see TWO "--entryPoints"-lines, one might be a leftover from a previous experiment, how do I clean this up?
Anyway, I deploy my hercules emulator the same way that used to work before, see From 0 to Kubernetes – Step 7, And now for something completely different… – Tux Online and tk4.yaml · GitHub and all I get is a "connection refused" from my 3270 telnet client...
Any further hint would be really useful.
Hello @jakubhajek the current example on k3s docs for the traefik-config.yaml
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
image:
name: traefik
tag: v2.8.5
forwardedHeaders:
enabled: true
trustedIPs:
- 10.0.0.0/8
ssl:
enabled: true
permanentRedirect: false
when this is auto deployed via adding to the /server/manifets folder , there is k3s gives an ErrImagePull.
commenting out the image tag solves that as a work around. But I'de like to solve this issue correctly.
K3S, current trafeik. yaml uses
chart: https://%{KUBERNETES_API}%/static/charts/traefik-crd-25.0.2+up25.0.0.tgz
I thought the issue was an incorrect image tag, and should be v2.10.5.... but this also causes the error.
Ultimately I'de like to correctly format that traefik-config.yaml to enable http3, unfotunatly guides only give outdated bits and pieces.
my current traefik-config.yaml
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
image:
name: traefik
#tag: v2.10.5
forwardedHeaders:
enabled: true
trustedIPs:
- 10.0.0.0/8
api:
dashboard: true
ports:
traefik:
expose: true
websecure:
http3:
enabled: true
advertisedPort: 443
ssl:
enabled: true
permanentRedirect: false