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:
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. 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:
- Daha önce oluşturulan Dockerfile, işlev uygulaması için yerel bir 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.
Daha fazla bilgi edinmek için komutuna func kubernetes deploy
bakı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 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 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: