共用方式為


在 Windows Server 上搭配 AKS 使用 OpenFaaS

適用於:在 Windows Server 上運行的 AKS

OpenFaaS 是使用容器建置無伺服器函式的架構。 作為一個 開放原始碼 專案,它在社群中獲得了大規模的採用。 本文說明在 Windows Server 上的 AKS 上執行的 Kubernetes 叢集上安裝及使用 OpenFaas。

必要條件

若要完成本文中的步驟,請確定您有下列需求:

重要

Helm 的目的是要在 Linux 節點上執行。 如果您的叢集有 Windows Server 節點,您必須確定 Helm Pod 已排定只在 Linux 節點上執行。 您也必須確定您安裝的任何 Helm 圖表都已排定在正確的節點上執行。 本文中的命令會使用 節點選取器 來確保 Pod 被排程到正確的節點,但並非所有 Helm 圖表都支援節點選取器。 您也可以在叢集上使用其他選項,例如 污點

新增 OpenFaaS Helm 圖表存放庫

使用您的 kubeconfig 檔案時,請開啟主控台以啟動部署程式。 如果您在 Windows 上執行,下載並執行 Git Bash 是遵循的最簡單方式。 從這裡開始,OpenFaaS 會維護自己的 Helm 圖表,以隨時掌握所有最新變更:

helm repo add openfaas https://openfaas.github.io/faas-netes/
helm repo update

部署 OpenFaaS

最佳做法是,OpenFaaS 和 OpenFaaS 函式應該儲存在自己的 Kubernetes 命名空間中。

建立 OpenFaaS 系統和函式的命名空間:

kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml

產生 OpenFaaS UI 入口網站和 REST API 的密碼:

# generate a random password
PASSWORD=$(head -c 12 /dev/urandom | shasum| cut -d' ' -f1)

kubectl -n openfaas create secret generic basic-auth \
--from-literal=basic-auth-user=admin \
--from-literal=basic-auth-password="$PASSWORD"

您可以使用 取得秘密 echo $PASSWORD的值。

Helm 圖表會使用您在這裡建立的密碼,在 OpenFaaS 閘道上啟用基本身份驗證,而 OpenFaaS 閘道會透過負載平衡器向外部公開。

OpenFaaS 的 Helm 圖表包含在複製的存放庫中。 使用此圖表在 Kubernetes 叢集上部署 OpenFaaS:

helm upgrade openfaas --install openfaas/openfaas \
    --namespace openfaas  \
    --set basic_auth=true \
    --set functionNamespace=openfaas-fn \
    --set serviceType=LoadBalancer

輸出:

NAME:   openfaas
LAST DEPLOYED: Fri May 14 18:35:47 2021
NAMESPACE: openfaas
STATUS: deployed
REVISION: 1
TEST SUITE: None

若要確認 OpenFaas 已啟動,請執行下列命令:

kubectl --namespace=openfaas get deployments -l "release=openfaas, app=openfaas"

建立了用於存取 OpenFaaS 閘道的公用 IP 位址。 若要擷取此IP位址,請使用 kubectl get service 命令。 將IP位址指派給服務可能需要一分鐘的時間:

kubectl get service -l component=gateway --namespace openfaas

輸出:

NAME               TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)          AGE
gateway            ClusterIP      10.110.205.41  <none>         8080/TCP         7m
gateway-external   LoadBalancer   10.107.51.110  192.168.0.152  8080:32029/TCP   7m

若要測試 OpenFaaS 系統,請流覽至埠 8080 上的外部 IP 位址- http://192.168.0.152:8080 在此範例中。 系統會提示您登入。 若要擷取密碼, 請輸入 echo $PASSWORD

OpenFaaS UI

設定 $OPENFAAS_URL 為在此範例中找到的外部IP。

使用您的主控台登入。 如果您在 Windows 上的 GitBash 中執行命令,您可能需要使用 faas-cli ,而不是 ./faas-cli 在下列命令中使用:

export OPENFAAS_URL=http://192.168.0.152:8080
echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin

建立第一個函式

現在 OpenFaaS 運作正常,請使用 OpenFaaS 入口網站建立函式。

選取 [ 部署新函式],然後搜尋 Figlet。 選取 Figlet 函式,然後按兩下 [ 部署]。

此螢幕快照顯示 OpenFAAS 中的 [部署新函式] 對話方塊,並在搜尋行中輸入 「figlet」。

使用 curl 來叫用函式。 以 OpenFaaS 閘道的位址取代下列範例中的IP位址。

curl -X POST http://192.168.0.152:8080/function/figlet -d "Hello Azure"

輸出:

 _   _      _ _            _
| | | | ___| | | ___      / \    _____   _ _ __ ___
| |_| |/ _ \ | |/ _ \    / _ \  |_  / | | | '__/ _ \
|  _  |  __/ | | (_) |  / ___ \  / /| |_| | | |  __/
|_| |_|\___|_|_|\___/  /_/   \_\/___|\__,_|_|  \___|

清除資源

部署 Helm 圖表時會建立許多 Kubernetes 資源。 這些資源包含 Pod、部署和服務。 若要清除這些資源,請使用 helm uninstall 命令,並指定您的發行名稱,如上一個 helm list 命令所示:

helm uninstall openfaas

下列範例顯示已卸載名為 openfaas 的版本:

release "openfaas" uninstalled

下一步

您可以透過一系列實作課程繼續學習 OpenFaaS 的內容,這些課程涵蓋如何建立自己的 GitHub 機器人、存取機密資訊、查看指標和自動調整等主題。