【问题标题】:Using NATS Transport Layer in HELM在 HELM 中使用 NATS 传输层
【发布时间】:2021-06-16 23:06:10
【问题描述】:

我想知道是否有任何 HELM 大师可以为我提供一些启发/指出正确的方向...

我正在测试一个 PoC,我们正在使用分子构建一个应用程序,该应用程序在后端有一些服务链接(票证、通知)。我们使用 NATS 作为传输层,并且在使用 docker-compose 运行 env 或使用 minikube 运行的简单 k8 文件时设法让我们的服务相互通信。

现在我正在尝试使用 HELM 将其带到我们的 K8 集群,并且正在努力让 NATS 与服务对话。我尝试将运输服务上的 env var 设置为 nats://nats:4222,并在 NATS 图表上将 4222 宣传为容器端口。

但是,一旦运行我的 helm upgrade install 并检查 NATS pod 状态,它就会失败并显示以下输出:

│ [1] 2021/03/19 14:12:21.843799 [INF] STREAM: Streaming Server is ready                                                                                                               │
│ [1] 2021/03/19 14:12:23.569211 [ERR] 127.0.0.1:42594 - cid:5 - Client parser ERROR, state=0, i=0: proto='"GET / HTTP/1.1\r\nhost: 10.202.211"...'                                    │
│ [1] 2021/03/19 14:12:32.679854 [ERR] 127.0.0.1:42800 - cid:6 - Client parser ERROR, state=0, i=0: proto='"GET / HTTP/1.1\r\nhost: 10.202.211"...'                                    │
│ [1] 2021/03/19 14:12:33.568306 [ERR] 127.0.0.1:42830 - cid:7 - Client parser ERROR, state=0, i=0: proto='"GET / HTTP/1.1\r\nhost: 10.202.211"...'                                    │
│ [1] 2021/03/19 14:12:42.679902 [ERR] 127.0.0.1:43040 - cid:8 - Client parser ERROR, state=0, i=0: proto='"GET / HTTP/1.1\r\nhost: 10.202.211"...'                                    │
│ [1] 2021/03/19 14:12:43.568204 [ERR] 127.0.0.1:43066 - cid:9 - Client parser ERROR, state=0, i=0: proto='"GET / HTTP/1.1\r\nhost: 10.202.211"...'                                    │
│ [1] 2021/03/19 14:12:52.680184 [ERR] 127.0.0.1:43270 - cid:10 - Client parser ERROR, state=0, i=0: proto='"GET / HTTP/1.1\r\nhost: 10.202.211"...'                                   │
│ [1] 2021/03/19 14:12:53.570613 [ERR] 127.0.0.1:43288 - cid:11 - Client parser ERROR, state=0, i=0: proto='"GET / HTTP/1.1\r\nhost: 10.202.211"...'                                   │
│ [1] 2021/03/19 14:12:55.655059 [INF] STREAM: Shutting down.                                                                                                                          │
│ [1] 2021/03/19 14:12:55.655252 [INF] Initiating Shutdown...                                                                                                                          │
│ [1] 2021/03/19 14:12:55.655536 [INF] Server Exiting..                                                                                                                                │
│ stream closed                       

不确定我错过了什么,我应该将 NATS 地址宣传为入口吗?

非常感谢任何指导

K8 的版本:客户端:v1.17.2 服务器:v1.16.13 HELM 版本:v3.1.1 图片:nats-streaming:latest(我没有使用流媒体的全部功能,所以如果更容易的话,可以降级为普通的 nats)

【问题讨论】:

  • 作为 svc 应该没问题。您的日志表明您的环境变量没有被使用,因为它说它请求 127.0.0.1。
  • 感谢@jordanm 的建议(和日志清理)我将尝试使用 env var 看看是否能解决问题!

标签: kubernetes kubernetes-helm nats.io transport-layer-protocol


【解决方案1】:

如果你已经有一个可以工作的 docker compose yaml,我推荐使用 Kompose 工具通过下面的命令将 Docker Compose yaml 转换为 helm chart

文档链接:https://kubernetes.io/docs/tasks/configure-pod-container/translate-compose-kubernetes/

命令:

kompose convert -c

【讨论】:

  • 感谢您的推荐,萨加尔。我最初确实尝试了 kompose 方法,它创建了所有 yaml 文件供我部署,但是我认为这是针对 k8s 并且没有看到与 Helm 图表的兼容性。我会尝试你推荐的命令:)
  • 谢谢。如果有帮助,请为答案投票。
猜你喜欢
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
相关资源
最近更新 更多