Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Implementeer de Azure-functie in een Kubernetes-cluster.
Syntaxis
# 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.
Invoer
connectionType
-
Type serviceverbinding
string. Verplicht. Toegestane waarden: Azure Resource Manager, Kubernetes Service Connection. Standaardwaarde: Kubernetes Service Connection.
Selecteer een verbindingstype voor de Kubernetes-service.
-
Kubernetes Service Connection- Hiermee kunt u een KubeConfig-bestand opgeven, een serviceaccount opgeven of een AKS-exemplaar importeren met de Azure-abonnementsoptie . Voor het importeren van een AKS-exemplaar met de optie Azure-abonnement is kubernetes-clustertoegang vereist tijdens de configuratietijd van de serviceverbinding. -
Azure Resource Manager- Hiermee kunt u een AKS-instantie selecteren. Heeft geen toegang tot het Kubernetes-cluster tijdens de configuratietijd van de serviceverbinding.
Zie Opmerkingenvoor meer informatie.
dockerRegistryServiceConnection
-
docker-registerserviceverbinding
string. Verplicht.
Selecteer een Docker-registerserviceverbinding.
kubernetesServiceConnection
-
Kubernetes-serviceverbinding
Invoeralias: kubernetesServiceEndpoint.
string. Vereist wanneer connectionType = Kubernetes Service Connection.
Selecteer een Kubernetes-serviceverbinding.
azureSubscriptionConnection
-
Azure-abonnement
Invoeralias: azureSubscriptionEndpoint.
string. Vereist wanneer connectionType = Azure Resource Manager.
Selecteer het Azure Resource Manager-abonnement, dat Azure Container Registry bevat.Opmerking: Als u een nieuwe serviceverbinding wilt configureren, selecteert u het Azure-abonnement in de lijst en klikt u op 'Autoriseren'. Als uw abonnement niet wordt vermeld of als u een bestaande service-principal wilt gebruiken, kunt u een Azure-serviceverbinding instellen met de knop 'Toevoegen' of 'Beheren'.
azureResourceGroup
-
Resourcegroep
string. Vereist wanneer connectionType = Azure Resource Manager.
Selecteer een Azure-resourcegroep.
kubernetesCluster
-
Kubernetes-cluster
string. Vereist wanneer connectionType = Azure Resource Manager.
Selecteer een door Azure beheerd cluster.
namespace
-
Kubernetes-naamruimte
string.
Kubernetes-naamruimte.
secretName
-
geheime naam
string.
Kubernetes-geheim met functieconfiguratiegegevens (bijvoorbeeld AzureWebJobsStorage: Azure storage connection string).
dockerHubNamespace
-
Docker Hub-naamruimte
string.
Docker Hub-naamruimte. Vereist voor persoonlijke Docker Hub-opslagplaats.
appName
-
toepassingsnaam
string. Verplicht.
Toepassingsnaam. De Kubernetes-objecten die zijn gemaakt, gebruiken deze naam. Dit moet de Kubernetes-naamconventies voor resourcenamen volgen.
functionRootDirectory
-
hoofdmap van de functie
string.
Hoofdmap van de functie. Moet host.jsonbevatten. Docker build en push wordt uitgevoerd vanuit deze map.
waitForStability
-
wachten op stabiliteit
boolean. Standaardwaarde: true.
Wacht totdat de Kubernetes-objecten de gewenste status hebben bereikt.
arguments
-
argumenten
string.
Geef argumenten door aan opdracht. Bijvoorbeeld:
--no-docker --service-type NodePort.
Opties voor taakbeheer
Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties voor besturingselementen en algemene taakeigenschappen voor meer informatie.
Uitvoervariabelen
Geen.
Opmerkingen
Overwegingen voor Kubernetes Service Connection bij het openen van AKS
U kunt een Kubernetes-serviceverbinding maken met een van de volgende opties.
- KubeConfig
- Service-Account
- Azure-abonnement
Wanneer u de optie Azure-abonnement selecteert, moet Kubernetes tijdens de configuratietijd van de serviceverbinding toegankelijk zijn voor Azure DevOps. Er kunnen verschillende redenen zijn waarom een serviceverbinding niet kan worden gemaakt, bijvoorbeeld dat u een privécluster hebt gemaakt of dat het cluster lokale accounts heeft uitgeschakeld. In dergelijke gevallen kan Azure DevOps geen verbinding maken met uw cluster tijdens de configuratie van de serviceverbinding en ziet u een vastgelopen Naamruimten laden scherm.
Vanaf Kubernetes 1.24 worden tokens met een lange levensduur niet meer standaardworden gemaakt. Kubernetes raadt aan geen tokens met een lange levensduur te gebruiken. Als gevolg hiervan hebben taken die gebruikmaken van een Kubernetes-serviceverbinding die is gemaakt met de Azure-abonnement optie geen toegang tot het permanente token dat is vereist voor verificatie en geen toegang tot uw Kubernetes-cluster. Dit resulteert ook in het dialoogvenster geblokkeerde Naamruimten laden.
De Azure Resource Manager-serviceverbinding gebruiken om toegang te krijgen tot AKS
Voor AKS-klanten biedt het verbindingstype azure Resource Manager-service de beste methode om verbinding te maken met een privécluster of een cluster waarvoor lokale accounts zijn uitgeschakeld. Deze methode is niet afhankelijk van clusterconnectiviteit op het moment dat u een serviceverbinding maakt. Toegang tot AKS wordt uitgesteld tot pijplijnruntime, met de volgende voordelen:
- Toegang tot een (privé) AKS-cluster kan worden uitgevoerd vanuit een zelf-hostende of schaalsetagent met zicht op het cluster.
- Er wordt een token gemaakt voor elke taak die gebruikmaakt van een Azure Resource Manager-serviceverbinding. Dit zorgt ervoor dat u verbinding maakt met Kubernetes met een kortstondige token. Dit is de Kubernetes-aanbeveling.
- AKS kan worden geopend, zelfs wanneer lokale accounts zijn uitgeschakeld.
Veelgestelde vragen over serviceverbindingen
Ik krijg het volgende foutbericht: Kan geen geheim vinden dat is gekoppeld aan het serviceaccount. Wat gebeurt er?
U gebruikt de Kubernetes-serviceverbinding met de optie Azure-abonnement. We werken deze methode bij om langlevende tokens te maken. Dit is naar verwachting halverwege mei beschikbaar. Het is echter raadzaam om het verbindingstype van de Azure-service te gebruiken en niet om tokens met een lange levensduur te gebruiken volgens Kubernetes-richtlijnen.
Ik gebruik AKS en wil niets wijzigen, kan ik taken blijven gebruiken met de Kubernetes-serviceverbinding?
We werken deze methode bij om langlevende tokens te maken. Dit is naar verwachting halverwege mei beschikbaar. Houd er echter rekening mee dat deze aanpak zich tegen Kubernetes-richtlijnenbevindt.
Ik gebruik de Kubernetes-taken en kubernetes-serviceverbinding, maar niet AKS. Moet ik me zorgen maken?
Uw taken blijven werken zoals voorheen.
Wordt het verbindingstype van de Kubernetes-service verwijderd?
Onze Kubernetes-taken werken met elk Kubernetes-cluster, ongeacht waar ze worden uitgevoerd. De Kubernetes-serviceverbinding blijft bestaan.
Ik ben een AKS-klant en alles werkt prima, moet ik handelen?
U hoeft niets te wijzigen. Als u de Kubernetes-serviceverbinding en het geselecteerde Azure-abonnement gebruikt tijdens het maken, moet u rekening houden met de Kubernetes-richtlijnen voor het gebruik van langlopende tokens.
Ik maak een Kubernetes-omgeving en heb geen optie om serviceverbindingen te gebruiken
Als u geen toegang hebt tot uw AKS tijdens het maken van de omgeving, kunt u een lege omgeving gebruiken en de connectionType invoer instellen op een Azure Resource Manager-serviceverbinding.
Ik heb AKS geconfigureerd met Azure Active Directory RBAC en mijn pijplijn werkt niet. Zullen deze updates dat oplossen?
Toegang tot Kubernetes wanneer AAD RBAC is ingeschakeld, is niet gerelateerd aan het maken van tokens. Om een interactieve prompt te voorkomen, ondersteunen we kubelogin in een toekomstige update.
Behoeften
| Voorwaarde | Beschrijving |
|---|---|
| Pijplijntypen | YAML, klassieke build, klassieke release |
| Wordt uitgevoerd op | Agent, DeploymentGroup |
| Eisen | Geen |
| Mogelijkheden | Deze taak voldoet niet aan de vereisten voor volgende taken in de taak. |
| Opdrachtbeperkingen | Welke dan ook |
| Variabelen instellen | Welke dan ook |
| Agentversie | Alle ondersteunde agentversies. |
| Taakcategorie | Implementeren |