Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
AWS iş yükü örneği Bash, CloudFormation ve AWS CLI kullanılarak dağıtılır. Tüketici Python uygulaması kapsayıcı olarak dağıtılır. Aşağıdaki bölümlerde Azure iş akışının nasıl farklı olduğu açıklanmaktadır. Azure Kubernetes Service (AKS) kümesini ve destekleyici altyapıyı dağıtmak için kullanılan Bash betiklerinde değişiklikler vardır. Ayrıca Kubernetes dağıtım bildirimleri, KEDA'yı Amazon Simple Queue Service (SQS) ölçeklendiricisi yerine Azure Depolama Kuyruğu ölçeklendiricisi kullanacak şekilde yapılandıracak şekilde değiştirilir.
Azure iş akışı, Karpenter'ı temel alan AKS Düğümü Otomatik Sağlama (NAP) özelliğini kullanır. Bu özellik, Karpenter'ı açıkça dağıtmak için Helm kullanma gereksinimini ortadan kaldırarak AKS üzerinde Karpenter dağıtımını ve kullanımını büyük ölçüde basitleştirir. Ancak Karpenter'ı doğrudan dağıtmanız gerekiyorsa bunu GitHub'da AKS Karpenter sağlayıcısını kullanarak yapabilirsiniz.
Kubernetes dağıtım bildirimini yapılandırma
AWS, iş yükünü EKS'ye dağıtmak için bir Kubernetes dağıtım YAML bildirimi kullanır. AWS dağıtımı YAML,KEDA ölçeklendiricileri için SQS ve DynamoDB'ye başvurular içerir, bu nedenle bunları Azure altyapısına bağlanmak için kullanılacak Azure ölçekleyicileri için KEDA eşdeğeri değerleri belirtecek şekilde değiştirmemiz gerekir. Bunu yapmak için Azure Depolama Kuyruğu KEDA ölçeklendiricisini yapılandırın.
Aşağıdaki kod parçacıkları, AWS ve Azure uygulamaları için örnek YAML bildirimlerini gösterir.
AWS uygulaması
spec:
serviceAccountName: $SERVICE_ACCOUNT
containers:
- name: <sqs app name>
image: <name of Python app container>
imagePullPolicy: Always
env:
- name: SQS_QUEUE_URL
value: https://<Url To SQS>/<region>/<QueueName>.fifo
- name: DYNAMODB_TABLE
value: <table name>
- name: AWS_REGION
value: <region>
Azure uygulaması
spec:
serviceAccountName: $SERVICE_ACCOUNT
containers:
- name: keda-queue-reader
image: ${AZURE_CONTAINER_REGISTRY_NAME}.azurecr.io/aws2azure/aqs-consumer
imagePullPolicy: Always
env:
- name: AZURE_QUEUE_NAME
value: $AZURE_QUEUE_NAME
- name: AZURE_STORAGE_ACCOUNT_NAME
value: $AZURE_STORAGE_ACCOUNT_NAME
- name: AZURE_TABLE_NAME
value: $AZURE_TABLE_NAME
Ortam değişkenlerini belirleme
Dağıtım adımlarından herhangi birini yürütmeden önce, aşağıdaki ortam değişkenlerini kullanarak bazı yapılandırma bilgilerini ayarlamanız gerekir:
-
K8sversion: AKS kümesinde dağıtılan Kubernetes sürümü. -
KARPENTER_VERSION: AKS kümesinde dağıtılan Karpenter sürümü. -
SERVICE_ACCOUNT: Yönetilen kimlikle ilişkili hizmet hesabının adı. -
AQS_TARGET_DEPLOYMENT: Tüketici uygulaması kapsayıcı dağıtımının adı. -
AQS_TARGET_NAMESPACE: Tüketici uygulamasının dağıtıldığı ad alanı. -
AZURE_QUEUE_NAME: Azure Depolama Kuyruğunun adı. -
AZURE_TABLE_NAME: İşlenen iletileri depolayan Azure Depolama Tablosunun adı. -
LOCAL_NAME: Dağıtım betiklerinde oluşturulan kaynak adları için basit bir kök. -
LOCATION: Dağıtımın bulunduğu Azure bölgesi. -
TAGS: İlişkili değerleriyle birlikte kullanıcı tanımlı etiketler. -
STORAGE_ACCOUNT_SKU: Azure Depolama Hesabı SKU'su. -
ACR_SKU: Azure Container Registry SKU'su. -
AKS_NODE_COUNT: Düğüm sayısı.
Bash betiğini GitHub depomuzun environmentVariables.shdeploymentdizininde gözden geçirebilirsiniz. Bu ortam değişkenlerinin varsayılanları ayarlanmıştır, bu nedenle varsayılanları değiştirmek istemediğiniz sürece dosyayı güncelleştirmeniz gerekmez. Azure kaynaklarının adları, deploy.sh betiğinde dinamik olarak oluşturulur ve deploy.state dosyasına kaydedilir. Azure kaynak adları için ortam değişkenleri oluşturmak için dosyasını kullanabilirsiniz deploy.state .
Sonraki adımlar
Katkıda Bulunanlar
Microsoft bu makaleyi korur. Başlangıçta aşağıdaki katkıda bulunanlar yazdı:
- Ken Kilty | Baş TPM
- Russell de Pina | Asıl TPM
- Jenny Hayes | Kıdemli İçerik Geliştirici
- Carol Smith | Kıdemli İçerik Geliştirici
- Erin Schaffer | İçerik Geliştirici 2