如何将Akka样本集群kubernetes与Scala和minikube一起使用?

如何将Akka样本集群kubernetes与Scala和minikube一起使用?,scala,kubernetes,akka,minikube,akka-cluster,Scala,Kubernetes,Akka,Minikube,Akka Cluster,我正在尝试运行,因为建议使用Akka管理集群引导程序将Akka集群部署到minikube上。运行自述文件中建议的每个步骤后,我可以看到POD在我的kubectl输出上运行: $ kubectl get pods NAME READY STATUS RESTARTS AGE appka-8b88f7bdd-485nx 1/1 Running 0 48m appka-8b88f7bdd-4blrv 1/1

我正在尝试运行,因为建议使用
Akka管理集群引导程序将Akka集群部署到minikube上。运行自述文件中建议的每个步骤后,我可以看到POD在我的
kubectl
输出上运行:

$ kubectl get pods
NAME                    READY   STATUS    RESTARTS   AGE
appka-8b88f7bdd-485nx   1/1     Running   0          48m
appka-8b88f7bdd-4blrv   1/1     Running   0          48m
appka-8b88f7bdd-7qlc9   1/1     Running   0          48m
当我执行
/scripts/test.sh
时,最后一步似乎失败了:

"No 3 MemberUp log events found"
而且我无法连接到自述文件上的给定地址错误

$ curl http://127.0.0.1:8558/cluster/members/
curl: (7) Failed to connect to 127.0.0.1 port 8558: Connection refused
从现在起,我将描述如何尝试找到无法使用示例akka+kubernetes项目的原因。我正在努力找出上述错误的原因。我想我必须执行
sbt run
,即使示例项目中没有提到它。对于
application.conf
中的
${REQUIRED\u CONTACT\u POINT\u NR}
变量,我得到以下错误:

[错误]线程“main”中出现异常 com.typesafe.config.ConfigException$UnsolvedSubstitution: application.conf@ jar:file:/home/felipe/workspace idea/akka示例集群kubernetes scala/target/bg jobs/sbt_12a05599/job-1/target/d9ddd12d/64fe375d/akka-sample-cluster-kubernetes_2.13-0.0.0-70-49d6a855-20210104-1057.jar/application.conf: 19:无法将替换解析为值: ${必需的\u联系人\u点\u NR}

因此,我假设它没有从
kubernetes/akka cluster.yml
文件中获取配置:
name:REQUIRED\u CONTACT\u POINT\u NR
。将其更改为
required contact point nr=3
4
我得到错误:

[error] SLF4J: A number (4) of logging calls during the initialization phase have been intercepted and are
[error] SLF4J: now being replayed. These are subject to the filtering rules of the underlying logging system.
[error] SLF4J: See also http://www.slf4j.org/codes.html#replay
...
[info] [2021-01-04 11:00:57,373] [INFO] [akka.remote.RemoteActorRefProvider$RemotingTerminator] [] [appka-akka.actor.default-dispatcher-3] - Shutting down remote daemon. MDC: {akkaAddress=akka://appka@127.0.0.1:25520, sourceThread=appka-akka.remote.default-remote-dispatcher-9, akkaSource=akka://appka@127.0.0.1:25520/system/remoting-terminator, sourceActorSystem=appka, akkaTimestamp=10:00:57.373UTC}
[info] [2021-01-04 11:00:57,376] [INFO] [akka.remote.RemoteActorRefProvider$RemotingTerminator] [] [appka-akka.actor.default-dispatcher-3] - Remote daemon shut down; proceeding with flushing remote transports. MDC: {akkaAddress=akka://appka@127.0.0.1:25520, sourceThread=appka-akka.remote.default-remote-dispatcher-9, akkaSource=akka://appka@127.0.0.1:25520/system/remoting-terminator, sourceActorSystem=appka, akkaTimestamp=10:00:57.375UTC}
[info] [2021-01-04 11:00:57,414] [INFO] [akka.remote.RemoteActorRefProvider$RemotingTerminator] [] [appka-akka.actor.default-dispatcher-3] - Remoting shut down. MDC: {akkaAddress=akka://appka@127.0.0.1:25520, sourceThread=appka-akka.remote.default-remote-dispatcher-9, akkaSource=akka://appka@127.0.0.1:25520/system/remoting-terminator, sourceActorSystem=appka, akkaTimestamp=10:00:57.414UTC}
[error] Nonzero exit code returned from runner: 255
[error] (Compile / run) Nonzero exit code returned from runner: 255
[error] Total time: 6 s, completed Jan 4, 2021 11:00:57 AM

您正试图使用
sbt run
,因此出现了联系人错误
sbt-run
将在minikube之外运行一个实例,这不是您想要的。而且,由于它在Minikube之外运行,因此它不会获取容器规范中设置的环境变量。脚本执行构建/部署,您不需要手动运行sbt

另外,主要错误不是连接到8558,我不相信配置会暴露minikube之外的管理端口


所有三个容器都报告了一个正在运行的状态,这表明您可能实际上有一个正在运行的集群,并且测试脚本可能只是缺少日志中的消息。正如其他人在评论中所说,来自其中一个容器的日志将有助于确定您是否有一个工作集群,以及诊断集群形成中的任何问题。

关于我的问题的答案和评论是正确的。我不需要运行
sbt run
在web浏览器上可视化输出。我缺少的是将集群节点的当前端口转发到输出端口。这没有在上指定,但我相信这是因为它们直接在Google Kubernetes引擎平台上运行,而不是首先在minikube中运行

$ kubectl get pods -A
NAMESPACE     NAME                                        READY   STATUS      RESTARTS   AGE
appka-1       appka-8b88f7bdd-97zfl                       1/1     Running     0          9m10s
appka-1       appka-8b88f7bdd-bhv44                       1/1     Running     0          9m10s
appka-1       appka-8b88f7bdd-ff76s                       1/1     Running     0          9m10s
$ #### THIS COMMAND IS NOT IN THE README FILE OF THE DEMO ####
$ kubectl port-forward appka-8b88f7bdd-ff76s 8080
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080
现在我可以看到输出:

$ http GET http://127.0.0.1:8080/
HTTP/1.1 200 OK
Content-Length: 11
Content-Type: text/plain; charset=UTF-8
Date: Wed, 06 Jan 2021 10:59:40 GMT
Server: akka-http/10.2.1

Hello world

在不同的问题上似乎有很多错误。你能试着集中注意力吗?你的问题到底是什么?主要问题基本上是如何运行示例Akka+cluster+kubernetes项目。主要错误是
curl:(7)无法连接到127.0.0.1端口8558:连接被拒绝
。问题的其余部分是我认为示例项目中没有很好地定义的内容。换言之,只是猜测可能会帮助其他人帮助我。可能有帮助的是查看其中一个POD的输出:
kubectl日志appka-8b88f7bdd-485nx
。我的猜测是集群发现不起作用。不要运行
sbt
它将绕过kubernetes配置备忘。
$ http GET http://127.0.0.1:8080/
HTTP/1.1 200 OK
Content-Length: 11
Content-Type: text/plain; charset=UTF-8
Date: Wed, 06 Jan 2021 10:59:40 GMT
Server: akka-http/10.2.1

Hello world