Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das AWS-Workloadbeispiel wird mithilfe von Bash, CloudFormation und AWS CLI bereitgestellt. Die Python-Consumer-App wird als Container bereitgestellt. In den folgenden Abschnitten wird beschrieben, wie sich der Azure-Workflow unterscheidet. Es gibt Änderungen an den Bash-Skripts, die zum Bereitstellen des AKS-Clusters (Azure Kubernetes Service) und der unterstützenden Infrastruktur verwendet werden. Darüber hinaus werden die Kubernetes-Bereitstellungsmanifeste geändert, um KEDA für die Verwendung einer Azure Storage-Warteschlangenskalierung anstelle der Amazon SQS-Skalierung (Simple Queue Service) zu konfigurieren.
Der Azure-Workflow verwendet das Feature AKS NAP (Node Autoprovisioning), das auf Karpenter basiert. Dieses Feature vereinfacht die Bereitstellung und Verwendung von Karpenter in AKS erheblich, da es nicht erforderlich ist, zum expliziten Bereitstellen von Karpenter Helm zu verwenden. Wenn Sie jedoch Karpenter direkt bereitstellen müssen, können Sie dies mit dem AKS-Karpenter-Anbieter auf GitHub tun.
Konfigurieren des Kubernetes-Bereitstellungsmanifests
AWS verwendet ein Kubernetes-YAML-Bereitstellungsmanifest, um die Workload in EKS bereitzustellen. Der YAML-Code für die AWS-Bereitstellung enthält Verweise auf SQS und DynamoDB für KEDA-Skalierungsanbieter. Daher müssen Sie ihn ändern, um KEDA-äquivalente Werte für die Azure-Skalierungsanbieter anzugeben, die für die Verbindung mit der Azure-Infrastruktur verwendet werden sollen. Konfigurieren Sie dazu den KEDA-Skalierungsanbieter der Azure Storage-Warteschlange.
Die folgenden Codeschnipsel zeigen YAML-Beispielmanifeste für AWS- und Azure-Implementierungen.
AWS-Implementierung
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-Implementierung
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
Festlegen von Umgebungsvariablen
Bevor Sie einen der Bereitstellungsschritte ausführen, müssen Sie einige Konfigurationsinformationen mithilfe der folgenden Umgebungsvariablen festlegen:
K8sversion: die im AKS-Cluster bereitgestellte Version von KubernetesKARPENTER_VERSION: die Im AKS-Cluster bereitgestellte Version von KarpenterSERVICE_ACCOUNT: der Name des Dienstkontos, das der verwalteten Identität zugeordnet istAQS_TARGET_DEPLOYMENT: der Name der Bereitstellung von Consumer-App-ContainernAQS_TARGET_NAMESPACE: der Namespace, in dem die Consumer-App bereitgestellt wirdAZURE_QUEUE_NAME: der Name der Azure Storage-WarteschlangeAZURE_TABLE_NAME: der Name der Azure Storage-Tabelle, in der die verarbeiteten Nachrichten gespeichert werdenLOCAL_NAME: ein einfacher Stamm für Ressourcennamen, die in den Bereitstellungsskripts erstellt werdenLOCATION: die Azure-Region für die BereitstellungTAGS: alle benutzerdefinierten Tags zusammen mit den zugehörigen WertenSTORAGE_ACCOUNT_SKU: die SKU des Azure Storage-KontosACR_SKU: die Azure Container Registry-SKUAKS_NODE_COUNT: die Anzahl der Knoten
Sie können das Bash-Skript environmentVariables.sh im Verzeichnis deployment unseres GitHub-Repositorys überprüfen. Für diese Umgebungsvariablen wurden Standardwerte festgelegt, sodass Sie die Datei nur aktualisieren müssen, wenn Sie die Standardwerte ändern möchten. Die Namen der Azure-Ressourcen werden dynamisch im Skript deploy.sh erstellt und in der Datei deploy.state gespeichert. Sie können die Datei deploy.state verwenden, um Umgebungsvariablen für Azure-Ressourcennamen zu erstellen.
Nächste Schritte
Beitragende
Microsoft pflegt diesen Artikel. Die folgenden Mitwirkenden haben es ursprünglich geschrieben:
- Ken Kilty | Principal TPM
- Russell de Pina | Principal TPM
- Jenny Hayes | Senior Content Developer
- Carol Smith | Senior Content Developer
- Erin Schaffer | Content Developer 2