在 Kubernetes 上配置 NATS max_payload
Configure NATS max_payload on Kubernetes
我的问题是我需要在生产环境中增加 NATS max_payload 但它使用 Kubernetes,我不知道该怎么做,我尝试使用 ConfigMap 但没有成功。
在 local/dev 环境中,它使用带有 docker 的 NATS 配置文件,因此它工作正常。
使其在本地工作的方法:
里面的代码k8s/deployment.develop.yaml
(...)
apiVersion: v1
kind: ServiceAccount
metadata:
name: nats
namespace: develop
labels:
account: nats
---
apiVersion: v1
kind: Service
metadata:
name: nats
namespace: develop
labels:
app: nats
service: nats
spec:
ports:
- port: 4222
targetPort: 4222
selector:
app: nats
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nats-v1
namespace: develop
labels:
app: nats
version: v1
spec:
replicas: 1
strategy: {}
selector:
matchLabels:
app: nats
version: v1
template:
metadata:
labels:
app: nats
version: v1
spec:
serviceAccountName: nats
containers:
- image: 'nats:alpine'
name: nats
ports:
- containerPort: 4222
restartPolicy: Always
tolerations: []
affinity: {}
谢谢!
有效负载值被硬编码到 docker 图像中(在 nats-server.conf 文件中),因此您无法通过配置映射更改它。我找到的唯一解决方案是使用修改后的 nats-server.conf
文件构建我自己的 nats 图像。
这是操作方法。
- 首先,select 来自 the official repo and download the content (for example
Dockerfile
and nats-server.conf
from here) 的图像风格。
- 修改
nats-server.conf
文件以更改 max_payload
值:只需添加以下行(此文件不是 JSON 格式)
max_payload: 4Mb
- 然后构建镜像:
docker image build .
- 标记它,将它上传到您自己的存储库并使用它代替官方
nats
图片
我建议使用这些 NATS Helm charts,然后使用类似下面的内容:
nats:
limits:
maxPayload: "5mb"
您可以在此处找到完整示例:https://github.com/nats-io/k8s/tree/master/helm/charts/nats#limits
我的问题是我需要在生产环境中增加 NATS max_payload 但它使用 Kubernetes,我不知道该怎么做,我尝试使用 ConfigMap 但没有成功。
在 local/dev 环境中,它使用带有 docker 的 NATS 配置文件,因此它工作正常。
使其在本地工作的方法:
里面的代码k8s/deployment.develop.yaml
(...)
apiVersion: v1
kind: ServiceAccount
metadata:
name: nats
namespace: develop
labels:
account: nats
---
apiVersion: v1
kind: Service
metadata:
name: nats
namespace: develop
labels:
app: nats
service: nats
spec:
ports:
- port: 4222
targetPort: 4222
selector:
app: nats
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nats-v1
namespace: develop
labels:
app: nats
version: v1
spec:
replicas: 1
strategy: {}
selector:
matchLabels:
app: nats
version: v1
template:
metadata:
labels:
app: nats
version: v1
spec:
serviceAccountName: nats
containers:
- image: 'nats:alpine'
name: nats
ports:
- containerPort: 4222
restartPolicy: Always
tolerations: []
affinity: {}
谢谢!
有效负载值被硬编码到 docker 图像中(在 nats-server.conf 文件中),因此您无法通过配置映射更改它。我找到的唯一解决方案是使用修改后的 nats-server.conf
文件构建我自己的 nats 图像。
这是操作方法。
- 首先,select 来自 the official repo and download the content (for example
Dockerfile
andnats-server.conf
from here) 的图像风格。 - 修改
nats-server.conf
文件以更改max_payload
值:只需添加以下行(此文件不是 JSON 格式)
max_payload: 4Mb
- 然后构建镜像:
docker image build .
- 标记它,将它上传到您自己的存储库并使用它代替官方
nats
图片
我建议使用这些 NATS Helm charts,然后使用类似下面的内容:
nats:
limits:
maxPayload: "5mb"
您可以在此处找到完整示例:https://github.com/nats-io/k8s/tree/master/helm/charts/nats#limits