Aracılığıyla paylaş


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. Yönetilen 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 0 ö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:

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. Bunu yapmayı unuttuysanız, aşağıdaki örnekte gösterildiği gibi bu kez seçeneğini kullanarak --docker-only İşlevler projenizin kökünden yeniden çağırabilirsinizfunc init.

func init --docker-only

Dockerfile oluşturma hakkında daha fazla bilgi edinmek için başvuruya func init bakın.

Görüntü oluşturmak ve işlevlerinizi Kubernetes'e dağıtmak için aşağıdaki komutu çalıştırı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> .

Deploy komutu aşağıdakileri yapar:

  1. Daha önce oluşturulan Dockerfile, işlev uygulaması için yerel bir görüntü oluşturmak için kullanılır.
  2. Yerel görüntü etiketlenmiş ve kullanıcının oturum açtığı kapsayıcı kayıt defterine gönderiliyor.
  3. Dosyanızdan local.settings.json içeri aktarılan ortam değişkenlerini içeren bir Kubernetes Deployment kaynağı, kaynak ve tanımlayan kümeye bir ScaledObject bildirim oluşturulur ve Secretsuygulanır.

Daha fazla bilgi edinmek için komutuna func kubernetes deploybakın.

Özel kayıt defterinden işlev uygulaması dağıtma

Yukarıdaki akış özel kayıt defterleri için de çalışır. Kapsayıcı görüntünüzü özel bir kayıt defterinden çekiyorsanız, ç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 ScaledObjectkaldı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:

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 1'den n örneğe ölçeklendirmek için KEDA prometheus tetikleyicisinden yararlanabilirsiniz.

Sonraki Adımlar

Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın: