0

我正在尝试在 AWS k8s 集群上部署 Eclipse Hono 1.0 版。以下是部署后的服务(奇怪的外部 IP)。

root@ip-172-31-35-125:~# kubectl get service -n hono

service/hono-adapter-amqp-vertx                   LoadBalancer   100.67.94.188    a25d01250eb3611e9b45f0e90af72a72-2016210601.eu-west-3.elb.amazonaws.com   5672:32672/TCP,5671:32671/TCP     4h46m
service/hono-adapter-amqp-vertx-headless          ClusterIP      None             <none>                                                                    <none>                            4h46m
service/hono-adapter-http-vertx                   LoadBalancer   100.70.64.248    a25dc920deb3611e9b45f0e90af72a72-730471375.eu-west-3.elb.amazonaws.com    8080:30080/TCP,8443:30443/TCP     4h46m
service/hono-adapter-http-vertx-headless          ClusterIP      None             <none>                                                                    <none>                            4h46m
service/hono-adapter-mqtt-vertx                   LoadBalancer   100.68.3.95      a25ed2e15eb3611e9b45f0e90af72a72-1002962271.eu-west-3.elb.amazonaws.com   1883:31883/TCP,8883:30883/TCP     4h46m
service/hono-adapter-mqtt-vertx-headless          ClusterIP      None             <none>                                                                    <none>                            4h46m
service/hono-artemis                              ClusterIP      100.70.153.152   <none>                                                                    5671/TCP                          4h46m
service/hono-dispatch-router                      ClusterIP      100.64.140.172   <none>                                                                    5673/TCP                          4h46m
service/hono-dispatch-router-ext                  LoadBalancer   100.70.95.31     a25b7cb1ceb3611e9b45f0e90af72a72-370392986.eu-west-3.elb.amazonaws.com    15671:30671/TCP,15672:30672/TCP   4h46m
service/hono-grafana                              ClusterIP      100.67.252.68    <none>                                                                    3000/TCP                          4h46m
service/hono-prometheus-server                    ClusterIP      100.65.95.65     <none>                                                                    9090/TCP                          4h46m
service/hono-service-auth                         ClusterIP      100.66.3.21      <none>                                                                    5671/TCP                          4h46m
service/hono-service-auth-headless                ClusterIP      None             <none>                                                                    <none>                            4h46m
service/hono-service-device-connection-headless   ClusterIP      None             <none>                                                                    <none>                            4h46m
service/hono-service-device-registry              ClusterIP      100.67.196.156   <none>                                                                    5671/TCP                          4h46m
service/hono-service-device-registry-ext          LoadBalancer   100.65.10.48     a2604531feb3611e9b45f0e90af72a72-643429943.eu-west-3.elb.amazonaws.com    28080:31080/TCP,28443:31443/TCP   4h46m
service/hono-service-device-registry-headless     ClusterIP      None             <none>                                                                    <none>                            4h46m

豆荚列表:

root@ip-172-31-35-125:~# kubectl get pods -n hono

pod/hono-adapter-amqp-vertx-6888d8fffc-555s9   0/1     Running             0          4h46m
pod/hono-adapter-http-vertx-54b7848749-fnjk5   0/1     Running             0          4h46m
pod/hono-adapter-mqtt-vertx-76b546bf76-9fw9w   0/1     Running             0          4h46m
pod/hono-artemis-5fdb775c46-pzdfz              1/1     Running             0          4h46m
pod/hono-dispatch-router-78ccc6579c-qk8pw      1/1     Running             0          4h46m
pod/hono-grafana-8d5d6476f-wnw96               2/2     Running             0          4h46m
pod/hono-grafana-test                          0/1     Error               0          4h46m
pod/hono-prometheus-server-5676c8f974-bvmw8    0/2     ContainerCreating   0          4h46m
pod/hono-service-auth-c669986d-78c4q           1/1     Running             0          4h46m

Pod 正在部分运行。描述一个失败的pod(例如,AMQP),结果如下:

root@ip-172-31-35-125:~# kubectl -n hono describe pod hono-adapter-amqp-vertx-6888d8fffc-555s9

Name:           hono-adapter-amqp-vertx-6888d8fffc-555s9
Namespace:      hono
Priority:       0
Node:           ip-172-20-60-72.eu-west-3.compute.internal/172.20.60.72
Start Time:     Thu, 10 Oct 2019 08:15:40 +0000
Labels:         app.kubernetes.io/component=adapter-amqp-vertx
                app.kubernetes.io/instance=hono
                app.kubernetes.io/managed-by=Tiller
                app.kubernetes.io/name=eclipse-hono
                app.kubernetes.io/version=1.0-M7
                helm.sh/chart=eclipse-hono-1.0-M7
                pod-template-hash=6888d8fffc
Annotations:    <none>
Status:         Running
IP:             100.96.1.7
IPs:            <none>
Controlled By:  ReplicaSet/hono-adapter-amqp-vertx-6888d8fffc
Containers:
  eclipse-hono-adapter-amqp-vertx:
    Container ID:   docker://33641eef4c25d50bc54947d396bc4c6e457a86369a51acaa0befcf2ee0307508
    Image:          index.docker.io/eclipse/hono-adapter-amqp-vertx:1.0-M7
    Image ID:       docker-pullable://eclipse/hono-adapter-amqp-vertx@sha256:982d2ac2824eb95b915fc53756a6b05fd6939473af7bf39cbf1351127adf6b04
    Ports:          8088/TCP, 5671/TCP, 5672/TCP
    Host Ports:     0/TCP, 0/TCP, 0/TCP
    State:          Running
      Started:      Thu, 10 Oct 2019 08:16:06 +0000
    Ready:          False
    Restart Count:  0
    Limits:
      memory:  256Mi
    Requests:
      memory:   256Mi
    Liveness:   http-get https://:8088/liveness delay=180s timeout=1s period=10s #success=1 #failure=3
    Readiness:  http-get https://:8088/readiness delay=10s timeout=1s period=10s #success=1 #failure=3
    Environment:
      SPRING_CONFIG_LOCATION:  file:///etc/hono/
      SPRING_PROFILES_ACTIVE:  dev
      LOGGING_CONFIG:          classpath:logback-spring.xml
      _JAVA_OPTIONS:           -XX:MinRAMPercentage=80 -XX:MaxRAMPercentage=80
      KUBERNETES_NAMESPACE:    hono (v1:metadata.namespace)
      JAEGER_SERVICE_NAME:     hono-adapter-amqp-vertx
    Mounts:
      /etc/hono from conf (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-phj96 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  conf:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  hono-adapter-amqp-vertx-conf
    Optional:    false
  default-token-phj96:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-phj96
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                       From                                                 Message
  ----     ------     ----                      ----                                                 -------
  Warning  Unhealthy  4m34s (x1677 over 4h43m)  kubelet, ip-172-20-60-72.eu-west-3.compute.internal  Readiness probe failed: HTTP probe failed with statuscode: 503

失败的 pod 日志 (pod/hono-adapter-amqp-vertx-6888d8fffc-555s9):

root@ip-172-31-35-125:~# kubectl -n hono logs hono-adapter-amqp-vertx-6888d8fffc-njmvr

13:43:45.184 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - can't connect to AMQP 1.0 container [amqps://hono-service-device-registry:5671]: Connection refused: hono-service-device-registry.hono.svc.cluster.local/100.67.196.156:5671
13:43:45.184 [vert.x-eventloop-thread-0] DEBUG o.e.h.client.impl.HonoConnectionImpl - connection attempt failed
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: hono-service-device-registry.hono.svc.cluster.local/100.67.196.156:5671
Caused by: java.net.ConnectException: Connection refused
        at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779)
        at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:327)
        at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:336)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:685)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:834)
13:43:45.184 [vert.x-eventloop-thread-0] DEBUG o.e.h.client.impl.HonoConnectionImpl - starting attempt [#5005] to connect to server [hono-service-device-registry:5671]
13:43:45.184 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - OpenSSL [available: false, supports KeyManagerFactory: false, supports Hostname validation: false]
13:43:45.184 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - using JDK's default SSL engine
13:43:45.184 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - enabling secure protocol [TLSv1.2]
13:43:45.184 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - connecting to AMQP 1.0 container [amqps://hono-service-device-registry:5671]
13:43:45.207 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - can't connect to AMQP 1.0 container [amqps://hono-service-device-registry:5671]: connection attempt timed out after 5000ms
13:43:45.207 [vert.x-eventloop-thread-0] DEBUG o.e.h.client.impl.HonoConnectionImpl - connection attempt failed
org.eclipse.hono.connection.ConnectTimeoutException: connection attempt timed out after 5000ms
        at org.eclipse.hono.connection.impl.ConnectionFactoryImpl.lambda$connect$0(ConnectionFactoryImpl.java:140)
        at io.vertx.core.impl.VertxImpl$InternalTimerHandler.handle(VertxImpl.java:911)
        at io.vertx.core.impl.VertxImpl$InternalTimerHandler.handle(VertxImpl.java:875)
        at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:320)
        at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
        at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:188)
        at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:180)
        at io.vertx.core.impl.VertxImpl$InternalTimerHandler.run(VertxImpl.java:901)
        at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
        at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:127)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:416)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:515)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:834)
13:43:45.207 [vert.x-eventloop-thread-0] DEBUG o.e.h.client.impl.HonoConnectionImpl - starting attempt [#5170] to connect to server [hono-service-device-registry:5671]
13:43:45.207 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - OpenSSL [available: false, supports KeyManagerFactory: false, supports Hostname validation: false]
13:43:45.207 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - using JDK's default SSL engine
13:43:45.207 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - enabling secure protocol [TLSv1.2]
13:43:45.207 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - connecting to AMQP 1.0 container [amqps://hono-service-device-registry:5671]
13:43:45.208 [vert.x-eventloop-thread-0] DEBUG o.e.h.c.impl.ConnectionFactoryImpl - ignoring failed connection attempt to AMQP 1.0 container [amqps://hono-service-device-registry:5671]: attempt already timed out
io.netty.channel.ConnectTimeoutException: connection timed out: hono-service-device-registry.hono.svc.cluster.local/100.67.196.156:5671
        at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:263)
        at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
        at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:127)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:416)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:515)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)

某些 pod 没有端点:

root@ip-172-31-35-125:~# Kubectl get ep -n hono

NAME---ENDPOINTS
endpoints/hono-adapter-amqp-vertx
endpoints/hono-adapter-amqp-vertx-headless
endpoints/hono-adapter-http-vertx
endpoints/hono-adapter-http-vertx-headless
endpoints/hono-adapter-mqtt-vertx
endpoints/hono-adapter-mqtt-vertx-headless
endpoints/hono-artemis---100.96.1.6:5671
endpoints/hono-dispatch-router---100.96.2.5:5673
endpoints/hono-dispatch-router-ext---100.96.2.5:5671,100.96.2.5:5672
endpoints/hono-grafana---100.96.1.5:3000
endpoints/hono-prometheus-server---none
endpoints/hono-service-auth---100.96.2.7:5671
endpoints/hono-service-auth-headless---100.96.2.7
endpoints/hono-service-device-connection-headless---none
endpoints/hono-service-device-registry---none
endpoints/hono-service-device-registry-ext---none
endpoints/hono-service-device-registry-headless---none

AMQP 适配器服务也没有端点:

root@ip-172-31-35-125:~# kubectl -n hono describe service hono-adapter-amqp-vertx

Name:                     hono-adapter-amqp-vertx
Namespace:                hono
Labels:                   app.kubernetes.io/component=adapter-amqp-vertx
                          app.kubernetes.io/instance=hono
                          app.kubernetes.io/managed-by=Tiller
                          app.kubernetes.io/name=eclipse-hono
                          app.kubernetes.io/version=1.0-M7
                          helm.sh/chart=eclipse-hono-1.0-M7
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"adapter-amqp-vertx","app.kuberne...
Selector:                 app.kubernetes.io/component=adapter-amqp-vertx,app.kubernetes.io/instance=hono,app.kubernetes.io/name=eclipse-hono
Type:                     LoadBalancer
IP:                       100.67.94.188
LoadBalancer Ingress:     a25d01250eb3611e9b45f0e90af72a72-2016210601.eu-west-3.elb.amazonaws.com
Port:                     amqp  5672/TCP
TargetPort:               amqp/TCP
NodePort:                 amqp  32672/TCP
Endpoints:
Port:                     amqps  5671/TCP
TargetPort:               amqps/TCP
NodePort:                 amqps  32671/TCP
Endpoints:
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

我不确定问题出在我的 AWS k8s 和 VPC 连接上还是与 Hono 部署有关?知道如何解决这个问题吗?

4

0 回答 0