🐋

MinikubeにOpenFaaSをデプロイする

2024/09/28に公開

概要

おうちサーバでFaaSして~って思ってたけど案外選択肢が少ない。気がする。
思いつくのは下記のツール類。

  1. OpenFaaS
  2. LocalStack
  3. Knative
  4. serverless framework

なんか1が一番シンプルそう。
あんまり複雑な構成にすると普通にWebサーバ立てたほうが楽そうで本末転倒なので。

環境

Proxmox上に構築したUbuntu 20.04のVM
CPUは2Core, RAM2GBを割り当てました。

前提条件としてdockerをインストール、一般ユーザ権限で起動できるようにしてあります。

手順

基本的には下記記事に沿って作業します。Installation - Linux, x86-64, Stable, Debian package を参照。
https://minikube.sigs.k8s.io/docs/start/

kubectl のインストール

$ sudo snap install kubectl --classic

Minikubeのインストール

$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
$ sudo dpkg -i minikube_latest_amd64.deb

$ minikube start
$ minikube status

OpenFaaSのnamespaceを設定

$ git clone https://github.com/openfaas/faas-netes
$ cd faas-netes
$ kubectl apply -f namespaces.yml
$ kubectl get namespaces

OpenFaaSにBasic認証を設定

$ kubectl -n openfaas create secret generic basic-auth --from-literal=basic-auth-user={{ユーザ名}} --from-literal=basic-auth-password={{パスワード}}

OpenFaaSのデプロイ

$ kubectl apply -f ./yaml/

minikubeのポートフォワーディング

minikubeのIPを確認

$ minikube ip
{{IPアドレス}}

ホストの80番ポートへのアクセスをminikubeの31112ポートへフォワーディングする

$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination {{IPアドレス}}:31112
$ sudo iptables -t nat -A POSTROUTING -p tcp -d {{IPアドレス}} --dport 31112 -j MASQUERADE
$ sudo iptables -A FORWARD -p tcp -d {{IPアドレス}} --dport 31112 -j ACCEPT

ダッシュボードの確認

http://{{ホストのIPアドレス}}:80 にアクセスすると見れます。
今は全く触ってません。ただ使ってみたかっただけですね。

おしまい

参考記事

OpenFaas を Kubernetes 上にデプロイする

Discussion