LoginSignup
4
5

More than 3 years have passed since last update.

n8n.ioをIKS(IBM Cloud Kubernetes Service)で動かすまで

Last updated at Posted at 2019-10-23

n8n.io

n8n.ioは、Zapierの代替を標榜するオープンソースの自動化ツールです。

インストール方法

n8n.ioの公式ドキュメントでは、Node.js環境もしくはdockerで動かすことが書かれています。今回は、公式ドキュメントの「Start with docker」を応用し、IKS(IBM Cloud Kubernetes Service)で動かします。

準備するもの

  • (必須) IBM Cloud ライト・アカウントを取得するためのメールアドレス
  • (必須) クレジットカードまたはデビットカード << 両方ともVISAで確認済み。PAYG(従量課金制)に移行するために必要。しかし無料枠を使用する。
  • (必須) コーヒーブレイク用のコーヒー
  • (任意) Kubernetesの概要
  • (任意) Linux仮想マシン
    • VirtualBoxやHyper-V環境下で、作業用のLinux仮想マシンを用意します。筆者は「Lubuntu」を使用しました。Lubuntuを起動し、ターミナルで作業しています。

IKS(IBM Cloud Kubernetes Service)

PAYGに移行

IKSには、無料プランがありますので、今回は無料プランを使用します。IKSの無料プランを使用するには、IBM CloudをPAYGへ変更する必要があります。
IBM Cloud ライト・アカウントを取得した後、クレジットカードまたはデビットカードを登録し、PAYG(従量課金制)の有償アカウントに移行します。IBM CloudにはPAYGに移行することで、無料枠で使える範囲がさらに広がるという面白い特徴があります。IKSの無料プランは、広がった無料枠で使用できます。
PAYGについては、IBM Cloudのよくある質問(FAQ)に記載があります。

IBM Cloud CLIのインストール

IBM Cloud CLIを使用して作業します。IBM Cloud CLIは、Windwos / Mac / Linux環境にインストールすることができます。好みの環境にインストールしてください。
IBM Cloud CLI および Developer Tools の概説

クラスター作成

IBM Cloudにログイン後、画面左上の「三」>>「Kubernetes」の順にクリックします。
クラスタ作成_1.png
Kubernetesクラスターを使用しますので、「クラスターの作成」をクリックします。
クラスタ作成_2.png
下図の画面が表示されます。プランは「無料」、クラスターのタイプは「Kubernetes」を選びます。数分待ち、画面右端の「クラスターの作成」をクリックします。
画面下部には、初期状態で「mycluster」でクラスター名がセットされています。変更しても良いですが、ここではそのまま使用します。
クラスタ作成_3.png
下図のように「通常」と表示されるまで待ちます。凡そ30分前後ですので、コーヒーブレイクにしましょう。
クラスタ作成_4.png

上図のようになりましたら、画面右端の「CLIを介した接続」をクリックしまして、表示される手順に従って、コマンドを実行します。この作業には、作業前までにIBM Cloud CLIがインストールされている必要があります。
クラスタ作成_5.png

n8n.ioをIKSにデプロイ

ここまで準備ができたら、n8n.ioをIKSで動かしましょう。
ここでは、Linux環境を使用しておりますので、Linux環境以外を使用の場合は、各環境に置き換えてください。

Pod作成

次のコマンドを実行します。

$ sudo nano n8nio-deployment.yaml

n8nio-deployment.yamlには、下記の内容を記述します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: n8n-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: n8n
  template:
    metadata:
      labels:
        app: n8n
    spec:
      containers:
      - name: n8n
        image: n8nio/n8n
        ports:
        - containerPort: 5678

Podを作成します。

$ kubectl create -f n8nio-deployment.yaml

Podの確認

NAME            READY   UP-TO-DATE   AVAILABLE   AGE
n8n-deployment   1/1    1            1           78s

これでPodの動作を確認できました。Pod内でn8n.ioを動くのですが、この状態ではWebブラウザでn8n.ioを使用することができません。Webブラウザから呼び出せるようにするために、アクセス用のポートを割り当てます。

外部アクセスポート割り当て

次のコマンドを実行します。

$ sudo nano n8n-nodeport.yaml

外部からアクセスするためのポートを割り当てるためのYAMLファイルを作成します。

apiVersion: v1
kind: Service
metadata:
  name: n8n-deployment
spec:
  type: NodePort
  selector:
    app: n8n
  ports:
  - protocol: TCP
    port: 5678
    nodePort: 32567

作成したYAMLファイルを用いて、ポートを割り当てます。

$ kubectl create -f n8n-nodeport.yaml

外部アクセス用のポートが割り当てられているか確認するコマンドを実行します。

$ kubectl get services

実行結果

NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes       ClusterIP   172.21.0.1       <none>        443/TCP          87s
n8n-deployment   NodePort    172.21.219.xxx   <none>        5678:32567/TCP   66s

表示されているIPアドレスは、クラスター内のIPアドレスです。次のコマンドを実行し、アクセス用のパブリックIPを取得します。

アクセス用パブリックIPの取得とWebブラウザからアクセス

$ ibmcloud cs workers mycluster

実行結果

OK
ID                                                     パブリック IP    プライベート IP   フレーバー   状態     状況    ゾーン   バージョン   
kube-bmo4tprd04cph515mer0-mycluster-default-00000008   173.193.92.yyy   10.76.141.217     free    normal   Ready   hou02    1.14.7_1535

これで「n8n.io」が稼働しているKubernetesクラスターに接続するためのパブリックIPアドレスが確認できましたので、お使いのPCのWebブラウザで、http://パブリックIPアドレス:32567 にアクセスします。「n8n.io」の画面が表示されるはずです。
image.png

参考記事

Node-REDをIKS(IBM Cloud Kubernetes Service)で動かす

4
5
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
4
5