我目前正在尝试在我们的内部 kubernetes 集群上启动 spinnaker。目前的状态是:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
data-cassandra-v000-1azd8 1/1 Running 0 3h
data-redis-master-v000-68jzu 1/1 Running 0 4h
spkr-clouddriver-v000-0xpdl 1/1 Running 0 3h
spkr-deck-v000-xsl4o 1/1 Running 0 3h
spkr-echo-v000-metx4 0/1 CrashLoopBackOff 44 3h
spkr-front50-v000-nqfrx 0/1 Running 29 3h
spkr-gate-v000-ep56r 1/1 Running 0 3h
spkr-igor-v000-svkwb 0/1 CrashLoopBackOff 44 3h
spkr-orca-v000-bdeig 0/1 CrashLoopBackOff 44 3h
我目前有 2.5 个问题,我不确定如何解决:
- orca 服务无法连接到 redis。它被拒绝连接。我假设它尝试连接到本地主机(或 0.0.0.0)。日志仅显示带有 java.net.ConnectException 的 stackstrace。如何将其指向正确的 IP?我是否先启动 redis 服务,然后才弄清楚它在哪里结束?
- 连接到 cassandra 的 echo 服务存在类似问题。我得到一个:PoolTimeoutException:[host=localhost(127.0.0.1):9160。我假设它想尝试连接到 cassandra,因为那将是端口。这种连接应该如何工作?运行 cassandra 并根据我的最终结果更新 ip?由于一切都是动态的,我希望找到一些服务名称关系,但我不确定在 -local.yml 文件中放置什么以进行配置。
- 第三个问题在于igor。尽管 travis 已禁用,但它抱怨一个空的 githubToken。一旦我有足够的勇气重新开始整个事情,我将尝试一些价值观。
欢迎任何提示:)
非常感谢!
更新:@lwander 指出我检查 spinnaker-local.yml 文件后,我注意到该文件可能是从 default-spinnaker-local.yml 创建的文件的副本。我恢复了它并再次尝试:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
data-cassandra-v000-gxgtv 1/1 Running 0 19m
data-redis-master-v000-y4iug 1/1 Running 0 20m
spkr-clouddriver-v000-xe3pe 1/1 Running 0 13m
spkr-deck-v000-mvs88 1/1 Running 0 13m
spkr-echo-v000-tjnk9 0/1 CrashLoopBackOff 6 13m
spkr-front50-v000-s4r61 0/1 Running 3 13m
spkr-gate-v000-5wz0f 0/1 Running 0 13m
spkr-igor-v000-xqv9g 1/1 Running 0 13m
spkr-orca-v000-ahz47 0/1 CrashLoopBackOff 6 13m
但是我仍然遇到连接错误,只是主机名不再是 localhost 而是以 .spinnaker.svc.cluster.local 结尾-不确定这是否也是我需要更改的值还是应该起作用的值?
$ kubectl logs spkr-echo-v000-tjnk9
Caused by: com.netflix.astyanax.connectionpool.exceptions.PoolTimeoutException: PoolTimeoutException: [host=data-cassandra.spinnaker.svc.cluster.local(data-cassandra.spinnaker.svc.cluster.local):9160, latency=2000(2000), attempts=1]Timed out waiting for connection
at com.netflix.astyanax.connectionpool.impl.SimpleHostConnectionPool.waitForConnection(SimpleHostConnectionPool.java:231)
at com.netflix.astyanax.connectionpool.impl.SimpleHostConnectionPool.borrowConnection(SimpleHostConnectionPool.java:198)
at com.netflix.astyanax.connectionpool.impl.RoundRobinExecuteWithFailover.borrowConnection(RoundRobinExecuteWithFailover.java:84)
at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:117)
at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:352)
at com.netflix.astyanax.thrift.ThriftKeyspaceImpl.executeOperation(ThriftKeyspaceImpl.java:517)
at com.netflix.astyanax.thrift.ThriftKeyspaceImpl.internalDescribeKeyspace(ThriftKeyspaceImpl.java:268)
at com.netflix.astyanax.thrift.ThriftKeyspaceImpl.describeKeyspace(ThriftKeyspaceImpl.java:264)
at com.netflix.scheduledactions.persistence.cassandra.ThriftCassandraDao.createColumnFamily(ThriftCassandraDao.java:81)
... 70 more
$ kubectl logs spkr-orca-v000-ahz47
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
... 21 more
Caused by: java.net.UnknownHostException: data-redis-server.spinnaker.svc.cluster.local
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at redis.clients.jedis.Connection.connect(Connection.java:158)
... 44 more
$ kubectl logs spkr-igor-v000-xqv9g
Caused by: java.net.UnknownHostException: spkr-clouddriver.spinnaker.svc.cluster.local: unknown error
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at com.squareup.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
更新2:连接零件似乎不太远。kubernetes 集群的 fabric8 ui 似乎可以识别其中的大部分内容。