2015-11-21 42 views
1

我有一個與GKE集羣v1.0.7一起工作的Cassandra圖像,但是在v1.1.1上有一個新的GKE集羣開始出現偶然性問題(不更改圖像或者如何使用kubectl創建它只是指向一個新的羣集)。GKE v1.1.1 KubernetesSeedProvider空指針異常

我在github上使用了kubernetes Cassandra示例中的kubernetes-cassandra.jar。

我在kubectl日誌中看到以下內容。

INFO 21:57:01 Getting endpoints from https://kubernetes.default.cluster.local/api/v1/namespaces/default/endpoints/cassandra 
ERROR 21:57:01 Fatal error during configuration loading 
java.lang.NullPointerException: null 
     at io.k8s.cassandra.KubernetesSeedProvider.getSeeds(KubernetesSeedProvider.java:129) ~[kubernetes-cassandra.jar:na] 
     at org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:659) ~[apache-cassandra-2.1.11.jar:2.1.11] 
     at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:136) ~[apache-cassandra-2.1.11.jar:2.1.11] 
     at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:168) [apache-cassandra-2.1.11.jar:2.1.11] 
     at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:562) [apache-cassandra-2.1.11.jar:2.1.11] 
     at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:651) [apache-cassandra-2.1.11.jar:2.1.11] 
null 
Fatal error during configuration loading; unable to start. See log for stacktrace. 


$ kubectl get pods 
NAME       READY  STATUS    RESTARTS AGE 
cassandra     0/1  CrashLoopBackOff 8   13m 

有沒有人見過這個錯誤,或者對如何解決的想法?

+0

使用cassandra v1.1.1示例在AWS上查看同樣的東西。 – florianrosenberg

回答

1

當服務端點沒有準備好時發生。要驗證這一點,請檢查對Cassandra服務的輸出kubectl get endpoints。如果它是空白的,那麼這意味着KubernetesSeedProvider無法反序列化從Kubernetes API服務器接收到的輸出,因爲端點的地址處於notReadyAddresses狀態。

解決此問題的一種可能方法是在創建Cassandra服務之前創建Cassandra窗格。