We're trying to set up Redis for use with BullMQ with our NestJs app in K8s. We're getting a MOVED error when we deploy to Kubernetes. We're not sure if we setup the YAML correctly, as we copied from an existing app. We were given a HOST as well and its port 7001.
ReplyError: MOVED 10784 10.**.***.**:7001
at parseError (/usr/src/app/node_modules/redis-parser/lib/parser.js:179:12)
at parseType (/usr/src/app/node_modules/redis-parser/lib/parser.js:302:14)
our QueueModule
import { Module } from '@nestjs/common';
import { BullModule } from '@nestjs/bull';
import { REDIS_QUEUES } from '../../constants';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
// initialize BullModule with redis connection
BullModule.forRootAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
redis: {
host: configService.get('REDIS_HOST'),
port: configService.get('REDIS_PORT')
}
}),
inject: [ConfigService]
})
],
exports: [BullModule]
})
export class QueueModule {}
our redis-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-service
namespace: redis
labels:
app: redis
spec:
ports:
- port: 7001
targetPort: 7001
name: redis-cluster
clusterIP: __REDIS_HOST__
selector:
app: redis
and our Redis Feature
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: redis
env: __NAME__
name: redis
name: redis
namespace: __PROJECT__
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: redis
strategy:
recreateParams:
timeoutSeconds: 600
type: Recreate
template:
metadata:
labels:
app: redis
name: redis
spec:
containers:
- name: redis
image: __REGISTRY__/redis:5.0.5-alpine
imagePullPolicy: IfNotPresent
ports:
- containerPort: 7001
protocol: TCP
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 7001
timeoutSeconds: 1
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 7001
timeoutSeconds: 1
resources:
limits:
cpu: 1
memory: 5Gi
securityContext:
capabilities: {}
privileged: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data
name: redis-data
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- emptyDir: {}
name: redis-data
TIA for any insight that can be provided.