Google Cloud Platformでkberbernetesクラスターを実行しています。このクラスターでは、ヘイゼルキャストベースの8つのレプリカを含むデプロイメントが作成されます。私たちは月を超えるため、この実行中の罰金を持っていたが、最近、我々は我々の展開を開始しようとしたときに(非関連のスタックフレームは省略)以下のエラーメッセージの受信を開始:デベロッパー作成時にKubernetes "fatal alert:protocol_version"エラーが発生する
2016-07-15 12:58:02,117 [My-hazelcast.my-deployment-368708980-8v7ig @ my-deployment-368708980-8v7ig] ERROR - [10.68.5.3]:5701 [MyProject] [3.6.2] Error executing: GET at: https://kubernetes.default.svc/api/v1/namespaces/default/endpoints/my-service. Cause: Received fatal alert: protocol_version
io.fabric8.kubernetes.client.KubernetesClientException: Error executing: GET at: https://kubernetes.default.svc/api/v1/namespaces/default/endpoints/my-service. Cause: Received fatal alert: protocol_version
at io.fabric8.kubernetes.client.dsl.base.OperationSupport.requestException(OperationSupport.java:272) ~[kubernetes-client-1.3.66.jar:na]
at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:205) ~[kubernetes-client-1.3.66.jar:na]
at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet(OperationSupport.java:196) ~[kubernetes-client-1.3.66.jar:na]
at io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleGet(BaseOperation.java:483) ~[kubernetes-client-1.3.66.jar:na]
at io.fabric8.kubernetes.client.dsl.base.BaseOperation.get(BaseOperation.java:108) ~[kubernetes-client-1.3.66.jar:na]
at com.noctarius.hazelcast.kubernetes.ServiceEndpointResolver.resolve(ServiceEndpointResolver.java:62) ~[hazelcast-kubernetes-discovery-0.9.2.jar:na]
at com.noctarius.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategy.discoverNodes(HazelcastKubernetesDiscoveryStrategy.java:74) ~[hazelcast-kubernetes-discovery-0.9.2.jar:na]
at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.discoverNodes(DefaultDiscoveryService.java:74) ~[hazelcast-all-3.6.2.jar:3.6.2]
....
Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) ~[na:1.7.0_95]
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) ~[na:1.7.0_95]
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1991) ~[na:1.7.0_95]
...
at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:203) ~[kubernetes-client-1.3.66.jar:na]
... 18 common frames omitted
私はこのエラーをグーグルとき、私はTLSプロトコルのバージョンの不一致について多くのヒットを得る。明らかに、Java 8はJava 7および6(TLS 1.0)とは異なるTLSプロトコルバージョン(TLS 1.2)を想定しています。しかし、すべてのコンテナはJava 7に基づいた同じドッカーイメージ(hazelcast/hazelcast:3.6.2イメージに基づいています)を実行します。そのため、プロトコルバージョンの不一致はありません(イメージのこのレイヤーは変更されません)。
このエラーを解決するために、すべての最近の変更を元に戻してみましたが、無駄です。そして率直に言って、私たちのチームの誰もSSLやHazelcast Kubernetesディスカバリメカニズムに関連するものは誰も変更していません。最近Google Cloud SDKツール(「一部のCloud SDKコンポーネントで利用可能な更新プログラム」)を求めてGoogleのGoogle Cloud SDKコンポーネント(gcloud components update
)を更新しました。現在、Google Clouds SDKのバージョン117.0.0を使用していますが、release notesではSSLやTLSに関連する大きな変更はありません。
kubernetesポッドでこの「fatal alert: protocol_version
」というエラーメッセージが突然表示されるのはなぜですか。どのように解決できますか?