Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes Redis群集K8s-复制密码_Kubernetes_Redis - Fatal编程技术网

Kubernetes Redis群集K8s-复制密码

Kubernetes Redis群集K8s-复制密码,kubernetes,redis,Kubernetes,Redis,我正在尝试让我的redis群集启动并运行,但我无法为我的客户端正确设置密码身份验证。只要我使用--requirepass设置密码,复制就不再工作了。所以我在谷歌上搜索,发现redis使用单独的密码进行复制。可以使用masterauth进行设置,请参见:。 所以我也试着从--masterauth开始,但没有成功。有人知道--masterauth是否可以用作参数,我可以在启动时传递给redis server命令,因为文档没有直接引用它。在提到helm之前,请注意,我的整个部署都是使用kustomiz

我正在尝试让我的redis群集启动并运行,但我无法为我的客户端正确设置密码身份验证。只要我使用
--requirepass
设置密码,复制就不再工作了。所以我在谷歌上搜索,发现redis使用单独的密码进行复制。可以使用
masterauth
进行设置,请参见:。 所以我也试着从
--masterauth
开始,但没有成功。有人知道
--masterauth
是否可以用作参数,我可以在启动时传递给
redis server
命令,因为文档没有直接引用它。在提到helm之前,请注意,我的整个部署都是使用
kustomize.io设置的,
helm
目前不是我首选的方式

我也尝试了一些没有成功的东西

这就是我的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容器上配置密码有两种方法:

  • 快速实施:
  • 更好的做法:
    • 为每个部署使用一个ConfigMap,安装在
      /etc/redis/redis.conf
      上,具有特定的配置,并在不使用
      args
      命令的情况下运行容器

    更多Redis 6.0配置参数和文档可在此处找到:

    将在明天之前检查此问题,提前感谢:但masterauth在哪里得到处理?您可以使用我稍后在回答中编辑的
    masterauth
          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