mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-17 18:24:14 +02:00
🔥 redis-lb
This commit is contained in:
@@ -35,7 +35,7 @@ spec:
|
|||||||
tag: 1.282.0
|
tag: 1.282.0
|
||||||
env:
|
env:
|
||||||
NODE_ENV: production
|
NODE_ENV: production
|
||||||
REDIS_HOST: redis-lb.default.svc.cluster.local
|
REDIS_HOST: redis.default.svc.cluster.local
|
||||||
REDIS_PORT: 6379
|
REDIS_PORT: 6379
|
||||||
envFrom:
|
envFrom:
|
||||||
- secretRef:
|
- secretRef:
|
||||||
|
@@ -9,16 +9,13 @@ data:
|
|||||||
DISABLE_REVERSE_GEOCODING: "true"
|
DISABLE_REVERSE_GEOCODING: "true"
|
||||||
ENABLE_MAPBOX: "false"
|
ENABLE_MAPBOX: "false"
|
||||||
LOG_LEVEL: verbose
|
LOG_LEVEL: verbose
|
||||||
NODE_ENV: "production"
|
REDIS_DBINDEX: "10"
|
||||||
# REDIS_HOSTNAME: redis-lb.default.svc.cluster.local
|
REDIS_HOSTNAME: redis.default.svc.cluster.local
|
||||||
# REDIS_DBINDEX: "10"
|
|
||||||
REDIS_HOSTNAME: immich-redis.default.svc.cluster.local
|
|
||||||
REDIS_PORT: "6379"
|
REDIS_PORT: "6379"
|
||||||
TYPESENSE_HOST: immich-typesense.default.svc.cluster.local
|
TYPESENSE_HOST: immich-typesense.default.svc.cluster.local
|
||||||
TYPESENSE_DATA_DIR: /config
|
TYPESENSE_DATA_DIR: /config
|
||||||
TYPESENSE_PORT: "8108"
|
TYPESENSE_PORT: "8108"
|
||||||
TYPESENSE_PROTOCOL: http
|
TYPESENSE_PROTOCOL: http
|
||||||
REDIS_DBINDEX: "10"
|
|
||||||
IMMICH_WEB_URL: http://immich-web.default.svc.cluster.local:3000
|
IMMICH_WEB_URL: http://immich-web.default.svc.cluster.local:3000
|
||||||
IMMICH_SERVER_URL: http://immich-server.default.svc.cluster.local:3001
|
IMMICH_SERVER_URL: http://immich-server.default.svc.cluster.local:3001
|
||||||
IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning.default.svc.cluster.local:3003
|
IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning.default.svc.cluster.local:3003
|
||||||
|
@@ -8,7 +8,6 @@ resources:
|
|||||||
- ./microservices
|
- ./microservices
|
||||||
- ./machine-learning
|
- ./machine-learning
|
||||||
- ./secret.sops.yaml
|
- ./secret.sops.yaml
|
||||||
- ./redis
|
|
||||||
- ./server
|
- ./server
|
||||||
- ./typesense
|
- ./typesense
|
||||||
- ./volume.yaml
|
- ./volume.yaml
|
||||||
|
@@ -1,44 +0,0 @@
|
|||||||
---
|
|
||||||
# yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/helmrelease_v2beta1.json
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: immich-redis
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
interval: 15m
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: app-template
|
|
||||||
version: 1.4.0
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: bjw-s
|
|
||||||
namespace: flux-system
|
|
||||||
maxHistory: 3
|
|
||||||
install:
|
|
||||||
createNamespace: true
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
upgrade:
|
|
||||||
cleanupOnFail: true
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
uninstall:
|
|
||||||
keepHistory: false
|
|
||||||
values:
|
|
||||||
image:
|
|
||||||
repository: public.ecr.aws/docker/library/redis
|
|
||||||
tag: 7.0.11
|
|
||||||
env:
|
|
||||||
REDIS_REPLICATION_MODE: master
|
|
||||||
command: ["redis-server"]
|
|
||||||
service:
|
|
||||||
main:
|
|
||||||
ports:
|
|
||||||
http:
|
|
||||||
port: 6379
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 10m
|
|
||||||
memory: 10Mi
|
|
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- ./helmrelease.yaml
|
|
@@ -10,7 +10,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
dependsOn:
|
dependsOn:
|
||||||
- name: cluster-apps-cloudnative-pg-app
|
- name: cluster-apps-cloudnative-pg-app
|
||||||
- name: cluster-apps-redis-lb
|
- name: cluster-apps-redis
|
||||||
path: ./kubernetes/apps/default/immich/app
|
path: ./kubernetes/apps/default/immich/app
|
||||||
prune: true
|
prune: true
|
||||||
sourceRef:
|
sourceRef:
|
||||||
|
@@ -23,28 +23,3 @@ spec:
|
|||||||
interval: 30m
|
interval: 30m
|
||||||
retryInterval: 1m
|
retryInterval: 1m
|
||||||
timeout: 3m
|
timeout: 3m
|
||||||
---
|
|
||||||
# yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/kustomization_v1beta2.json
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: cluster-apps-redis-lb
|
|
||||||
namespace: flux-system
|
|
||||||
labels:
|
|
||||||
substitution.flux.home.arpa/enabled: "true"
|
|
||||||
spec:
|
|
||||||
dependsOn:
|
|
||||||
- name: cluster-apps-redis
|
|
||||||
path: ./kubernetes/apps/default/redis/lb
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
name: home-ops-kubernetes
|
|
||||||
healthChecks:
|
|
||||||
- apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|
||||||
kind: HelmRelease
|
|
||||||
name: redis-lb
|
|
||||||
namespace: default
|
|
||||||
interval: 30m
|
|
||||||
retryInterval: 1m
|
|
||||||
timeout: 3m
|
|
||||||
|
@@ -1,88 +0,0 @@
|
|||||||
global
|
|
||||||
daemon
|
|
||||||
maxconn 256
|
|
||||||
|
|
||||||
defaults
|
|
||||||
mode tcp
|
|
||||||
timeout connect 4s
|
|
||||||
timeout client 30s
|
|
||||||
timeout server 30s
|
|
||||||
retry-on all-retryable-errors
|
|
||||||
|
|
||||||
resolvers cluster_ns
|
|
||||||
parse-resolv-conf
|
|
||||||
|
|
||||||
hold valid 10s
|
|
||||||
hold other 30s
|
|
||||||
hold refused 30s
|
|
||||||
hold nx 30s
|
|
||||||
hold timeout 30s
|
|
||||||
hold obsolete 30s
|
|
||||||
|
|
||||||
resolve_retries 3
|
|
||||||
timeout retry 1s
|
|
||||||
timeout resolve 1s
|
|
||||||
|
|
||||||
frontend http
|
|
||||||
bind :8080
|
|
||||||
http-request use-service prometheus-exporter if { path /metrics }
|
|
||||||
default_backend stats
|
|
||||||
|
|
||||||
backend stats
|
|
||||||
mode http
|
|
||||||
stats enable
|
|
||||||
stats uri /
|
|
||||||
stats refresh 5s
|
|
||||||
stats show-legends
|
|
||||||
stats admin if TRUE
|
|
||||||
|
|
||||||
resolvers k8s
|
|
||||||
parse-resolv-conf
|
|
||||||
hold other 10s
|
|
||||||
hold refused 10s
|
|
||||||
hold nx 10s
|
|
||||||
hold timeout 10s
|
|
||||||
hold valid 10s
|
|
||||||
hold obsolete 10s
|
|
||||||
|
|
||||||
frontend redis-read
|
|
||||||
bind *:6380
|
|
||||||
default_backend redis-online
|
|
||||||
|
|
||||||
frontend redis-write
|
|
||||||
bind *:6379
|
|
||||||
default_backend redis-primary
|
|
||||||
|
|
||||||
frontend redis-sentinel
|
|
||||||
bind *:26379
|
|
||||||
default_backend redis-sentinel
|
|
||||||
|
|
||||||
backend redis-primary
|
|
||||||
balance first
|
|
||||||
option tcp-check
|
|
||||||
tcp-check connect port 6379
|
|
||||||
tcp-check send info\ replication\r\n
|
|
||||||
tcp-check expect string role:master
|
|
||||||
server redis-0 redis-node-0.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
||||||
server redis-1 redis-node-1.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
||||||
server redis-2 redis-node-2.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
||||||
|
|
||||||
backend redis-online
|
|
||||||
balance roundrobin
|
|
||||||
option tcp-check
|
|
||||||
tcp-check connect port 6379
|
|
||||||
tcp-check send PING\r\n
|
|
||||||
tcp-check expect string +PONG
|
|
||||||
server redis-0 redis-node-0.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
||||||
server redis-1 redis-node-1.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
||||||
server redis-2 redis-node-2.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
||||||
|
|
||||||
backend redis-sentinel
|
|
||||||
balance roundrobin
|
|
||||||
option tcp-check
|
|
||||||
tcp-check connect port 26379
|
|
||||||
tcp-check send PING\r\n
|
|
||||||
tcp-check expect string +PONG
|
|
||||||
server redis-0 redis-node-0.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
||||||
server redis-1 redis-node-1.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
||||||
server redis-2 redis-node-2.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
|
@@ -1,86 +0,0 @@
|
|||||||
---
|
|
||||||
# yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/helmrelease_v2beta1.json
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: redis-lb
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
interval: 15m
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: app-template
|
|
||||||
version: 1.4.0
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: bjw-s
|
|
||||||
namespace: flux-system
|
|
||||||
maxHistory: 3
|
|
||||||
install:
|
|
||||||
createNamespace: true
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
upgrade:
|
|
||||||
cleanupOnFail: true
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
uninstall:
|
|
||||||
keepHistory: false
|
|
||||||
values:
|
|
||||||
controller:
|
|
||||||
replicas: 3
|
|
||||||
strategy: RollingUpdate
|
|
||||||
image:
|
|
||||||
repository: public.ecr.aws/docker/library/haproxy
|
|
||||||
tag: 2.8.0-alpine
|
|
||||||
service:
|
|
||||||
main:
|
|
||||||
type: LoadBalancer
|
|
||||||
loadBalacerIP: "${CLUSTER_LB_REDIS}"
|
|
||||||
externalTrafficPolicy: Local
|
|
||||||
ports:
|
|
||||||
http:
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
redis-write:
|
|
||||||
port: 6379
|
|
||||||
targetPort: 6379
|
|
||||||
redis-read:
|
|
||||||
port: 6380
|
|
||||||
targetPort: 6380
|
|
||||||
redis-sentinel:
|
|
||||||
port: 26379
|
|
||||||
targetPort: 26379
|
|
||||||
serviceMonitor:
|
|
||||||
main:
|
|
||||||
enabled: true
|
|
||||||
endpoints:
|
|
||||||
- port: http
|
|
||||||
scheme: http
|
|
||||||
path: /metrics
|
|
||||||
interval: 1m
|
|
||||||
scrapeTimeout: 10s
|
|
||||||
ingress:
|
|
||||||
main:
|
|
||||||
enabled: true
|
|
||||||
ingressClassName: nginx
|
|
||||||
annotations:
|
|
||||||
hajimari.io/icon: simple-icons:redis
|
|
||||||
hosts:
|
|
||||||
- host: redis-lb.${SECRET_CLUSTER_DOMAIN}
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
podSecurityContext:
|
|
||||||
runAsUser: 99
|
|
||||||
runAsGroup: 99
|
|
||||||
fsGroup: 99
|
|
||||||
fsGroupChangePolicy: "OnRootMismatch"
|
|
||||||
persistence:
|
|
||||||
config:
|
|
||||||
enabled: true
|
|
||||||
type: configMap
|
|
||||||
name: redis-lb-configmap # overriden by kustomizeconfig
|
|
||||||
mountPath: /usr/local/etc/haproxy/haproxy.cfg
|
|
||||||
subPath: haproxy.cfg
|
|
||||||
readOnly: true
|
|
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
namespace: default
|
|
||||||
resources:
|
|
||||||
- helmrelease.yaml
|
|
||||||
configMapGenerator:
|
|
||||||
- name: redis-lb-configmap
|
|
||||||
files:
|
|
||||||
- haproxy.cfg=./config/haproxy.cfg
|
|
||||||
configurations:
|
|
||||||
- ./patches/kustomizeconfig.yaml
|
|
@@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
nameReference:
|
|
||||||
- kind: ConfigMap
|
|
||||||
version: v1
|
|
||||||
fieldSpecs:
|
|
||||||
- path: spec/values/persistence/config/name
|
|
||||||
kind: HelmRelease
|
|
Reference in New Issue
Block a user