Rancher の カタログ (Catalog) で OpenFaaS を試してみる

[スーパーソフトウエア](https://www.supersoftware.co.jp/)の福山さんが、Rancher 上で動く OpenFaaS のカタログを作ったそうなので、自前の Rancher で OpenFaaSを動かしてみました！

[OpenFaaS on Rancher – Cloud Academy, Inc. – Medium](https://medium.com/cloud-academy-inc/openfaas-on-rancher-684650cc078e)
https://medium.com/cloud-academy-inc/openfaas-on-rancher-684650cc078e

## 1. まず、Rancher にログインします。

記載省略

## 2. OpenFaaS 用のStackを作成

OpenFaaS が Function用のStack が必要になるので、先に作っておきましょう。
このStack内で Function用のDockerコンテナーが動きます。
OpenFaaSのコンテナーのスタックとは別になります。

スタック名は、「faas-functions」(この名前は後で使いますので間違えないで下さい。)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/fe7700e5-6c6e-336c-39fa-cb1c3f79fd0c.png)

スタックができました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/380f8553-1a5c-ecfa-f555-076847d9f3d2.png)

## 3. 環境キー(Environment Key)の作成

API から キー を作成します。 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/be671368-f648-9192-f572-9e65271eae35.png)

以下からアカウントAPIキーを作りたいところなのですが、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/31ba5c54-beac-5108-2c65-e7a6ac4f5d18.png)

アカウントAPIキーではなくて、「拡張オプション」をクリックして、
「環境APIキー」をクリックして下さい。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/10edd18d-77a5-6c41-79ef-24de092851db.png)

こちらの名前は、何でもOKです。

鍵ができたらメモっておきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/984f685f-c6fa-e44f-3b6f-06d6b8df67ec.png)

ついでにエンドポイント(v2-beta) もメモっておきます。
http://xx.xx.xx.xx:8080/v2-beta/projects/1a5

## 4. OpenFaaS をデプロイします。
カタログから、OpenFaaSを検索して「詳細を見る」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/4c60ef2d-f88b-07a8-ad89-6f9016a67010.png)


次のような画面が出てきます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/1cbc316f-7efc-efdd-9953-d7b6a963c6de.png)

以下の様にエンドポイント、API Access Key、API Secret Keyを入力して、
Functions Stack Name を入力します。
ここで、Functions Stack Name を 2で作った「OpenFaaS 用のStackを作成」のスタック名を入れて下さい。(ここでは、faas-functions)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/a27c0f49-373e-f840-260b-a4436b73f166.png)

起動ボタンを押しましょう。

## 5. OpenFaaS スタックが起動したのを確認

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/929a5c2e-fdcc-3bd9-8633-4198249f16d6.png)
起動したのですが、lbのポート8080がRancher のポートとかぶっているので起動できませんでした。仕方ないので、8088に変更します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/328cc1cb-64d5-8fff-37ab-0382aece2886.png)
スタックを編集し、

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/a9273851-10c2-fb8d-933c-165f3feb6065.png)
8088 に変更して、「編集」を押します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/202ea07d-c32e-8838-d67f-1f98d87f548e.png)
起動しました。

## 6. OpenFaaS UIを開く

http://xx.xx.xx.xx:8088/
を開くと、以下の様なOpenFaaSのポータルが開きます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/891bb3a1-320b-19ae-090e-3c5ee338efaf.png)

CREATE NEW Functionを押しましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/124f8a1e-26d4-0eec-79e8-70545af3efc0.png)

それぞれ、

```
Image:functions/hubstats:latest
Service name hubstats
fProcess:/go/bin/DockerHubStats
```
を入力します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/d8173d61-aa34-360e-4c50-e13e096b40dc.png)

CREATEボタンを押してしばらくすると、、

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/fbf8a1a8-dfec-807a-28de-259f8cc593aa.png)
できました。

faas-functionsスタック内にもできました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/c03eb766-48de-432a-b8c3-dbd07761d698.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/7a4afed2-ddd8-3d22-a323-40770dec6c49.png)
動かしてみます。

Request body に Rancher と入れて、INVOKE ボタンを押してみます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/2366e3e0-ad79-cfb1-b584-0e348d6dab0c.png)

合っているかどうか分からない、200レポジトリーと返事が返ってきました。

https://hub.docker.com/u/rancher/?page=14
を見ると、1ページに15で、14ページ目に5個あるので、200個ありました。

正しいようです。

Rancher で簡単に OpenFaaS を動かす事ができました！