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」の順にクリックします。
Kubernetesクラスターを使用しますので、「クラスターの作成」をクリックします。
下図の画面が表示されます。プランは「無料」、クラスターのタイプは「Kubernetes」を選びます。数分待ち、画面右端の「クラスターの作成」をクリックします。
画面下部には、初期状態で「mycluster」でクラスター名がセットされています。変更しても良いですが、ここではそのまま使用します。
下図のように「通常」と表示されるまで待ちます。凡そ30分前後ですので、コーヒーブレイクにしましょう。
上図のようになりましたら、画面右端の「CLIを介した接続」をクリックしまして、表示される手順に従って、コマンドを実行します。この作業には、作業前までにIBM Cloud CLIがインストールされている必要があります。
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」の画面が表示されるはずです。