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 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 upgrade \
|
||||
ingress-nginx ingress-nginx/ingress-nginx \
|
||||
traefik traefik/traefik \
|
||||
--install \
|
||||
--namespace ingress-nginx \
|
||||
--namespace traefik \
|
||||
--create-namespace \
|
||||
--version 4.12.1 \
|
||||
--values helm/ingress-nginx/values.yaml
|
||||
--version 38.0.2 \
|
||||
--values helm/traefik/values.yaml
|
||||
helm upgrade \
|
||||
--install \
|
||||
nats nats/nats \
|
||||
|
|
@ -52,7 +52,7 @@ kubectl apply -k kustomize/postgres
|
|||
kubectl apply -k kustomize/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
|
||||
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:
|
||||
app.kubernetes.io/name: "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:
|
||||
ingressClassName: nginx
|
||||
ingressClassName: traefik
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ spec:
|
|||
solvers:
|
||||
- http01:
|
||||
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/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"
|
||||
cert-manager.io/cluster-issuer: "letsencrypt-production"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
ingressClassName: traefik
|
||||
tls:
|
||||
- hosts:
|
||||
- CHANGE-ME.domain.tld
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ spec:
|
|||
solvers:
|
||||
- http01:
|
||||
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/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"
|
||||
cert-manager.io/cluster-issuer: "letsencrypt-production"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
ingressClassName: traefik
|
||||
tls:
|
||||
- hosts:
|
||||
- CHANGE-ME.domain.tld
|
||||
|
|
|
|||
Loading…
Reference in a new issue