Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wdrażanie funkcji platformy Azure w klastrze Kubernetes.
Składnia
# 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.
Dane wejściowe
typ połączenia usługi connectionType
-
string
. To jest wymagane. Dozwolone wartości: Azure Resource Manager
, Kubernetes Service Connection
. Wartość domyślna: Kubernetes Service Connection
.
Wybierz typ połączenia z usługą Kubernetes.
-
Kubernetes Service Connection
— umożliwia podanie pliku KubeConfig, określenie konta usługi lub zaimportowanie wystąpienia usługi AKS z opcją subskrypcji platformy Azure. Importowanie wystąpienia usługi AKS przy użyciu opcji subskrypcji platformy Azure wymaga dostępu do klastra Kubernetes w czasie konfiguracji połączenia z usługą. -
Azure Resource Manager
— umożliwia wybranie wystąpienia usługi AKS. Nie uzyskuje dostępu do klastra Kubernetes w czasie konfiguracji połączenia z usługą.
Aby uzyskać więcej informacji, zobacz Uwagi.
dockerRegistryServiceConnection
-
połączenia usługi rejestru platformy Docker
string
. To jest wymagane.
Wybierz połączenie usługi rejestru platformy Docker.
połączenia usługi kubernetesServiceConnection
- Kubernetes
Alias wejściowy: kubernetesServiceEndpoint
.
string
. Wymagane, gdy connectionType = Kubernetes Service Connection
.
Wybierz połączenie usługi Kubernetes.
subskrypcji platformy Azure
Alias wejściowy: azureSubscriptionEndpoint
.
string
. Wymagane, gdy connectionType = Azure Resource Manager
.
Wybierz subskrypcję usługi Azure Resource Manager, która zawiera usługę Azure Container Registry.Uwaga: Aby skonfigurować nowe połączenie z usługą, wybierz subskrypcję platformy Azure z listy i kliknij przycisk "Autoryzuj". Jeśli Twojej subskrypcji nie ma na liście lub chcesz użyć istniejącej jednostki usługi, możesz skonfigurować połączenie usługi platformy Azure przy użyciu przycisku "Dodaj" lub "Zarządzaj".
grupy zasobów azureResourceGroup
-
string
. Wymagane, gdy connectionType = Azure Resource Manager
.
Wybierz grupę zasobów platformy Azure.
kubernetesCluster
-
klastra Kubernetes
string
. Wymagane, gdy connectionType = Azure Resource Manager
.
Wybierz klaster zarządzany platformy Azure.
namespace
-
przestrzeni nazw platformy Kubernetes
string
.
Przestrzeń nazw kubernetes.
secretName
-
nazwa wpisu tajnego
string
.
Wpis tajny kubernetes zawierający dane konfiguracji funkcji (np. AzureWebJobsStorage: Azure storage connection string
).
dockerHubNamespace
-
przestrzeni nazw usługi Docker Hub
string
.
Przestrzeń nazw usługi Docker Hub. Wymagane dla prywatnego repozytorium usługi Docker Hub.
nazwa aplikacji appName
-
string
. To jest wymagane.
Nazwa aplikacji. Utworzone obiekty Kubernetes używają tej nazwy. Powinno to być zgodne z konwencjami nazewnictwa platformy Kubernetes dla nazw zasobów.
katalogu głównego funkcji functionRootDirectory
-
string
.
Katalog główny funkcji. Powinna zawierać host.json. Kompilacja i wypychanie platformy Docker jest wykonywane z tego katalogu.
waitForStability
-
Czekaj na stabilność
boolean
. Wartość domyślna: true
.
Poczekaj, aż obiekty Kubernetes osiągną żądany stan.
arguments
-
argumenty
string
.
Przekaż argumenty do polecenia. Na przykład:
--no-docker --service-type NodePort.
Opcje sterowania zadania
Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.
Zmienne wyjściowe
Żaden.
Uwagi
Zagadnienia dotyczące połączenia z usługą Kubernetes podczas uzyskiwania dostępu do usługi AKS
Możesz utworzyć połączenie usługi Kubernetes z dowolną z poniższych opcji.
- KubeConfig
- Konto usługi
- Subskrypcja platformy Azure
Podczas wybierania opcji subskrypcji platformy Azure platforma Kubernetes musi być dostępna dla usługi Azure DevOps w czasie konfiguracji połączenia z usługą. Nie można utworzyć połączenia z usługą z różnych powodów, na przykład utworzenia klastra prywatnego lub klaster ma wyłączone konta lokalne . W takich przypadkach usługa Azure DevOps nie może nawiązać połączenia z klastrem w czasie konfiguracji połączenia z usługą i zostanie wyświetlony zablokowany ładowanie przestrzeni nazw ekranu.
Począwszy od platformy Kubernetes 1.24, długotrwałe tokeny nie są już tworzone domyślnie. Platforma Kubernetes zaleca, aby nie używać tokenów długotrwałych. W związku z tym zadania korzystające z połączenia usługi Kubernetes utworzonego z opcją subskrypcji platformy Azure nie mają dostępu do tokenu trwałego wymaganego do uwierzytelniania i nie mogą uzyskać dostępu do klastra Kubernetes. Spowoduje to również zablokowanie ładowanie przestrzeni nazw okno dialogowe.
Uzyskiwanie dostępu do usługi AKS przy użyciu połączenia usługi Azure Resource Manager
W przypadku klientów usługi AKS typ połączenia usługi Azure Resource Manager zapewnia najlepszą metodę nawiązywania połączenia z klastrem prywatnym lub klastrem, który ma wyłączone konta lokalne. Ta metoda nie jest zależna od łączności klastra podczas tworzenia połączenia z usługą. Dostęp do usługi AKS jest odroczony do środowiska uruchomieniowego potoku, co ma następujące zalety:
- Dostęp do klastra usługi AKS (prywatnego) można wykonać z własnego agenta zestawu skalowania z widokiem do klastra.
- Token jest tworzony dla każdego zadania korzystającego z połączenia usługi Azure Resource Manager. Dzięki temu nawiąższ połączenie z platformą Kubernetes przy użyciu krótkotrwałego tokenu, który jest zaleceniem Kubernetes.
- Dostęp do usługi AKS można uzyskać nawet wtedy, gdy konta lokalne są wyłączone.
Często zadawane pytania dotyczące połączenia z usługą
Otrzymuję następujący komunikat o błędzie: Nie można odnaleźć żadnego wpisu tajnego skojarzonego z kontem usługi. Co się dzieje?
Używasz połączenia usługi Kubernetes z opcją Subskrypcja platformy Azure. Aktualizujemy tę metodę w celu utworzenia długotrwałych tokenów. Oczekuje się, że będzie to dostępne w połowie maja. Zaleca się jednak rozpoczęcie korzystania z typu połączenia z usługą platformy Azure, a nie używanie tokenów długotrwałych zgodnie ze wskazówkami dotyczącymi platformy Kubernetes .
Używam usługi AKS i nie chcę nic zmieniać. Czy mogę nadal używać zadań z połączeniem usługi Kubernetes?
Aktualizujemy tę metodę w celu utworzenia długotrwałych tokenów. Oczekuje się, że będzie to dostępne w połowie maja. Należy jednak pamiętać, że takie podejście jest sprzeczne z wskazówki dotyczące platformy Kubernetes.
Używam zadań platformy Kubernetes i połączenia usługi Kubernetes, ale nie usługi AKS. Czy powinienem się martwić?
Zadania będą nadal działać tak jak wcześniej.
Czy typ połączenia usługi Kubernetes zostanie usunięty?
Nasze zadania kubernetes działają z dowolnym klastrem Kubernetes, niezależnie od tego, gdzie są uruchomione. Połączenie usługi Kubernetes będzie nadal istnieć.
Jestem klientem usługi AKS i wszystko działa prawidłowo, czy powinienem działać?
Nie trzeba nic zmieniać. Jeśli używasz połączenia usługi Kubernetes i wybranej subskrypcji platformy Azure podczas tworzenia, należy pamiętać o wskazówkach dotyczących platformy Kubernetes dotyczących korzystania z tokenów długotrwałych.
Tworzysz środowisko Kubernetes i nie mam możliwości korzystania z połączeń usług
Jeśli nie możesz uzyskać dostępu do usługi AKS w czasie tworzenia środowiska, możesz użyć pustego środowiska i ustawić connectionType
dane wejściowe na połączenie usługi Azure Resource Manager.
Mam skonfigurowaną usługę AKS z kontrolą dostępu opartą na rolach usługi Azure Active Directory, a mój potok nie działa. Czy te aktualizacje rozwiążą ten problem?
Uzyskiwanie dostępu do platformy Kubernetes w przypadku włączenia kontroli dostępu opartej na rolach usługi AAD nie jest związane z tworzeniem tokenu. Aby zapobiec monitowi interakcyjnemu, będziemy obsługiwać kubelogin w przyszłej aktualizacji.
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Żaden |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | Jakikolwiek |
zmienne ustawiane | Jakikolwiek |
Wersja agenta | Wszystkie obsługiwane wersje agentów. |
Kategoria zadań | Zainstaluj |