Redis в Kubernetes - Соединение отказано - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь развернуть модуль redis , чтобы разрешить подключение моего промежуточного приложения к нему (чтобы не использовать управляемую службу Redis при подготовке ENV).

Я использую Google Cloud Platform с GKE , так что управляемый кластер k8s ...

Однако, когда я пытаюсь установить соединение (только с другого модуля Redis только для тестирования), я получаю это сообщение:

Could not connect to Redis at redis-cip.redis.svc.cluster.local:6379: Connection refused

Команда, которую я использую для проведения теста, такова:

redis-cli -h redis-cip.redis.svc.cluster.local -p 6379 

URL-адрес состоит из:

  • redis-cip : это сервис ClusterIP, который я использую, чтобы разрешить подключение к моему redis POD
  • redis: это пространство имен, в котором находится redis POD

Более того, я использую, как уже написано в некоторые вопросы по StackOverflow, эта конфигурация redis:

protected-mode no
maxmemory 32mb
maxmemory-policy allkeys-lru

В прикрепленном полном отображении k8s:

ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: redis-configmap
  namespace: redis
data:
  redis.conf: |
    protected-mode no
    maxmemory 32mb
    maxmemory-policy allkeys-lru

Redis Deploy:

apiVersion: v1
kind: Pod
metadata:
  name: redis
  namespace: redis
spec:
  containers:
    - name: redis
      image: redis
      command:
        - redis-server
        - /usr/local/etc/redis/redis.conf
      env:
        - name: MASTER
          value: "true"
      ports:
        - containerPort: 6379
      volumeMounts:
        - mountPath: /redis-master-data
          name: data
        - mountPath: /usr/local/etc/redis/
          name: redis-configmap
      resources:
        requests:
          memory: {{ .Values.resources.requests.memory }}
          cpu: {{ .Values.resources.requests.cpu }}
        limits:
          memory: {{ .Values.resources.limits.memory }}
          cpu: {{ .Values.resources.limits.cpu }}
  volumes:
    - name: data
      emptyDir: {}
    - name: redis-configmap
      configMap:
        name: redis-configmap

Служба ClusterIP:

apiVersion: v1
kind: Service
metadata:
  name: redis-cip
  namespace: redis
  labels:
    app: redis
spec:
  ports:
  - port: 6379
    targetPort: 6379
  selector:
    app: redis
  type: ClusterIP

1 Ответ

3 голосов
/ 19 марта 2020

в соединении отказано, потому что нет пакетов с меткой app:redis. добавить ярлыки к вашему пакету, которые идентичны службе spec.selector

apiVersion: v1
kind: Pod
metadata:
  name: redis
  namespace: redis
  labels:
     app:redis
spec:
  containers:
    - name: redis
      image: redis
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...