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.
Bereitstellen der Azure-Funktion im Kubernetes-Cluster.
Syntax
# Azure Function on Kubernetes v1
# Deploy Azure function to Kubernetes cluster.
- task: AzureFunctionOnKubernetes@1
inputs:
# Service Connections
connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection'. Required. Service connection type. Default: Kubernetes Service Connection.
dockerRegistryServiceConnection: # string. Required. Docker registry service connection.
#kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection. Kubernetes service connection.
#azureSubscriptionConnection: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager. Azure subscription.
#azureResourceGroup: # string. Required when connectionType = Azure Resource Manager. Resource group.
#kubernetesCluster: # string. Required when connectionType = Azure Resource Manager. Kubernetes cluster.
# Commands
#namespace: # string. Kubernetes namespace.
#secretName: # string. Secret Name.
#dockerHubNamespace: # string. Docker Hub namespace.
appName: # string. Required. Application Name.
#functionRootDirectory: # string. Function root directory.
#waitForStability: true # boolean. Wait for stability. Default: true.
#arguments: # string. Arguments.
Eingänge
connectionType
-
Dienstverbindungstyp
string. Erforderlich. Zulässige Werte: Azure Resource Manager, Kubernetes Service Connection. Standardwert: Kubernetes Service Connection.
Wählen Sie einen Verbindungstyp für den Kubernetes-Dienst aus.
-
Kubernetes Service Connection– Ermöglicht Es Ihnen, eine KubeConfig-Datei bereitzustellen, ein Dienstkonto anzugeben oder eine AKS-Instanz mit der Option Azure-Abonnement zu importieren. Für das Importieren einer AKS-Instanz mit der Option Azure-Abonnement ist der Kubernetes-Clusterzugriff zur Dienstverbindungskonfiguration erforderlich. -
Azure Resource Manager– Hiermit können Sie eine AKS-Instanz auswählen. Greift nicht auf Kubernetes-Cluster zur Dienstverbindungskonfiguration zu.
Weitere Informationen finden Sie unter Anmerkungen.
dockerRegistryServiceConnection
-
Docker-Registrierungsdienstverbindung
string. Erforderlich.
Wählen Sie eine Docker-Registrierungsdienstverbindung aus.
kubernetesServiceConnection
-
Kubernetes-Dienstverbindung
Eingabealias: kubernetesServiceEndpoint.
string. Erforderlich, wenn connectionType = Kubernetes Service Connection.
Wählen Sie eine Kubernetes-Dienstverbindung aus.
azureSubscriptionConnection
-
Azure-Abonnement
Eingabealias: azureSubscriptionEndpoint.
string. Erforderlich, wenn connectionType = Azure Resource Manager.
Wählen Sie das Azure Resource Manager-Abonnement aus, das Azure Container Registry enthält.Hinweis: Um eine neue Dienstverbindung zu konfigurieren, wählen Sie das Azure-Abonnement aus der Liste aus, und klicken Sie auf "Autorisieren". Wenn Ihr Abonnement nicht aufgeführt ist oder Sie einen vorhandenen Dienstprinzipal verwenden möchten, können Sie über die Schaltfläche "Hinzufügen" oder "Verwalten" eine Azure-Dienstverbindung einrichten.
azureResourceGroup
-
Ressourcengruppe
string. Erforderlich, wenn connectionType = Azure Resource Manager.
Wählen Sie eine Azure-Ressourcengruppe aus.
kubernetesCluster
-
Kubernetes-Cluster
string. Erforderlich, wenn connectionType = Azure Resource Manager.
Wählen Sie einen von Azure verwalteten Cluster aus.
namespace
-
Kubernetes-Namespace
string.
Kubernetes-Namespace.
secretName
-
Geheimer Name
string.
Kubernetes-Geheimnis, das Funktionskonfigurationsdaten enthält (z. B. AzureWebJobsStorage: Azure storage connection string).
dockerHubNamespace
-
Docker Hub-Namespace
string.
Docker Hub-Namespace. Erforderlich für das private Docker Hub-Repository.
appName
-
Anwendungsname
string. Erforderlich.
Anwendungsname. Die erstellten Kubernetes-Objekte verwenden diesen Namen. Dies sollte den Kubernetes-Benennungskonventionen für Ressourcennamen entsprechen.
functionRootDirectory
-
Funktionsstammverzeichnis
string.
Funktionsstammverzeichnis. Sollte host.jsonenthalten. Docker-Build und Push werden aus diesem Verzeichnis ausgeführt.
waitForStability
-
Auf Stabilität warten
boolean. Standardwert: true.
Warten Sie, bis die Kubernetes-Objekte den gewünschten Zustand erreichen.
arguments
-
Argumente
string.
Übergeben Sie Argumente an Befehl. Beispiel:
--no-docker --service-type NodePort.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Keiner.
Bemerkungen
Überlegungen zur Kubernetes-Dienstverbindung beim Zugriff auf AKS
Sie können eine Kubernetes-Dienstverbindung mit einer der folgenden Optionen erstellen.
- KubeConfig
- Dienstkonto
- Azure-Abonnement
Wenn Sie die Option Azure-Abonnement auswählen, muss Kubernetes zur Dienstverbindungskonfiguration auf Azure DevOps zugreifen können. Es kann verschiedene Gründe geben, warum eine Dienstverbindung nicht erstellt werden kann, z. B. sie einen privaten Cluster erstellt haben oder der Cluster lokalen Kontendeaktiviert hat. In diesen Fällen kann Azure DevOps zur Dienstverbindungskonfiguration keine Verbindung mit Ihrem Cluster herstellen, und Es wird ein hängen gebliebener Laden von Namespaces Bildschirm angezeigt.
Ab Kubernetes 1.24 werden langlebige Token standardmäßig nicht mehrerstellt. Kubernetes empfiehlt, keine langlebigen Token zu verwenden. Daher haben Aufgaben, die eine Kubernetes-Dienstverbindung verwenden, die mit der Option Azure-Abonnement erstellt wurde, keinen Zugriff auf das permanente Token, das für die Authentifizierung erforderlich ist und nicht auf Ihren Kubernetes-Cluster zugreifen kann. Dies führt auch zum fixierten Laden von Namespaces Dialogfeld.
Verwenden der Azure Resource Manager-Dienstverbindung für den Zugriff auf AKS
Für AKS-Kunden bietet der Azure Resource Manager-Dienstverbindungstyp die beste Methode zum Herstellen einer Verbindung mit einem privaten Cluster oder einem Cluster mit deaktivierten lokalen Konten. Diese Methode hängt nicht von der Clusterkonnektivität zum Zeitpunkt der Erstellung einer Dienstverbindung ab. Der Zugriff auf AKS wird an die Pipelinelaufzeit verzögert, was die folgenden Vorteile bietet:
- Der Zugriff auf einen (privaten) AKS-Cluster kann von einem selbst gehosteten oder Skalensatz-Agent mit Blick auf den Cluster ausgeführt werden.
- Für jede Aufgabe, die eine Azure Resource Manager-Dienstverbindung verwendet, wird ein Token erstellt. Dadurch wird sichergestellt, dass Sie eine Verbindung mit Kubernetes mit einem kurzlebigen Token herstellen, bei dem es sich um die Kubernetes-Empfehlunghandelt.
- Auf AKS kann auch zugegriffen werden, wenn lokale Konten deaktiviert sind.
Häufig gestellte Fragen zur Dienstverbindung
Ich erhalte die folgende Fehlermeldung: Es wurde kein geheimer Schlüssel gefunden, der dem Dienstkonto zugeordnet ist. Was passiert?
Sie verwenden die Kubernetes-Dienstverbindung mit der Azure-Abonnementoption. Wir aktualisieren diese Methode, um langlebige Token zu erstellen. Dies wird voraussichtlich Mitte Mai verfügbar sein. Es wird jedoch empfohlen, mit der Verwendung des Azure-Dienstverbindungstyps zu beginnen und keine langlebigen Token gemäß Kubernetes-Leitfadenzu verwenden.
Ich verwende AKS und möchte nichts ändern, kann ich weiterhin Aufgaben mit der Kubernetes-Dienstverbindung verwenden?
Wir aktualisieren diese Methode, um langlebige Token zu erstellen. Dies wird voraussichtlich Mitte Mai verfügbar sein. Bitte beachten Sie jedoch, dass dieser Ansatz gegen Kubernetes-Anleitung.
Ich verwende die Kubernetes-Aufgaben und kubernetes-Dienstverbindung, aber keine AKS. Sollte ich besorgt sein?
Aufgaben funktionieren weiterhin wie zuvor.
Wird der Dienstverbindungstyp Kubernetes entfernt?
Unsere Kubernetes-Aufgaben arbeiten mit jedem Kubernetes-Cluster, unabhängig davon, wo sie ausgeführt werden. Die Kubernetes-Dienstverbindung ist weiterhin vorhanden.
Ich bin ein AKS-Kunde und alles läuft gut, sollte ich handeln?
Es ist nicht erforderlich, etwas zu ändern. Wenn Sie die Kubernetes-Dienstverbindung verwenden und während der Erstellung das Azure-Abonnement ausgewählt haben, sollten Sie sich den Kubernetes-Anleitungen zur Verwendung von langlebigen Tokenbewusst sein.
Ich erschaffe eine Kubernetes-Umgebung und habe keine Möglichkeit, Dienstverbindungen zu verwenden.
Falls Sie während der Erstellungszeit der Umgebung nicht auf Ihre AKS zugreifen können, können Sie eine leere Umgebung verwenden und die connectionType Eingabe auf eine Azure Resource Manager-Dienstverbindung festlegen.
Ich habe AKS mit Azure Active Directory RBAC konfiguriert, und meine Pipeline funktioniert nicht. Werden diese Updates dies beheben?
Der Zugriff auf Kubernetes, wenn AAD RBAC aktiviert ist, ist nicht mit der Tokenerstellung verknüpft. Um eine interaktive Eingabeaufforderung zu verhindern, werden wir kubelogin in einem zukünftigen Update unterstützen.
Anforderungen
| Anforderung | BESCHREIBUNG |
|---|---|
| Pipelinetypen | YAML, Classic Build, Classic Release |
| Läuft auf | Agent, DeploymentGroup |
| Anforderungen | Nichts |
| Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
| Befehlseinschränkungen | Beliebig |
| Settable-Variablen | Beliebig |
| Agentversion | Alle unterstützten Agentversionen. |
| Vorgangskategorie | Einsetzen |