Azure Kubernetes Service(AKS) üzerinde OpenFaaS kullanma
OpenFaaS , sunucusuz işlevler oluşturmak için kapsayıcıları kullanan bir çerçevedir. açık kaynak bir proje olarak, topluluk içinde büyük ölçekli bir benimseme kazanmıştır. Bu belgede, Azure Kubernetes Service (AKS) kümesinde OpenFaas yükleme ve kullanma ayrıntıları yer alır.
Başlamadan önce
- Bu makalede Kubernetes kavramlarını temel olarak anlamayı varsayar. Daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) için Kubernetes temel kavramları.
- Etkin bir Azure aboneliğine ihtiyacınız vardır. Hesabınız yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- AKS kümesine ihtiyacınız var. Mevcut bir kümeniz yoksa Azure CLI, Azure PowerShell veya Azure portal kullanarak bir küme oluşturabilirsiniz.
- OpenFaaS CLI'yi yüklemeniz gerekir. Yükleme seçenekleri için OpenFaaS CLI belgelerine bakın.
OpenFaaS helm grafiği depoyu ekleme
Azure Cloud Shell'e gidin.
Aşağıdaki
helm
komutları kullanarak OpenFaaS helm grafiği depoyu ekleyin ve en son sürüme güncelleştirin.helm repo add openfaas https://openfaas.github.io/faas-netes/ helm repo update
OpenFaaS dağıtma
İyi bir uygulama olarak, OpenFaaS ve OpenFaaS işlevleri kendi Kubernetes ad alanında depolanmalıdır.
komutunu kullanarak OpenFaaS sistemi ve işlevleri için bir ad alanı
kubectl apply
oluşturun.kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
Aşağıdaki komutları kullanarak OpenFaaS KULLANıCı Arabirimi Portalı ve REST API için bir parola oluşturun. Helm grafiği, bulut LoadBalancer aracılığıyla İnternet'te kullanıma sunulan OpenFaaS Ağ Geçidinde temel kimlik doğrulamasını etkinleştirmek için bu parolayı kullanır.
# 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"
Aşağıdaki
echo
komutu kullanarak parolanızın değerini alın.echo $PASSWORD
komutunu kullanarak AKS kümenize OpenFaaS dağıtın
helm upgrade
.helm upgrade openfaas --install openfaas/openfaas \ --namespace openfaas \ --set basic_auth=true \ --set functionNamespace=openfaas-fn \ --set serviceType=LoadBalancer
Çıkışınız aşağıdaki sıkıştırılmış örnek çıkışa benzer olmalıdır:
NAME: openfaas LAST DEPLOYED: Tue Aug 29 08:26:11 2023 NAMESPACE: openfaas STATUS: deployed ... NOTES: To verify that openfaas has started, run: kubectl --namespace=openfaas get deployments -l "release=openfaas, app=openfaas" ...
OpenFaaS ağ geçidine erişmek için bir genel IP adresi oluşturulur. komutunu kullanarak
kubectl get service
IP adresini alın.kubectl get service -l component=gateway --namespace openfaas
Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE gateway ClusterIP 10.0.156.194 <none> 8080/TCP 7m gateway-external LoadBalancer 10.0.28.18 52.186.64.52 8080:30800/TCP 7m
Bu örnekte oturum açmanız istendiği 8080
http://52.186.64.52:8080
numaralı bağlantı noktasındaki dış IP adresine göz atarak OpenFaaS sistemini test edin. Varsayılan kullanıcıdıradmin
ve parolanız kullanılarakecho $PASSWORD
alınabilir.Bağlantı noktası 8080'deki dış IP adresinin URL'sine ayarlayın
$OPENFAAS_URL
ve aşağıdaki komutları kullanarak Azure CLI ile oturum açın.export OPENFAAS_URL=http://52.186.64.52:8080 echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin
İlk işlevi oluşturma
OpenFaaS URL'nizi kullanarak OpenFaaS sistemine gidin.
OpenFaas portalını kullanarak Yeni İşlev Dağıt'ı seçerek bir işlev oluşturun ve Figlet'i arayın.
Figlet işlevini ve ardından Dağıt'ı seçin.
Aşağıdaki
curl
komutu kullanarak işlevini çağırın. Aşağıdaki örnekteki IP adresini OpenFaaS ağ geçidi adresinizle değiştirdiğinizden emin olun.curl -X POST http://52.186.64.52:8080/function/figlet -d "Hello Azure"
Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
_ _ _ _ _ | | | | ___| | | ___ / \ _____ _ _ __ ___ | |_| |/ _ \ | |/ _ \ / _ \ |_ / | | | '__/ _ \ | _ | __/ | | (_) | / ___ \ / /| |_| | | | __/ |_| |_|\___|_|_|\___/ /_/ \_\/___|\__,_|_| \___|
İkinci işlev oluşturma
Azure Cosmos DB örneğinizi yapılandırma
Azure Cloud Shell'e gidin.
komutunu kullanarak
az group create
Azure Cosmos DB örneği için yeni bir kaynak grubu oluşturun.az group create --name serverless-backing --location eastus
komutunu kullanarak türünde
MongoDB
bir Azure Cosmos DB örneği dağıtınaz cosmosdb create
. değerini kendi benzersiz örnek adınızla değiştirinopenfaas-cosmos
.az cosmosdb create --resource-group serverless-backing --name openfaas-cosmos --kind MongoDB
Azure Cosmos DB veritabanı bağlantı dizesini alın ve komutunu kullanarak bir değişkende depolayın
az cosmosdb list
. bağımsız değişkeninin değerini--resource-group
kaynak grubunuzun adıyla, bağımsız değişkeni ise--name
Azure Cosmos DB örneğinizin adıyla değiştirdiğinizden emin olun.COSMOS=$(az cosmosdb list-connection-strings \ --resource-group serverless-backing \ --name openfaas-cosmos \ --query connectionStrings[0].connectionString \ --output tsv)
Adlı bir dosya
plans.json
oluşturup aşağıdaki json dosyasında kopyalayarak Azure Cosmos DB'yi test verileriyle doldurun.{ "name" : "two_person", "friendlyName" : "Two Person Plan", "portionSize" : "1-2 Person", "mealsPerWeek" : "3 Unique meals per week", "price" : 72, "description" : "Our basic plan, delivering 3 meals per week, which will feed 1-2 people.", "__v" : 0 }
İşlevi oluşturma
MongoDB araçlarını yükleyin. Aşağıdaki örnek komut brew kullanarak bu araçları yükler. Daha fazla yükleme seçeneği için MongoDB belgelerine bakın.
brew install mongodb
Mongoimport aracını kullanarak Azure Cosmos DB örneğini verilerle yükleyin.
mongoimport --uri=$COSMOS -c plans < plans.json
Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
2018-02-19T14:42:14.313+0000 connected to: localhost 2018-02-19T14:42:14.918+0000 imported 1 document
komutunu kullanarak
faas-cli deploy
işlevi oluşturun. Bağımsız değişkenin değerini-g
OpenFaaS ağ geçidi adresinizle güncelleştirdiğinizden emin olun.faas-cli deploy -g http://52.186.64.52:8080 --image=shanepeckham/openfaascosmos --name=cosmos-query --env=NODE_ENV=$COSMOS
Dağıtıldıktan sonra çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
Deployed. 202 Accepted. URL: http://52.186.64.52:8080/function/cosmos-query
Aşağıdaki
curl
komutu kullanarak işlevi test edin. IP adresini OpenFaaS ağ geçidi adresiyle güncelleştirdiğinizden emin olun.curl -s http://52.186.64.52:8080/function/cosmos-query
Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
[{"ID":"","Name":"two_person","FriendlyName":"","PortionSize":"","MealsPerWeek":"","Price":72,"Description":"Our basic plan, delivering 3 meals per week, which will feed 1-2 people."}]
Not
İşlevi OpenFaaS kullanıcı arabiriminde de test edebilirsiniz:
Sonraki adımlar
Kendi GitHub botunuzu oluşturma, gizli dizileri kullanma, ölçümleri görüntüleme ve otomatik ölçeklendirme gibi konuları kapsayan bir dizi uygulamalı laboratuvar içeren OpenFaaS atölyesi ile öğrenmeye devam edin.