Verwendung von Lambda mit Kubernetes - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von Lambda mit Kubernetes

Sie können Lambda-Funktionen mit der Kubernetes-API mithilfe von AWS-Controllern für Kubernetes (ACK) oder Crossplane bereitstellen und verwalten.

AWS-Controller für Kubernetes (ACK)

Sie können ACK zum Bereitstellen und Verwalten von AWS-Ressourcen über die Kubernetes-API verwenden. Über ACK AWS bietet benutzerdefinierte Open-Source-Controller für AWS Services wie Lambda, Amazon Elastic Container Registry (Amazon ECR), Amazon Simple Storage Service (Amazon S3) und Amazon SageMaker. Jeder unterstützte AWS-Service verfügt über einen eigenen benutzerdefinierten Controller. Installieren Sie in Ihrem Kubernetes-Cluster einen Controller für jeden AWS-Service, den Sie verwenden möchten. Erstellen Sie anschließend eine benutzerdefinierte Ressourcendefinition (Custom Resource Definition, CRD), um die AWS-Ressourcen zu definieren.

Wir empfehlen die Verwendung von Helm 3.8 oder höher, um ACK-Controller zu installieren. Jeder ACK-Controller verfügt über ein eigenes Helm-Chart, das den Controller, CRDs und Kubernetes RBAC-Regeln installiert. Weitere Informationen finden Sie unter Installieren eines ACK-Controllers in der ACK-Dokumentation.

Nachdem Sie die benutzerdefinierte ACK-Ressource erstellt haben, können Sie sie wie jedes andere integrierte Kubernetes-Objekt verwenden. Beispielsweise können Sie Lambda-Funktionen mit Ihren bevorzugten Kubernetes-Toolchains, einschließlich kubectl, bereitstellen und verwalten.

Hier sind einige Beispielanwendungsfälle für die Bereitstellung von Lambda-Funktionen über ACK:

  • Ihr Unternehmen verwendet rollenbasierte Zugriffssteuerung (RBAC) und IAM-Rollen für Service-Konten, um Berechtigungsgrenzen zu erstellen. Mit ACK können Sie dieses Sicherheitsmodell für Lambda wiederverwenden, ohne neue Benutzer und Richtlinien erstellen zu müssen.

  • Ihre Organisation verfügt über einen DevOps Prozess zur Bereitstellung von Ressourcen in einem Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster mithilfe von Kubernetes-Manifesten. Mit ACK können Sie ein Manifest verwenden, um Lambda-Funktionen bereitzustellen, ohne eine separate Infrastruktur in Form von Code-Vorlagen zu erstellen.

Weitere Informationen zur Verwendung von ACK finden Sie im Lambda-Tutorial in der ACK-Dokumentation.

Crossplane

Crossplane ist ein Open-Source-Projekt der Cloud Native Computing Foundation (CNCF), das Kubernetes zur Verwaltung von Cloud-Infrastrukturressourcen verwendet. Mit Crossplane können Entwickler Infrastruktur anfordern, ohne deren Komplexität verstehen zu müssen. Plattformteams behalten die Kontrolle über die Bereitstellung und Verwaltung der Infrastruktur.

Mit Crossplane können Sie Lambda-Funktionen mit Ihren bevorzugten Kubernetes-Toolchains wie kubectl und jeder CI/CD-Pipeline bereitstellen und verwalten, die Manifeste für Kubernetes bereitstellen kann. Hier sind einige Beispielanwendungsfälle für die Bereitstellung von Lambda-Funktionen über Crossplane:

  • Ihr Unternehmen möchte Compliance durchsetzen, indem es sicherstellt, dass Lambda-Funktionen über die richtigen Tags verfügen. Plattformteams können Crossplane Compositions verwenden, um diese Richtlinie durch API-Abstraktionen zu definieren. Entwickler können diese Abstraktionen dann verwenden, um Lambda-Funktionen mit Tags bereitzustellen.

  • Ihr Projekt verwendet GitOps mit Kubernetes. In diesem Modell gleicht Kubernetes kontinuierlich das Git-Repository (gewünschter Status) mit den im Cluster ausgeführten Ressourcen (aktueller Status) ab. Wenn es Unterschiede gibt, nimmt der GitOps Prozess automatisch Änderungen am Cluster vor. Sie können GitOps mit Kubernetes verwenden, um Lambda-Funktionen über Crossplane bereitzustellen und zu verwalten, indem Sie vertraute Kubernetes-Tools und -Konzepte wie CRDs und Controller verwenden. https://kubernetes.io/docs/concepts/architecture/controller/

Weitere Informationen zur Verwendung von Crossplane mit Lambda finden Sie hier:

  • AWS-Blueprints für Crossplane: Dieses Repository enthält Beispiele für die Verwendung von Crossplane zum Bereitstellen von AWS-Ressourcen, einschließlich Lambda-Funktionen.

    Anmerkung

    AWS-Blueprints für Crossplane befinden sich in der aktiven Entwicklung und sollten nicht in der Produktion verwendet werden.

  • Bereitstellung von Lambda mit Amazon EKS und Crossplane: Dieses Video demonstriert ein fortgeschrittenes Beispiel für das Bereitstellen einer Serverless AWS-Architektur mit Crossplane, wobei das Design sowohl aus der Entwickler- als auch aus der Plattformperspektive untersucht wird.