【发布时间】:2022-01-21 12:20:53
【问题描述】:
我正在尝试在我的 minikube kubernetes 集群(“集群”,它的一个节点:D)中运行 nodered。
执行此操作的 docker 命令是示例:
docker run -it -p 1880:1880 -v /home/user/node_red_data:/data --name mynodered nodered/node-red
但我没有在 docker 中运行它,我正在尝试在 minikube 中运行它。 minikube 的文档指出主机上的 /data 是持久化的。所以我想要一个 /data/nodered 作为 /data 安装在 nodered 容器上。
我从添加存储类开始:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate
然后添加持久化存储:
apiVersion: v1
kind: PersistentVolume
metadata:
name: small-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- minikube
然后是节点的持久卷声明:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nodered-claim
spec:
storageClassName: local-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
然后是部署:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nodered
name: nodered
spec:
replicas: 1
volumes:
- name: nodered-claim
persistentVolumeClaim:
claimName: nodered-claim
selector:
matchLabels:
app: nodered
template:
metadata:
labels:
app: nodered
spec:
containers:
- name: nodered
image: nodered/node-red:latest
ports:
- containerPort: 1880
volumeMounts:
- name: nodered-claim
mountPath: "/data"
subPath: "nodered"
我检查了 kubernetes 仪表板,一切都是绿色的,并且音量已绑定。我在 nodered 中创建了一个简单的 http 服务并进行了部署。它正在运行,但没有保存任何内容。因此,如果部署失败并重新部署,它将是空的。
我检查了在 docker 中运行的 minikube 实例上的 /data 和 /data/nodered 文件夹,但它们是空的。
【问题讨论】:
标签: kubernetes minikube