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.

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:

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 .

  1. (İ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.

  2. 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 Kubernetes Deployment kaynağı, kaynak ve tanımlayan kümeye bir ScaledObject bildirim oluşturulur ve Secretsuygulanı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 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 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: