k8s 容器部署Node-RED
AI智能回答
k8s 部署Node-RED docker
要在Kubernetes上部署Node-RED,您可以使用Docker镜像直接运行Node-RED,或者创建一个Dockerfile来定制Node-RED。以下是一个基本的示例,展示如何通过Dockerfile和Kubernetes配置文件来部署Node-RED。
首先,创建一个Dockerfile来定制Node-RED镜像:Dockerfile
FROM nodered/node-red-docker:latest
# 复制任何需要的自定义节点到/usr/src/node-red/node_modules/目录
# COPY node-red-contrib-my-node /usr/src/node-red/node_modules/node-red-contrib-my-node
# 如果你有一个flows.json文件,你可以复制到/data
# COPY flows.json /data/flows.json
然后,构建Docker镜像:Shell命令
docker build -t mynodered .
接下来,创建一个Kubernetes部署配置文件:deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodered
spec:
replicas: 1
selector:
matchLabels:
app: nodered
template:
metadata:
labels:
app: nodered
spec:
containers:
- name: nodered
image: mynodered:latest
ports:
- containerPort: 1880
最后,创建一个Service配置文件来暴露Node-RED到集群外部:service.yaml
apiVersion: v1
kind: Service
metadata:
name: nodered-service
spec:
selector:
app: nodered
ports:
- protocol: TCP
port: 80
targetPort: 1880
type: LoadBalancer
将这些文件保存到相应的.yaml文件中,然后使用kubectl应用它们:shell命令
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
这将在Kubernetes集群上部署Node-RED,并通过LoadBalancer类型的Service暴露它,允许您通过外部IP访问Node-RED的Web界面。
提示:AI自动生成,仅供参考
官方文档
Quick Start
# 拉取node-red的镜像
docker pull nodered/node-red
# 运行node-red的镜像成为容器
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
Docker Stack / Docker Compose
文件名称 docker-compose-node-red.yml
################################################################################
# Node-RED Stack or Compose
################################################################################
# docker stack deploy node-red --compose-file docker-compose-node-red.yml
# docker-compose -f docker-compose-node-red.yml -p myNoderedProject up
################################################################################
version: "3.7"
services:
node-red:
image: nodered/node-red:latest
environment:
- TZ=Europe/Amsterdam
ports:
- "1880:1880"
networks:
- node-red-net
volumes:
- node-red-data:/data
volumes:
node-red-data:
networks:
node-red-net:
Dockerfile文件
FROM nodered/node-red
# Copy package.json to the WORKDIR so npm builds all
# of your added nodes modules for Node-RED
WORKDIR /data
COPY package.json /data
RUN npm install --unsafe-perm --no-update-notifier --no-fund --only=production
WORKDIR /usr/src/node-red
# Copy _your_ Node-RED project files into place
# NOTE: This will only work if you DO NOT later mount /data as an external volume.
# If you need to use an external volume for persistence then
# copy your settings and flows files to that volume instead.
COPY settings.js /data/settings.js
COPY flows_cred.json /data/flows_cred.json
COPY flows.json /data/flows.json
Docker部署Node-RED
利用Docker部署Node-RED可以通过以下步骤进行:
- 安装Docker:首先,确保你的计算机上已经安装了Docker。你可以从Docker官网下载并安装适合你操作系统的版本。
- 创建Docker镜像:在Dockerfile中,编写一个包含Node-RED的Docker镜像。Dockerfile是一个文本文件,其中包含了构建镜像的指令。以下是一个简单的Dockerfile示例
FROM node:latest
WORKDIR /app
COPY . /app
RUN npm install -g node-red
EXPOSE 1880
CMD ["node-red", "--max-old-space-size=4096"]
这个Dockerfile基于最新的Node.js镜像,并将当前目录下的文件复制到/app目录。然后,它安装Node-RED全局包,并将端口1880暴露出来。最后,使用CMD指令启动Node-RED服务器。
- 构建Docker镜像:在终端或命令提示符中,进入包含Dockerfile的目录,然后运行以下命令来构建Docker镜像:
docker build -t nodered .
这将构建一个名为nodered的Docker镜像。
4. 运行Docker容器:使用以下命令来运行Node-RED的Docker容器:
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red