feat: replace ingress-nginx with traefik
This commit is contained in:
parent
328c0a5a29
commit
cc0566af21
18 changed files with 108 additions and 78 deletions
|
|
@ -25,18 +25,18 @@ cd $(git rev-parse --show-toplevel)/module3/k8s/
|
||||||
minikube start
|
minikube start
|
||||||
minikube tunnel
|
minikube tunnel
|
||||||
|
|
||||||
# Install ingress-nginx and nats with helm
|
# Install traefik and nats with helm
|
||||||
|
|
||||||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
helm repo add nats https://nats-io.github.io/k8s/helm/charts/
|
||||||
helm repo add nats https://nats-io.github.io/k8s/helm/charts/
|
helm repo add traefik https://traefik.github.io/charts
|
||||||
helm repo update
|
helm repo update
|
||||||
helm upgrade \
|
helm upgrade \
|
||||||
ingress-nginx ingress-nginx/ingress-nginx \
|
traefik traefik/traefik \
|
||||||
--install \
|
--install \
|
||||||
--namespace ingress-nginx \
|
--namespace traefik \
|
||||||
--create-namespace \
|
--create-namespace \
|
||||||
--version 4.12.1 \
|
--version 38.0.2 \
|
||||||
--values helm/ingress-nginx/values.yaml
|
--values helm/traefik/values.yaml
|
||||||
helm upgrade \
|
helm upgrade \
|
||||||
--install \
|
--install \
|
||||||
nats nats/nats \
|
nats nats/nats \
|
||||||
|
|
@ -52,7 +52,7 @@ kubectl apply -k kustomize/postgres
|
||||||
kubectl apply -k kustomize/scrumlr
|
kubectl apply -k kustomize/scrumlr
|
||||||
|
|
||||||
# Use external IP of your Ingress Controller in your Browser to open Scrumlr
|
# Use external IP of your Ingress Controller in your Browser to open Scrumlr
|
||||||
kubectl get services --namespace ingress-nginx ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}'
|
kubectl get services --namespace traefik traefik --output jsonpath='{.status.loadBalancer.ingress[0].ip}'
|
||||||
|
|
||||||
# Destroy Cluster
|
# Destroy Cluster
|
||||||
minikube stop
|
minikube stop
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# ingress-nginx
|
|
||||||
|
|
||||||
Docs: https://kubernetes.github.io/ingress-nginx/
|
|
||||||
Github Repo: https://github.com/kubernetes/ingress-nginx
|
|
||||||
|
|
||||||
```sh
|
|
||||||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx --force-update
|
|
||||||
helm upgrade \
|
|
||||||
ingress-nginx ingress-nginx/ingress-nginx \
|
|
||||||
--install \
|
|
||||||
--namespace ingress-nginx \
|
|
||||||
--create-namespace \
|
|
||||||
--version 4.12.1 \
|
|
||||||
--values values.yaml
|
|
||||||
```
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
# Note: This file is intentionally empty and is more of a placeholder to ensure consistency.
|
|
||||||
15
module3/k8s/helm/traefik/README.md
Normal file
15
module3/k8s/helm/traefik/README.md
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
# traefik
|
||||||
|
|
||||||
|
Docs: https://doc.traefik.io/traefik/setup/kubernetes/
|
||||||
|
Github Repo: https://github.com/traefik/traefik/
|
||||||
|
|
||||||
|
```sh
|
||||||
|
helm repo add traefik https://traefik.github.io/charts/ --force-update
|
||||||
|
helm upgrade \
|
||||||
|
traefik traefik/traefik \
|
||||||
|
--install \
|
||||||
|
--namespace traefik \
|
||||||
|
--create-namespace \
|
||||||
|
--version 38.0.2 \
|
||||||
|
--values values.yaml
|
||||||
|
```
|
||||||
8
module3/k8s/helm/traefik/values.yaml
Normal file
8
module3/k8s/helm/traefik/values.yaml
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# HA deployment
|
||||||
|
deployment:
|
||||||
|
replicas: 3
|
||||||
|
|
||||||
|
# Enable logs for better debugging
|
||||||
|
logs:
|
||||||
|
access:
|
||||||
|
enabled: true
|
||||||
|
|
@ -5,13 +5,8 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: "scrumlr"
|
app.kubernetes.io/name: "scrumlr"
|
||||||
app.kubernetes.io/part-of: "scrumlr"
|
app.kubernetes.io/part-of: "scrumlr"
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/limit-connections: "100"
|
|
||||||
# Websocket optimization https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets
|
|
||||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "7200"
|
|
||||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "7200"
|
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: traefik
|
||||||
rules:
|
rules:
|
||||||
- http:
|
- http:
|
||||||
paths:
|
paths:
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,4 @@ spec:
|
||||||
solvers:
|
solvers:
|
||||||
- http01:
|
- http01:
|
||||||
ingress:
|
ingress:
|
||||||
ingressClassName: nginx
|
ingressClassName: traefik
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# ingress-nginx
|
|
||||||
|
|
||||||
Docs: https://kubernetes.github.io/ingress-nginx/
|
|
||||||
Github Repo: https://github.com/kubernetes/ingress-nginx
|
|
||||||
|
|
||||||
```sh
|
|
||||||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx --force-update
|
|
||||||
helm upgrade \
|
|
||||||
ingress-nginx ingress-nginx/ingress-nginx \
|
|
||||||
--install \
|
|
||||||
--namespace ingress-nginx \
|
|
||||||
--create-namespace \
|
|
||||||
--version 4.12.1 \
|
|
||||||
--values values.yaml
|
|
||||||
```
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
# Note: This file is intentionally empty and is more of a placeholder to ensure consistency.
|
|
||||||
15
module5/k8s/helm/traefik/README.md
Normal file
15
module5/k8s/helm/traefik/README.md
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
# traefik
|
||||||
|
|
||||||
|
Docs: https://doc.traefik.io/traefik/setup/kubernetes/
|
||||||
|
Github Repo: https://github.com/traefik/traefik/
|
||||||
|
|
||||||
|
```sh
|
||||||
|
helm repo add traefik https://traefik.github.io/charts/ --force-update
|
||||||
|
helm upgrade \
|
||||||
|
traefik traefik/traefik \
|
||||||
|
--install \
|
||||||
|
--namespace traefik \
|
||||||
|
--create-namespace \
|
||||||
|
--version 38.0.2 \
|
||||||
|
--values values.yaml
|
||||||
|
```
|
||||||
17
module5/k8s/helm/traefik/values.yaml
Normal file
17
module5/k8s/helm/traefik/values.yaml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
# HA deployment
|
||||||
|
deployment:
|
||||||
|
replicas: 3
|
||||||
|
|
||||||
|
# Enable logs for better debugging
|
||||||
|
logs:
|
||||||
|
access:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# Spread pods better between nodes
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: '{{ template "traefik.name" . }}'
|
||||||
|
|
@ -6,13 +6,9 @@ metadata:
|
||||||
app.kubernetes.io/name: "scrumlr"
|
app.kubernetes.io/name: "scrumlr"
|
||||||
app.kubernetes.io/part-of: "scrumlr"
|
app.kubernetes.io/part-of: "scrumlr"
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/limit-connections: "100"
|
|
||||||
# Websocket optimization https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets
|
|
||||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "7200"
|
|
||||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "7200"
|
|
||||||
cert-manager.io/cluster-issuer: "letsencrypt-production"
|
cert-manager.io/cluster-issuer: "letsencrypt-production"
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: traefik
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- CHANGE-ME.domain.tld
|
- CHANGE-ME.domain.tld
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,4 @@ spec:
|
||||||
solvers:
|
solvers:
|
||||||
- http01:
|
- http01:
|
||||||
ingress:
|
ingress:
|
||||||
ingressClassName: nginx
|
ingressClassName: traefik
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# ingress-nginx
|
|
||||||
|
|
||||||
Docs: https://kubernetes.github.io/ingress-nginx/
|
|
||||||
Github Repo: https://github.com/kubernetes/ingress-nginx
|
|
||||||
|
|
||||||
```sh
|
|
||||||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx --force-update
|
|
||||||
helm upgrade \
|
|
||||||
ingress-nginx ingress-nginx/ingress-nginx \
|
|
||||||
--install \
|
|
||||||
--namespace ingress-nginx \
|
|
||||||
--create-namespace \
|
|
||||||
--version 4.12.1 \
|
|
||||||
--values values.yaml
|
|
||||||
```
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
controller:
|
|
||||||
metrics:
|
|
||||||
enabled: true
|
|
||||||
serviceMonitor:
|
|
||||||
enabled: true
|
|
||||||
15
module6/k8s/helm/traefik/README.md
Normal file
15
module6/k8s/helm/traefik/README.md
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
# traefik
|
||||||
|
|
||||||
|
Docs: https://doc.traefik.io/traefik/setup/kubernetes/
|
||||||
|
Github Repo: https://github.com/traefik/traefik/
|
||||||
|
|
||||||
|
```sh
|
||||||
|
helm repo add traefik https://traefik.github.io/charts/ --force-update
|
||||||
|
helm upgrade \
|
||||||
|
traefik traefik/traefik \
|
||||||
|
--install \
|
||||||
|
--namespace traefik \
|
||||||
|
--create-namespace \
|
||||||
|
--version 38.0.2 \
|
||||||
|
--values values.yaml
|
||||||
|
```
|
||||||
25
module6/k8s/helm/traefik/values.yaml
Normal file
25
module6/k8s/helm/traefik/values.yaml
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
# HA deployment
|
||||||
|
deployment:
|
||||||
|
replicas: 3
|
||||||
|
|
||||||
|
# Enable logs for better debugging
|
||||||
|
logs:
|
||||||
|
access:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# Spread pods better between nodes
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: '{{ template "traefik.name" . }}'
|
||||||
|
|
||||||
|
# Enable metrics export and collection (serviceMonitor requires prometheus-operator-crds and alloy)
|
||||||
|
metrics:
|
||||||
|
prometheus:
|
||||||
|
service:
|
||||||
|
enabled: true
|
||||||
|
serviceMonitor:
|
||||||
|
enabled: true
|
||||||
|
|
@ -6,13 +6,9 @@ metadata:
|
||||||
app.kubernetes.io/name: "scrumlr"
|
app.kubernetes.io/name: "scrumlr"
|
||||||
app.kubernetes.io/part-of: "scrumlr"
|
app.kubernetes.io/part-of: "scrumlr"
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/limit-connections: "100"
|
|
||||||
# Websocket optimization https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets
|
|
||||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "7200"
|
|
||||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "7200"
|
|
||||||
cert-manager.io/cluster-issuer: "letsencrypt-production"
|
cert-manager.io/cluster-issuer: "letsencrypt-production"
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: traefik
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- CHANGE-ME.domain.tld
|
- CHANGE-ME.domain.tld
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue