【问题标题】:How do you configure Spinnaker to use an ElastiCache redis cluster?如何配置 Spinnaker 以使用 ElastiCache redis 集群?
【发布时间】:2017-10-10 17:45:42
【问题描述】:

按照instructions here,我正在尝试将 Spinnaker 配置为使用 ElastiCache redis 集群,并启用集群模式。

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.

在这一点上,我不确定该怎么做才能完成这项工作?

【问题讨论】:

    标签: redis amazon-elasticache spinnaker spinnaker-halyard


    【解决方案1】:

    我正在像这样使用 elasticache 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% 确定它可以工作,但至少所有的大三角帆服务都启动了,即使在我关闭了 halyard 启动的 redis 副本集之后,它也能在表面上工作

    【讨论】:

    【解决方案2】:

    这里有一组说明供任何想要使用外部 redis 的人使用(基于我的GH issue):

    # ~/.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 服务)。

    【讨论】:

      【解决方案3】:

      我无法让 spinnaker 与集群/复制的 elasticache redis 一起工作,所以我只使用一个 ElastiCache redis 节点,然后将 spinnaker-local.yml 中的 service.redis.host 设置为适当的 redis 端点,并在 @987654324 中设置 redis.configuration.secure @为真

      【讨论】:

      • 这是一个组合,但关键是我使用的是clustered 模式。所以这感觉像是解决我的问题的关键信息。我还在service-settings/redis.yml 中设置了overrideBaseUrl,在profiles/gate-local.yml 中设置了redis.configuration.secure: true
      【解决方案4】:

      对于使用 Spinnaker 运算符的任何人,我让 elasticsearch redis 使用以下设置:

      • Redis 版本:5.0.6
      • 已启用集群模式:否
      • 在途加密:是
      • 静态加密:是
      • Redis 身份验证:是

      k8s 密码:redis://: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 部署。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-13
        • 2019-08-11
        • 2015-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-03
        • 2019-09-12
        相关资源
        最近更新 更多