rebloom k8s 報錯

ponponon發表於2022-11-22

docker 下的 redis.cnf

version: "3"

services: 
  redis:
    container_name: rebloom
    image: redislabs/rebloom:latest
    ports:
      - "6379:6379"
    volumes:
      - ./volumes:/data # /usr/local/redis/data 是你宿主機的路徑;/data 是容器內的路徑,容器內的 redis 會把需要持久化的資料都儲存到 /data 目錄下
      - ./redis.conf:/etc/redis/redis.conf # redis.conf 這個檔案已經準備好了,可以放到這個路徑,也可以自己修改,比如放到專案路徑中
    restart: always
# 這個檔案的地址,和你的 docker-compose.yaml 中的 /usr/local/redis/redis.conf:/etc/redis/redis.conf 冒號左邊的要對應起來
# redis 支援兩者持久化機制:RDB&AOF
# https://juejin.cn/post/6844903716290576392

appendonly yes
#default: 持久化檔案
appendfilename "appendonly.aof"
#default: 每秒同步一次
appendfsync everysec

port 6379
# 繫結埠,不指定外網可能連不上伺服器
bind 0.0.0.0

復刻到 k8s 中卻跑不通,會報錯

解決辦法:

apiVersion: v1
kind: ConfigMap
metadata:
  name: crawler-bloom-redis-config
  namespace: xxxxx
data:
  redis-config: |
    maxmemory 100mb
    appendonly yes
    appendfilename "appendonly.aof"
    appendfsync everysec
    loadmodule "/usr/lib/redis/modules/redisbloom.so"


加入 loadmodule "/usr/lib/redis/modules/redisbloom.so" 即可,至於為什麼 docker 下不用加,k8s 中卻要加,我就不知道了。知道的人可以貼到評論區