簡體   English   中英

Redis集群K8s-復制密碼

[英]Redis Cluster K8s - replication password

我正在嘗試讓我的 redis 集群啟動並運行,但我無法為我的客戶正確設置密碼身份驗證。 一旦我使用--requirepass設置密碼,復制就不再起作用了。 所以我搜索了一下,發現 redis 使用單獨的密碼進行復制。 這可以使用masterauth進行設置,另請參閱: https://redis.io/topics/replication 所以我也嘗試從--masterauth開始,但沒有成功。 有人知道--masterauth是否可以用作參數,我可以在啟動時傳遞給redis-server命令,因為文檔沒有直接引用它。 在提到 helm 之前,請注意我的整個部署是使用kustomize.io設置的,而helm目前不是我首選的 go 方式。

我也嘗試過這樣的事情,但沒有成功。

這就是我的 redis-cluster.yaml 的樣子:

apiVersion: v1
kind: Service
metadata:
  name: redis
spec:
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 6379
    targetPort: 6379
    name: redis
  selector:
    name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: redis-slave
spec:
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 6379
    targetPort: 6379
    name: redis
  selector:
    name: redis-slave
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
  labels:
    name: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      name: redis
  template:
    metadata:
      labels:
        name: redis
    spec:
      subdomain:
      containers:
      - name: redis
        image: redis:6.0.9-alpine
        command:
          - redis-server
        args:
          - "--protected-mode"
          - "no"
        ports:
        - containerPort: 6379
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-slave
  labels:
    name: redis-slave
spec:
  replicas: 2
  selector:
    matchLabels:
      name: redis-slave
  template:
    metadata:
      labels:
        name: redis-slave
    spec:
      subdomain: redis-slave
      containers:
      - name: redis
        image: redis:6.0.9-alpine
        command:
          - "redis-server"
        args:
          - "--slaveof"
          - "redis.default.svc.cluster.local"
          - "6379"
          - "--protected-mode"
          - "no"
        ports:
        - containerPort: 6379

在 redis 容器上配置密碼有兩種方式:

  1. 快速實施:
      containers:
      - args:
        - -c
        - |-
          echo -e 'maxmemory 183500800
          maxmemory-policy allkeys-lru
          stop-writes-on-bgsave-error no
          slaveof redis-master.default.svc.cluster.local
          requirepass YOUR_PASSWORD
          masterauth MASTER_PASSWORD' | docker-entrypoint.sh -
        command:
        - /bin/sh
        image: redis:6.0.9-alpine
        name: redis-slave
  1. 更好的做法:
  • 為每個部署使用 ConfigMap,安裝在/etc/redis/redis.conf上,具有特定配置並在沒有argscommand的情況下運行容器。

更多 Redis 6.0 配置參數和文檔可以在這里找到: https://raw.githubusercontent.com/redis/redis/6.0/redis.conf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM