在 HELM 中使用 NATS 传输层

问题描述

我想知道是否有任何 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,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,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,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,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,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,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 头盔版本:v3.1.1 图片:nats-streaming:latest(我没有使用流媒体的全部功能,所以如果更容易的话,可以降级到普通的 nats)

解决方法

如果你已经有一个可用的 docker compose yaml,我建议使用 Kompose 工具使用下面的命令将 Docker Compose yaml 转换为 helm 图表

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

命令:

kompose convert -c