Можно ли совместно использовать один сервер Redis для нескольких микросервисов в GKE? - PullRequest
0 голосов
/ 11 мая 2018

У меня есть служба redis, работающая с сервером redis.Должен ли я иметь возможность хранить и получать данные для этой службы от нескольких клиентов в разных службах?До сих пор мне не удавалось в моих экспериментах.

У меня есть вычислительная служба в своем собственном модуле, которая набирает службу redis и сохраняет ключ / значение

rClient := redis.NewClient(&redis.Options{
    Addr:     "redis-service:6379",
    Password: "", // no password set
    DB:       0,  // use default DB
})

rClient.Set("trump", "value", 0).Err()

Затем у меня есть веб-служба в своем модуле, которая пытаетсячтобы прочитать это значение.Ошибка возвращает Nil, и значение пустое.

rClient := redis.NewClient(&redis.Options{
    Addr:     "redis-service:6379",
    Password: "", // no password set
    DB:       0,  // use default DB
})

val, err := rClient.Get("trump").Result()

fmt.Fprintf(w, "Print Error: %v \n", err) //prints nil

fmt.Fprintf(w, "Print Value: %s \n", val) // blank

Если я установлю значение в веб-сервисе, то смогу прочитать значение отлично.Я просто не могу установить значение в другом сервисе.Насколько я знаю, Redis хранит данные на стороне сервера, которые будут redis-service.

Вот мои файлы yaml для развертывания / обслуживания redis-service.Может быть, это конфигурация?

   apiVersion: v1
kind: Service
metadata:
  name: redis-service
  labels:
    app: redis-service
    role: master
    tier: backend
spec:
  ports:
  - port: 6379
    targetPort: 6379
  selector:
    app: redis-service


apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: redis-service
spec:
  selector:
    matchLabels:
      app: redis-service
      role: master
      tier: backend
  replicas: 1
  template:
    metadata:
      labels:
        app: redis-service
        role: master
        tier: backend
    spec:
      containers:
      - name: redis-service
        image: k8s.gcr.io/redis:e2e  # or just image: redis
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 6379 

1 Ответ

0 голосов
/ 13 мая 2018

Эта проблема была решена.Я всегда устанавливал политику извлечения образа в моем yaml развертывания службы вычислений.Я также изменил его порт с: 9090 на 8080, думая, что порт мог использоваться в другом месте.Наконец я обновил свою учетную запись GCP с пробной версии.Я не уверен, какой именно из них исправил проблему, но я рад, что она решена сейчас.

...