hazelcast-kubernetes 无法启动嵌入式服务器
hazelcast-kubernetes Unable to start Embedded server
我正在尝试在 kubernetes 上的 spring 引导应用程序中启动一个简单的嵌入式 hazelcast 服务器。
我正在使用 hazelcast-kubernetes 插件并遵循文档 here。
我尝试了 LoadBalancer 和 NodePort 两种服务类型。
我还尝试使用 this example 部署示例应用程序(使用相同的 docker 图像)并尝试了 LoadBalancer 和 NodePort 服务类型。
在这两种情况下,我在重试 10 次连接到 Kubernetes Master 后都收到以下错误。
其中a.b.c.d是kubernetes主节点的IP地址。
2020-03-09 18:20:57.322 INFO 1 --- [ main] c.h.c.LifecycleService : [a.b.c.d]:5701 [dev] [3.12] [a.b.c.d]:5701 is STARTING
2020-03-09 18:20:57.820 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [1] retrying in 1 seconds...
2020-03-09 18:20:59.339 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [2] retrying in 2 seconds...
2020-03-09 18:21:01.713 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [3] retrying in 3 seconds...
2020-03-09 18:21:05.113 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [4] retrying in 5 seconds...
2020-03-09 18:21:10.198 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [5] retrying in 7 seconds...
2020-03-09 18:21:17.807 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [6] retrying in 11 seconds...
2020-03-09 18:21:49.216 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [7] retrying in 17 seconds...
2020-03-09 18:22:06.319 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [8] retrying in 25 seconds...
2020-03-09 18:22:31.963 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [9] retrying in 38 seconds...
2020-03-09 18:23:15.423 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [10] retrying in 57 seconds...
2020-03-09 18:24:23.099 ERROR 1 --- [ main] c.h.i.c.i.DiscoveryJoiner : [a.b.c.d]:5701 [dev] [3.12] Failure in KubernetesClient
com.hazelcast.kubernetes.KubernetesClientException: Failure in KubernetesClient
at com.hazelcast.kubernetes.DefaultKubernetesClient.callGet(DefaultKubernetesClient.java:109) ~[hazelcast-kubernetes-1.3.1.jar!/:?]
at com.hazelcast.kubernetes.DefaultKubernetesClient.endpointsByName(DefaultKubernetesClient.java:88) ~[hazelcast-kubernetes-1.3.1.jar!/:?]
.
.
.
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [main.jar:?]
Caused by: java.net.UnknownHostException: kubernetes.default.svc
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[?:1.8.0_111]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_111]
在第二种情况下,我使用的是 leszko 的 sample,它尝试连接的 IP 地址是 POD 的 IP。
[190.168.1.194]:5701 [dev] [3.11] Failure in KubernetesClient
190.168.1.194是POD的IP地址
我将下面的环境添加到部署 yaml 中,但看起来它并没有覆盖这个变量。
env:
- name: service-name
value: "hazelcast-embedded"
Kubernetes Discovery properties: { service-dns: null, service-dns-timeout: 5, service-name: null, service-port: 0, service-label: null, service-label-value: true, namespace: default, resolve-not-ready-addresses: false, kubernetes-master: https://kubernetes.default.svc}
您的 Kubernetes 集群本身似乎有问题。
首先您尝试使用 Hazelcast Kubernetes 发现策略 Kubernetes API,它对 Kubernetes master 进行 REST 调用。 Kubernetes master 应该始终可以通过主机名 kubernetes.default.svc
从您的 POD 访问。在你的情况下,它没有找到。
然后,您尝试使用 Hazelcast Kubernetes 发现策略 DNS Lookup,它使用服务 DNS 来解析 Hazelcast 成员。在您的情况下,正如@Mesut 所提到的,它没有正确解析服务的 DNS。
我正在尝试在 kubernetes 上的 spring 引导应用程序中启动一个简单的嵌入式 hazelcast 服务器。 我正在使用 hazelcast-kubernetes 插件并遵循文档 here。 我尝试了 LoadBalancer 和 NodePort 两种服务类型。
我还尝试使用 this example 部署示例应用程序(使用相同的 docker 图像)并尝试了 LoadBalancer 和 NodePort 服务类型。
在这两种情况下,我在重试 10 次连接到 Kubernetes Master 后都收到以下错误。 其中a.b.c.d是kubernetes主节点的IP地址。
2020-03-09 18:20:57.322 INFO 1 --- [ main] c.h.c.LifecycleService : [a.b.c.d]:5701 [dev] [3.12] [a.b.c.d]:5701 is STARTING
2020-03-09 18:20:57.820 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [1] retrying in 1 seconds...
2020-03-09 18:20:59.339 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [2] retrying in 2 seconds...
2020-03-09 18:21:01.713 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [3] retrying in 3 seconds...
2020-03-09 18:21:05.113 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [4] retrying in 5 seconds...
2020-03-09 18:21:10.198 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [5] retrying in 7 seconds...
2020-03-09 18:21:17.807 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [6] retrying in 11 seconds...
2020-03-09 18:21:49.216 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [7] retrying in 17 seconds...
2020-03-09 18:22:06.319 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [8] retrying in 25 seconds...
2020-03-09 18:22:31.963 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [9] retrying in 38 seconds...
2020-03-09 18:23:15.423 WARN 1 --- [ main] c.h.k.RetryUtils : Couldn't connect to the Kubernetes master, [10] retrying in 57 seconds...
2020-03-09 18:24:23.099 ERROR 1 --- [ main] c.h.i.c.i.DiscoveryJoiner : [a.b.c.d]:5701 [dev] [3.12] Failure in KubernetesClient
com.hazelcast.kubernetes.KubernetesClientException: Failure in KubernetesClient
at com.hazelcast.kubernetes.DefaultKubernetesClient.callGet(DefaultKubernetesClient.java:109) ~[hazelcast-kubernetes-1.3.1.jar!/:?]
at com.hazelcast.kubernetes.DefaultKubernetesClient.endpointsByName(DefaultKubernetesClient.java:88) ~[hazelcast-kubernetes-1.3.1.jar!/:?]
.
.
.
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [main.jar:?]
Caused by: java.net.UnknownHostException: kubernetes.default.svc
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[?:1.8.0_111]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_111]
在第二种情况下,我使用的是 leszko 的 sample,它尝试连接的 IP 地址是 POD 的 IP。
[190.168.1.194]:5701 [dev] [3.11] Failure in KubernetesClient
190.168.1.194是POD的IP地址
我将下面的环境添加到部署 yaml 中,但看起来它并没有覆盖这个变量。
env:
- name: service-name
value: "hazelcast-embedded"
Kubernetes Discovery properties: { service-dns: null, service-dns-timeout: 5, service-name: null, service-port: 0, service-label: null, service-label-value: true, namespace: default, resolve-not-ready-addresses: false, kubernetes-master: https://kubernetes.default.svc}
您的 Kubernetes 集群本身似乎有问题。
首先您尝试使用 Hazelcast Kubernetes 发现策略 Kubernetes API,它对 Kubernetes master 进行 REST 调用。 Kubernetes master 应该始终可以通过主机名
kubernetes.default.svc
从您的 POD 访问。在你的情况下,它没有找到。然后,您尝试使用 Hazelcast Kubernetes 发现策略 DNS Lookup,它使用服务 DNS 来解析 Hazelcast 成员。在您的情况下,正如@Mesut 所提到的,它没有正确解析服务的 DNS。