KEDA ile Kubernetes'te Azure İşlevleri
Azure İşlevleri çalışma zamanı, istediğiniz yerde ve şekilde barındırma esnekliği sağlar. KEDA (Kubernetes tabanlı Event Driven Autoscaling), Kubernetes'te olay odaklı ölçek sağlamak için Azure İşlevleri çalışma zamanı ve araçlarıyla sorunsuz bir şekilde eşleştirir.
Önemli
Kapsayıcılı işlev uygulamalarınızı KEDA kullanarak veya doğrudan dağıtım yoluyla Kubernetes'te çalıştırmak, ücretsiz olarak kullanabileceğiniz açık kaynak bir çalışmadır. Katkıda bulunanlar ve topluluk tarafından Azure İşlevleri deposundaki GitHub sorunları kullanılarak en iyi çaba desteği sağlanır. Hataları bildirmek ve özellik isteklerini yükseltmek için lütfen bu sorunları kullanın.
Tam olarak desteklenen Kubernetes dağıtımları için bunun yerine Azure İşlevleri Azure Container Apps barındırmayı göz önünde bulundurun.
Kubernetes tabanlı işlevler nasıl çalışır?
Azure İşlevleri hizmeti iki önemli bileşenden oluşur: çalışma zamanı ve ölçek denetleyicisi. İşlevler çalışma zamanı kodunuzu çalıştırır ve yürütür. Çalışma zamanı, işlev yürütmelerini tetikleme, günlüğe kaydetme ve yönetme mantığı içerir. Azure İşlevleri çalışma zamanı her yerde çalışabilir. Diğer bileşen bir ölçek denetleyicisidir. Ölçek denetleyicisi işlevinizi hedefleyen olayların hızını izler ve uygulamanızı çalıştıran örnek sayısını proaktif olarak ölçeklendirir. Daha fazla bilgi edinmek için bkz. Azure İşlevleri ölçeklendirme ve barındırma.
Kubernetes tabanlı İşlevler, KEDA aracılığıyla olay temelli ölçeklendirme ile Docker kapsayıcısında İşlevler çalışma zamanı sağlar. KEDA ölçeği sıfır örneğe (hiçbir olay gerçekleşmediğinde) ve n örneğe genişletebilir. Bunu, Kubernetes otomatik ölçeklendiricisi (Yatay Pod Otomatik Ölçeklendiricisi) için özel ölçümleri kullanıma sunarak yapar. İşlev kapsayıcılarını KEDA ile kullanmak, herhangi bir Kubernetes kümesinde sunucusuz işlev özelliklerini çoğaltmayı mümkün kılar. Bu işlevler sunucusuz altyapı için Azure Kubernetes Services (AKS) sanal düğümleri özelliği kullanılarak da dağıtılabilir.
Kubernetes'te KEDA ve işlevleri yönetme
Kubernetes kümenizde İşlevler'i çalıştırmak için KEDA bileşenini yüklemeniz gerekir. Bu bileşeni aşağıdaki yollardan biriyle yükleyebilirsiniz:
Azure İşlevleri Temel Araçları:
func kubernetes install
komutunu seçin.Helm: Helm dahil olmak üzere herhangi bir Kubernetes kümesine KEDA yüklemenin çeşitli yolları vardır. Dağıtım seçenekleri KEDA sitesinde belgelenmiştir.
Kubernetes'e işlev uygulaması dağıtma
Herhangi bir işlev uygulamasını KEDA çalıştıran bir Kubernetes kümesine dağıtabilirsiniz. İşlevleriniz bir Docker kapsayıcısında çalıştırıldığından, projenizin bir Dockerfile'a ihtiyacı vardır. Projeyi oluşturmak için çağırırken func init
seçeneğini kullanarak --docker
bir Dockerfile oluşturabilirsiniz. Dockerfile'ınızı oluşturmayı unuttuysanız, kod projenizin kökünden istediğiniz zaman yeniden çağırabilirsiniz func init
.
(İsteğe bağlı) Dockerfile'ınızı oluşturmanız gerekiyorsa şu seçenekle
--docker-only
komutunu kullanınfunc init
:func init --docker-only
Dockerfile oluşturma hakkında daha fazla bilgi edinmek için başvuruya
func init
bakın.func kubernetes deploy
Görüntünüzü oluşturmak ve kapsayıcılı işlev uygulamanızı Kubernetes'e dağıtmak için komutunu kullanın:func kubernetes deploy --name <name-of-function-deployment> --registry <container-registry-username>
Bu örnekte değerini işlev uygulamanızın adıyla değiştirin
<name-of-function-deployment>
. Dağıt komutu şu görevleri gerçekleştirir:- Daha önce oluşturulan Dockerfile, kapsayıcılı işlev uygulamanız için yerel görüntü oluşturmak için kullanılır.
- Yerel görüntü etiketlenmiş ve kullanıcının oturum açtığı kapsayıcı kayıt defterine gönderiliyor.
- Dosyanızdan
local.settings.json
içeri aktarılan ortam değişkenlerini içeren bir KubernetesDeployment
kaynağı, kaynak ve tanımlayan kümeye birScaledObject
bildirim oluşturulur veSecrets
uygulanır.
Özel kayıt defterinden işlev uygulaması dağıtma
Önceki dağıtım adımları özel kayıt defterleri için de çalışır. Kapsayıcı görüntünüzü özel bir kayıt defterinden çekiyorsanız, komutunu çalıştırırken func kubernetes deploy
özel kayıt defteri kimlik bilgilerini tutan Kubernetes gizli dizisine başvuran bayrağını ekleyin--pull-secret
.
Kubernetes'ten bir işlev uygulamasını kaldırma
Dağıtıldıktan sonra, oluşturulan ilişkili Deployment
, öğesini ScaledObject
kaldırarak bir Secrets
işlevi kaldırabilirsiniz.
kubectl delete deploy <name-of-function-deployment>
kubectl delete ScaledObject <name-of-function-deployment>
kubectl delete secret <name-of-function-deployment>
Kubernetes'ten KEDA'yi kaldırma
KEDA'yi kümenizden aşağıdaki yollardan biriyle kaldırabilirsiniz:
Azure İşlevleri Temel Araçları:
func kubernetes remove
komutunu seçin.Helm: KEDA sitesindeki kaldırma adımlarına bakın.
KEDA'da desteklenen tetikleyiciler
KEDA aşağıdaki Azure İşlevi tetikleyicileri için destek içerir:
HTTP Tetikleyicisi desteği
HTTP tetikleyicilerini kullanıma sunan Azure İşlevleri kullanabilirsiniz, ancak KEDA bunları doğrudan yönetmez. HTTP Azure İşlevleri bir örnekten örneklere ölçeklendirmek için KEDA prometheus tetikleyicisini n
kullanabilirsiniz.
Sonraki Adımlar
Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın: