Как настроить 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.

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


person GreenKiwi    schedule 10.10.2017    source источник


Ответы (4)


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

person Salvian Reynaldi    schedule 24.10.2017
comment
Это была комбинация вещей, но ключевым было то, что я использовал режим clustered. Так что это была ключевая информация, решившая мою проблему. Я также установил overrideBaseUrl в service-settings/redis.yml и redis.configuration.secure: true в profiles/gate-local.yml - person GreenKiwi; 07.11.2017

У меня есть некоторые успехи с эластичностью 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#issuecomment-260971228

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

person David Black    schedule 14.10.2017
comment
Мне интересно добавить targetSize: 0, чтобы предотвратить создание redis и redisBootstrap, или даже правильный способ сделать это. spinnaker.io/reference/halyard/custom - person kross; 16.10.2017

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

# ~/.hal/default/service-settings/redis.yml
enabled: false
overrideBaseUrl: redis://:[email protected]:6379

# ~/.hal/default/service-settings/redis-bootstrap.yml
enabled: false
overrideBaseUrl: redis://:[email protected]:6379

Специфично для elasticache, как сказал @DavidBlack, вам также понадобится

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

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

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

person kross    schedule 17.10.2017

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

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

Секрет k8s: rediss: //: [email protected]: 6379

profiles:
  gate:
    redis:
      configuration:
        secure: true

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

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

person Drew Michel    schedule 02.07.2021