LoginSignup
1
0

More than 1 year has passed since last update.

k3s(with Longhorn)でNode-REDを動かす

Last updated at Posted at 2022-07-14

これまでAWSに構築したk3sにLonghornを導入するところまで個人練習してみました。今回は、そこにNode-REDを導入してみます。

ソフトウェア構成

※AWS上の4インスタンスに構築したk3sクラスタ構成
Debian GNU/Linux 11
k3s version v1.23.8+k3s1 (53f2d4e7)
go version go1.17.5
Longhorn v1.3.0
Node-RED 2.2.2(latest)

マニフェストファイルを用意する

以下のようなyamlファイルを用意しました。kubectl applyすることで、Node-REDを動かすことができます。

node-red.yaml
apiVersion: v1
kind: Service
metadata:
  name: nodered
  namespace: default
spec:
  selector:
    app: nodered
  ports:
  - port: 1880
    protocol: TCP
    targetPort: 1880
    nodePort: 31880
  type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nodered
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nodered
  template:
    metadata:
      labels:
        app: nodered
    spec:
      # Add
      securityContext:
        fsGroup: 1000
      containers:
      - name: nodered
        image: nodered/node-red
        ports:
        - containerPort: 1880
        # mount
        volumeMounts:
        - mountPath: /data
          name: data
      #PVC
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data
  namespace: default
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: longhorn

(要点)
・Service、Deployment、PersistentVolumeClaimの三部分に分かれます
・DeploymentのところにvolumeMounts: volumes:の部分を記載することで、PVCが利用できるようにします。/data以下を永続化します。
・先日の記事で、Longhornを構築してます。ですので、PersistentVolumeClaimの部分で、storageClassNameにlonghornを指定してます。
・工夫しないとユーザー権限の問題でエラーが出てしまいいます。公式にも書かれている通りコンテナ内のnode-redユーザ(デフォルトではuid=1000)が永続化ボリューム内のファイルにアクセスできるよう、権限を設定してあげる必要がある模様です。そこでこの記事を参考にDeploymentのところで、

securityContext:
  fsGroup: 1000

を追加しました。

参考文献

Play with KubernetesでNode-REDを動かしてみた。
【Nutanix Karbon】Kubernetes 上に Node-Red を作ってみる

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0