Как настроить Spinnaker для использования Redis-кластера ElastiCache?

Следуя приведенным здесь инструкциям, я пытаюсь настроить Spinnaker для использования Redis-кластера ElastiCache с включенным режимом кластера.

Spinnaker: 1.40.2
Halyard: 0.35
Cloud driver provider: k8s (1.7.4)
Cloud: AWS

У меня есть кластер ElastiCache Redis, настроенный в режиме кластера, у него есть конечная точка конфигурации:

redis-spinnaker.1234.clustercfg.use1.cache.amazonaws.com:6379

У него есть один узел:

Я создал следующий файл: halyard/default/service-settings/redis.yml

overrideBaseUrl: redis://redis-spinnaker.1234.clustercfg.use1.cache.amazonaws.com:6379

Я тоже пробовал

overrideBaseUrl: redis://redis-spinnaker-0001-001.1234.0001.use1.cache.amazonaws.com:6379

Обратите внимание, что оба эти адреса доступны из кластера.

Когда я бегу halyard deploy apply, spin-gate время вышло

/ Deploy spin-gate
  Timed out

And the whole deploy times out.
Problems in Global:
! ERROR Unexpected exception:
  DaemonTaskInterrupted(interruptedTime=1507614194943, message=Task interrupted at
  Tue Oct 10 05:43:14 UTC 2017 with message: Interrupted during reap by exception:
  null)

- Failed to deploy Spinnaker. Task killed because it was taking too
  long.

На данный момент, я не уверен, что сделать, чтобы сделать эту работу?

4 ответа

Решение

Я не могу заставить спинакер работать с кластеризованным / реплицируемым перетаскиванием эластичной боли, поэтому я использую только один узел перерисовки ElastiCache и затем устанавливаю service.redis.host в spinnaker-local.yml к соответствующей конечной точке Redis и установить redis.configuration.secure в gate-local.yml к истине

Я делаю некоторые успехи с эластичной болью Redis следующим образом:

$ cat .hal/default/service-settings/redis.yml 
overrideBaseUrl: redis://xxx.use1.cache.amazonaws.com:6379

$ cat .hal/default/profiles/gate-local.yml 
redis:
  configuration:
    secure: true

изменение gate-local.yml произошло с https://github.com/spinnaker/spinnaker/issues/1309

не уверен на 100%, что это работает, но по крайней мере все службы spinnaker запускаются и работают поверхностно, даже после того, как я убил набор реплик redis, который запускает halyard

Вот набор инструкций для тех, кто хочет использовать внешний redis (на основе моей проблемы с GH):

# ~/.hal/default/service-settings/redis.yml
enabled: false
overrideBaseUrl: redis://:password@c1.us-central1-2.gce.cloud.redislabs.com:6379

# ~/.hal/default/service-settings/redis-bootstrap.yml
enabled: false
overrideBaseUrl: redis://:password@c1.us-central1-2.gce.cloud.redislabs.com:6379

Как и в случае с эластичной болью, как сказал @DavidBlack, вам также необходимо

# ~/.hal/default/profiles/gate-local.yml 
redis:
  configuration:
    secure: true

Затем удалите наборы реплик, службы и т. Д. Или, возможно, проще (в зависимости от вашей ситуации):hal deploy clean && hal deploy apply

если ты hal deploy cleanне забудьте повторно применить любые дополнительные настройки (например, внешний IP-адрес для сервисов kubernetes, если вы их настроили).

Для всех, кто использует оператор спинакера, я получил elasticsearch redis, работающий со следующими настройками:

  • Версия Redis: 5.0.6
  • Включен кластерный режим: нет
  • Шифрование при передаче: Да
  • Шифрование в состоянии покоя: Да
  • Redis AUTH: Да

Секрет k8s: rediss: //: AUTH_TOKEN@master.spinnaker-test.XXX.YYY.cache.amazonaws.com : 6379

      profiles:
  gate:
    redis:
      configuration:
        secure: true

service-settings:  
  redis:
    overrideBaseUrl: encrypted:k8s!n:spinnaker-secrets!k:redis-url-dev
    skipLifeCycleManagement: true

После развертывания вам необходимо вручную удалить развертывание Redis, созданное ранее оператором.

Другие вопросы по тегам