94 lines
2.9 KiB
Markdown
94 lines
2.9 KiB
Markdown
|
# Traefik
|
||
|
|
||
|
[Traefik](https://traefik.io/) is a modern HTTP reverse proxy and load balancer made to deploy
|
||
|
microservices with ease.
|
||
|
|
||
|
## Introduction
|
||
|
|
||
|
This chart bootstraps Traefik version 2 as a Kubernetes ingress controller,
|
||
|
using Custom Resources `IngressRoute`: <https://docs.traefik.io/providers/kubernetes-crd/>.
|
||
|
|
||
|
### Philosophy
|
||
|
|
||
|
The Traefik HelmChart is focused on Traefik deployment configuration.
|
||
|
|
||
|
To keep this HelmChart as generic as possible we tend
|
||
|
to avoid integrating any third party solutions nor any specific use cases.
|
||
|
|
||
|
Accordingly, the encouraged approach to fulfill your needs:
|
||
|
1. override the default Traefik configuration values ([yaml file or cli](https://helm.sh/docs/chart_template_guide/values_files/))
|
||
|
2. append your own configurations (`kubectl apply -f myconf.yaml`)
|
||
|
3. extend this HelmChart ([as a Subchart](https://helm.sh/docs/chart_template_guide/subcharts_and_globals/))
|
||
|
|
||
|
## Installing
|
||
|
|
||
|
### Prerequisites
|
||
|
|
||
|
With the command `helm version`, make sure that you have:
|
||
|
- Helm v3 [installed](https://helm.sh/docs/using_helm/#installing-helm)
|
||
|
|
||
|
Add Traefik's chart repository to Helm:
|
||
|
|
||
|
```bash
|
||
|
helm repo add traefik https://helm.traefik.io/traefik
|
||
|
```
|
||
|
|
||
|
You can update the chart repository by running:
|
||
|
|
||
|
```bash
|
||
|
helm repo update
|
||
|
```
|
||
|
|
||
|
### Kubernetes Version Support
|
||
|
|
||
|
Due to changes in CRD version support, the following versions of the chart are usable and supported on the following kubernetes versions:
|
||
|
|
||
|
| | Kubernetes v1.15 and below | Kubernetes v1.16-v1.21 | Kubernetes v1.22 and above |
|
||
|
|-------------------------|-----------------------------|------------------------|----------------------------|
|
||
|
| Chart v9.20.2 and below | [x] | [x] | |
|
||
|
| Chart 10.0.0 and above | | [x] | [x] |
|
||
|
|
||
|
### Deploying Traefik
|
||
|
|
||
|
```bash
|
||
|
helm install traefik traefik/traefik
|
||
|
```
|
||
|
|
||
|
#### Warning
|
||
|
|
||
|
Helm v2 support was removed in the chart version 10.0.0.
|
||
|
|
||
|
### Exposing the Traefik dashboard
|
||
|
|
||
|
This HelmChart does not expose the Traefik dashboard by default, for security concerns.
|
||
|
Thus, there are multiple ways to expose the dashboard.
|
||
|
For instance, the dashboard access could be achieved through a port-forward :
|
||
|
|
||
|
```
|
||
|
kubectl port-forward $(kubectl get pods --selector "app.kubernetes.io/name=traefik" --output=name) 9000:9000
|
||
|
```
|
||
|
|
||
|
Another way would be to apply your own configuration, for instance,
|
||
|
by defining and applying an IngressRoute CRD (`kubectl apply -f dashboard.yaml`):
|
||
|
|
||
|
```yaml
|
||
|
# dashboard.yaml
|
||
|
apiVersion: traefik.containo.us/v1alpha1
|
||
|
kind: IngressRoute
|
||
|
metadata:
|
||
|
name: dashboard
|
||
|
spec:
|
||
|
entryPoints:
|
||
|
- web
|
||
|
routes:
|
||
|
- match: Host(`traefik.localhost`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
|
||
|
kind: Rule
|
||
|
services:
|
||
|
- name: api@internal
|
||
|
kind: TraefikService
|
||
|
```
|
||
|
|
||
|
## Contributing
|
||
|
|
||
|
If you want to contribute to this chart, please read the [Contributing Guide](../CONTRIBUTING.md).
|