added longhorn support for outline and traefik
This commit is contained in:
@@ -1,11 +1,17 @@
|
||||
---
|
||||
# REDIS
|
||||
# HINWEIS:
|
||||
# - Redis nutzt ein Longhorn-Volume (PVC) für Persistenz.
|
||||
# - Repliken = 1 bedeutet: Kein echtes Redis-HA, aber Daten überleben Node-/Pod-Neustarts.
|
||||
# - Für echtes Redis-HA (Multi-Node) brauchst du später Redis Sentinel / Redis Operator
|
||||
# oder ein externes/managed Redis.
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: authentik-redis
|
||||
namespace: authentik
|
||||
spec:
|
||||
serviceName: authentik-redis
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
@@ -31,6 +37,18 @@ spec:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
volumeMounts:
|
||||
- name: redis-data
|
||||
mountPath: /data
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: redis-data
|
||||
spec:
|
||||
accessModes: ["ReadWriteOnce"]
|
||||
storageClassName: longhorn
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
@@ -84,6 +102,7 @@ spec:
|
||||
name: postgres-data
|
||||
spec:
|
||||
accessModes: [ "ReadWriteOnce" ]
|
||||
storageClassName: longhorn
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
---
|
||||
# REDIS
|
||||
# HINWEIS: Redis HA (Sentinel) wäre besser, aber 1 Replica ist OK für Cache
|
||||
# Wenn Redis ausfällt, funktioniert Outline noch (nur Features eingeschränkt)
|
||||
# HINWEIS:
|
||||
# - Redis wird hier auf einem PersistentVolume (Longhorn) betrieben.
|
||||
# - Repliken = 1 bedeutet: Kein echtes Redis-HA, aber Daten überleben Node-/Pod-Neustarts.
|
||||
# - Für echtes Redis-HA (Multi-Node-Failover) brauchst du später Redis Sentinel / Redis Operator
|
||||
# oder ein extern verwaltetes Redis (Managed DB).
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: outline-redis
|
||||
namespace: outline
|
||||
spec:
|
||||
replicas: 1 # HA: Optional auf Redis Sentinel upgraden
|
||||
serviceName: outline-redis
|
||||
replicas: 1 # Für echtes HA später Redis Sentinel/Cluster einsetzen
|
||||
selector:
|
||||
matchLabels:
|
||||
app: outline-redis
|
||||
@@ -29,6 +33,18 @@ spec:
|
||||
secretKeyRef:
|
||||
name: outline-secrets
|
||||
key: redis-password
|
||||
volumeMounts:
|
||||
- name: redis-data
|
||||
mountPath: /data
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: redis-data
|
||||
spec:
|
||||
accessModes: ["ReadWriteOnce"]
|
||||
storageClassName: longhorn
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
@@ -85,6 +101,7 @@ spec:
|
||||
name: postgres-data
|
||||
spec:
|
||||
accessModes: [ "ReadWriteOnce" ]
|
||||
storageClassName: longhorn
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
|
||||
@@ -14,19 +14,19 @@ spec:
|
||||
helm:
|
||||
values: |
|
||||
deployment:
|
||||
replicas: 3 # HA: Einer pro Node
|
||||
# Traefik als DaemonSet, damit auf jedem Node ein Pod läuft
|
||||
kind: DaemonSet
|
||||
# WICHTIG: affinity muss auf oberster Ebene stehen, NICHT unter deployment!
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
# WICHTIG: requiredDuringSchedulingIgnoredDuringExecution = Hard Rule
|
||||
# Verhindert, dass Pods auf dem gleichen Node laufen
|
||||
# Nur app.kubernetes.io/name verwenden (ohne instance), damit die Regel
|
||||
# mit allen Traefik-Pods funktioniert (auch bei Deployment-Updates)
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
- labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: traefik
|
||||
topologyKey: kubernetes.io/hostname
|
||||
# Soft Anti-Affinity: verteilt Pods auf verschiedene Nodes, blockiert aber nicht hart
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: traefik
|
||||
topologyKey: kubernetes.io/hostname
|
||||
service:
|
||||
enabled: true
|
||||
type: LoadBalancer
|
||||
|
||||
Reference in New Issue
Block a user