Freigeben über


Kubernetes@1 – Kubectl v1-Aufgabe

Bereitstellen, Konfigurieren und Aktualisieren eines Kubernetes-Clusters in Azure Container Service durch Ausführen von kubectl-Befehlen.

Bereitstellen, Konfigurieren und Aktualisieren Ihres Kubernetes-Clusters in Azure Container Service durch Ausführen von kubectl-Befehlen.

Syntax

# Kubectl v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml' | 'none'. Output format. Default: json.
# Kubectl v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Output format. Default: json.
# Deploy to Kubernetes v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Output format. Default: json.
# Deploy to Kubernetes v1
# Deploy, configure, update your Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Azure Resource Manager.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    command: 'apply' # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Required. Command. Default: apply.
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration files. Default: false.
    #configuration: # string. Required when useConfigurationFile = true. Configuration file. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Optional. Use when command != login && command != logout. Kubectl. Default: version.
    #versionSpec: '1.7.0' # string. Optional. Use when versionOrLocation = version && command != login && command != logout. Version spec. Default: 1.7.0.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version && command != login && command != logout. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location && command != login && command != logout. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Optional. Use when command != login && command != logout. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Optional. Use when command != login && command != logout. Output format. Default: json.

Eingaben

connectionType - Dienstverbindungstyp
string. Erforderlich, wenn command != logout. Zulässige Werte: Azure Resource Manager, Kubernetes Service Connection und None. Standardwert. Kubernetes Service Connection.

Gibt den Dienstverbindungstyp an: Azure Resource Manager, wenn Azure Kubernetes Service oder Kubernetes Service Connection für einen anderen Cluster verwendet wird.

  • Kubernetes Service Connection– Ermöglicht es Ihnen, eine KubeConfig-Datei bereitzustellen, ein Dienstkonto anzugeben oder eine AKS-instance mit der Azure-Abonnementoption zu importieren. Für das Importieren einer AKS-instance mit der Azure-Abonnementoption ist der Zugriff auf den Kubernetes-Cluster zum Zeitpunkt der Dienstverbindungskonfiguration erforderlich.
  • Azure Resource Manager– Hiermit können Sie eine AKS-instance auswählen. Greift zum Zeitpunkt der Dienstverbindungskonfiguration nicht auf den Kubernetes-Cluster zu.
  • None – Verwenden Sie eine vorab erstellte Kubernetes-Konfiguration, die lokal gespeichert ist.

Weitere Informationen finden Sie unter Dienstverbindung im folgenden Abschnitt hinweise .


connectionType - Dienstverbindungstyp
string. Erforderlich, wenn command != logout. Zulässige Werte: Azure Resource Manager, Kubernetes Service Connection und None. Standardwert. Azure Resource Manager.

Gibt den Dienstverbindungstyp an: Azure Resource Manager, wenn Azure Kubernetes Service oder Kubernetes Service Connection für einen anderen Cluster verwendet wird.


kubernetesServiceEndpoint - Kubernetes-Dienstverbindung
string. Erforderlich, wenn connectionType = Kubernetes Service Connection && command != logout.

Wählen Sie eine Kubernetes-Dienstverbindung aus.


azureSubscriptionEndpoint - Azure-Abonnement
string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout.

Gibt das Azure Resource Manager-Abonnement an, das die Azure Container Registry enthält.

Hinweis

Um eine neue Dienstverbindung zu konfigurieren, geben Sie das Azure-Abonnement aus der Liste an, und klicken Sie auf Authorize. Wenn Ihr Abonnement nicht aufgeführt ist oder Sie einen vorhandenen Dienstprinzipal verwenden möchten, können Sie eine Azure-Dienstverbindung über die Add Schaltflächen oder Manage einrichten.


azureResourceGroup - Ressourcengruppe
string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout.

Wählen Sie eine Azure-Ressourcengruppe aus.


kubernetesCluster - Kubernetes-Cluster
string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout.

Wählen Sie einen verwalteten Azure-Cluster aus.


useClusterAdmin - Verwenden von Clusteradministratoranmeldeinformationen
boolean. Optional. Verwenden Sie , wenn connectionType = Azure Resource Manager && command != logout. Standardwert. false.

Verwenden Sie Clusteradministratoranmeldeinformationen anstelle der Standardmäßigen Clusterbenutzeranmeldeinformationen.


namespace - Namespace
string. Optional. Verwenden Sie , wenn command != logout.

Legen Sie den Namespace für den Kubectl-Befehl mithilfe des Flags –namespace fest. Wenn der Namespace nicht bereitgestellt wird, werden die Befehle im Standardnamespace ausgeführt.


command - Befehl
string. Zulässige Werte: apply, create, delete, exposeexec, get, loginrunsetlogoutlogs, . top

Wählen Sie einen auszuführenden kubectl-Befehl aus, oder geben Sie diesen an. Die Liste der zulässigen Werte bietet einige allgemeine Auswahlmöglichkeiten für die einfache Auswahl, wenn Sie die Aufgabe Assistent verwenden, aber Sie können andere kubectl-Befehle wie scaleangeben. Verwenden Sie die arguments Eingabe, um zusätzliche Parameter für den angegebenen kubectl Befehl anzugeben.


command - Befehl
string. Erforderlich. Zulässige Werte: apply, create, delete, exposeexec, get, loginrunsetlogoutlogs, . top Standardwert. apply.

Wählen Sie einen auszuführenden kubectl-Befehl aus, oder geben Sie diesen an.


useConfigurationFile - Verwenden der Konfiguration
boolean. Optional. Verwenden Sie , wenn command != login && command != logout. Standardwert. false.

Gibt die Kubernetes-Konfiguration an, die mit dem kubectl Befehl verwendet werden soll. Das Inlineskript, der Dateiname, das Verzeichnis oder die URL zu Kubernetes-Konfigurationsdateien können bereitgestellt werden.


useConfigurationFile - Verwenden von Konfigurationsdateien
boolean. Optional. Verwenden Sie , wenn command != login && command != logout. Standardwert. false.

Gibt die Kubernetes-Konfiguration an, die mit dem kubectl Befehl verwendet werden soll. Das Inlineskript, der Dateiname, das Verzeichnis oder die URL zu Kubernetes-Konfigurationsdateien können bereitgestellt werden.


configurationType - Konfigurationstyp
string. Optional. Verwenden Sie , wenn useConfigurationFile = true. Zulässige Werte: configuration (Dateipfad), inline (Inlinekonfiguration). Standardwert. configuration.

Gibt den Typ der Kubernetes-Konfiguration für den kubectl Befehl an. Dabei kann es sich um einen Dateipfad oder ein Inlineskript handeln.


configuration - Dateipfad
string. Erforderlich, wenn configurationType = configuration.

Gibt den Dateinamen, das Verzeichnis oder die URL für kubernetes-Konfigurationsdateien an, die mit den Befehlen verwendet werden.


configuration - Konfigurationsdatei
string. Erforderlich, wenn useConfigurationFile = true.

Gibt den Dateinamen, das Verzeichnis oder die URL für kubernetes-Konfigurationsdateien an, die mit den Befehlen verwendet werden.


inline - Inlinekonfiguration
string. Erforderlich, wenn configurationType = inline.

Gibt die Inlinebereitstellungskonfiguration für den kubectl Befehl an.


arguments - Argumente
string. Optional. Verwenden Sie , wenn command != login && command != logout.

Argumente für den angegebenen kubectl-Befehl.


secretType - Typ des Geheimnisses
string. Erforderlich, wenn command != login && command != logout. Zulässige Werte: dockerRegistry, generic. Standardwert. dockerRegistry.

Erstellen/aktualisieren Sie ein generisches oder Docker-Imagepullsecret. Wählen Sie dockerRegistry aus, um das imagepullsecret der ausgewählten Registrierung zu erstellen/zu aktualisieren. Ein imagePullSecret ist eine Möglichkeit, ein Geheimnis, das ein Kennwort für die Containerregistrierung enthält, an das Kubelet zu übergeben, damit ein privates Image im Namen Ihres Pods abgerufen werden kann.


secretArguments - Argumente
string. Optional. Verwenden Sie , wenn secretType = generic && command != login && command != logout.

Gibt die Schlüssel und Literalwerte an, die im Geheimnis eingefügt werden sollen. Beispiel: --from-literal=key1=value1oder --from-literal=key2="top secret".


containerRegistryType - Containerregistrierungstyp
string. Erforderlich, wenn secretType = dockerRegistry && command != login && command != logout. Zulässige Werte: Azure Container Registry, Container Registry. Standardwert. Azure Container Registry.

Wählen Sie einen Containerregistrierungstyp aus. Der Task kann Azure-Abonnementdetails verwenden, um mit einer Azure Container-Registrierung zu arbeiten. Andere Container-Standardregistrierungen werden ebenfalls unterstützt.


dockerRegistryEndpoint - Docker-Registrierungsdienstverbindung
string. Optional. Verwenden Sie , wenn secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout.

Wählen Sie eine Docker-Registrierungsdienstverbindung aus. Erforderlich für Befehle, die bei einer Registrierung authentifiziert werden müssen.


azureSubscriptionEndpointForSecrets - Azure-Abonnement
string. Optional. Verwenden Sie , wenn secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Gibt das Azure Resource Manager-Abonnement an, 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 Authorize. Wenn Ihr Abonnement nicht aufgeführt ist oder Sie einen vorhandenen Dienstprinzipal verwenden möchten, können Sie eine Azure-Dienstverbindung über die Add Schaltflächen oder Manage einrichten.


azureContainerRegistry - Azure Container Registry
string. Optional. Verwenden Sie , wenn secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Gibt eine Azure Container Registry an, die zum Pullen von Containerimages und bereitstellen von Anwendungen im Kubernetes-Cluster verwendet wird. Erforderlich für Befehle, die bei einer Registrierung authentifiziert werden müssen.


secretName - Geheimnisname
string. Optional. Verwenden Sie , wenn command != login && command != logout.

Name des Geheimnisses. Sie können diesen Geheimnamen in der YaML-Konfigurationsdatei von Kubernetes verwenden.


forceUpdate - Updategeheimnis erzwingen
boolean. Optional. Verwenden Sie , wenn command != login && command != logout. Standardwert. true.

Löschen Sie das Geheimnis, falls vorhanden, und erstellen Sie ein neues Geheimnis mit aktualisierten Werten.


configMapName - ConfigMap-Name
string. Optional. Verwenden Sie , wenn command != login && command != logout.

Mit ConfigMaps können Sie Konfigurationsartefakte vom Imageinhalt entkoppeln, um containerisierte Anwendungen portierbar zu halten.


forceUpdateConfigMap - Erzwingen der Updatekonfigurationskarte
boolean. Optional. Verwenden Sie , wenn command != login && command != logout. Standardwert. false.

Löschen Sie die Configmap, sofern sie vorhanden ist, und erstellen Sie eine neue karte mit aktualisierten Werten.


useConfigMapFile - Datei verwenden
boolean. Optional. Verwenden Sie , wenn command != login && command != logout. Standardwert. false.

Erstellt eine ConfigMap aus einer einzelnen Datei oder aus mehreren Dateien, indem Sie ein Verzeichnis angeben.


configMapFile - ConfigMap-Datei
string. Erforderlich, wenn useConfigMapFile = true && command != login && command != logout.

Geben Sie eine Datei oder ein Verzeichnis an, das die configMaps enthält.


configMapArguments - Argumente
string. Optional. Verwenden Sie , wenn useConfigMapFile = false && command != login && command != logout.

Gibt die Schlüssel und Literalwerte an, die in configMapeingefügt werden sollen. Zum Beispiel: --from-literal=key1=value1 oder --from-literal=key2="top secret".


versionOrLocation - Kubectl
string. Zulässige Werte: version, location (Speicherort angeben). Standardwert. version.

kubectl ist eine Befehlszeilenschnittstelle zum Ausführen von Befehlen für Kubernetes-Cluster.


versionOrLocation - Kubectl
string. Optional. Verwenden Sie , wenn command != login && command != logout. Zulässige Werte: version, location (Speicherort angeben). Standardwert. version.

kubectl ist eine Befehlszeilenschnittstelle zum Ausführen von Befehlen für Kubernetes-Cluster.


versionSpec - Versionsspezifikation
string. Optional. Verwenden Sie , wenn versionOrLocation = version. Standardwert. 1.13.2.

Gibt die Versionsspezifikation der abzurufenden Version an. Beispiele: 1.7.0, 1.x.0, 4.x.0, 6.10.0, . >=6.10.0


versionSpec - Versionsspezifikation
string. Optional. Verwenden Sie , wenn versionOrLocation = version && command != login && command != logout. Standardwert. 1.7.0.

-18-2 Gibt die Versionsspezifikation der abzurufenden Version an. Beispiele: 1.7.0, 1.x.0, 4.x.0, 6.10.0, . >=6.10.0


checkLatest - Überprüfen der neuesten Version
boolean. Optional. Verwenden Sie , wenn versionOrLocation = version. Standardwert. false.

Sucht immer online nach der neuesten verfügbaren Version (stable.txt), die die Versionsspezifikation erfüllt. Dies ist in der Regel false, es sei denn, Sie haben ein bestimmtes Szenario, um immer den neuesten Stand zu erhalten. Dies führt zu Downloadkosten, wenn es möglicherweise nicht erforderlich ist, insbesondere beim gehosteten Buildpool.


checkLatest - Überprüfen der neuesten Version
boolean. Optional. Verwenden Sie , wenn versionOrLocation = version && command != login && command != logout. Standardwert. false.

Sucht immer online nach der neuesten verfügbaren Version (stable.txt), die die Versionsspezifikation erfüllt. Dies ist in der Regel false, es sei denn, Sie haben ein bestimmtes Szenario, um immer den neuesten Stand zu erhalten. Dies führt zu Downloadkosten, wenn es möglicherweise nicht erforderlich ist, insbesondere beim gehosteten Buildpool.


specifyLocation - Pfad zu kubectl
string. Erforderlich, wenn versionOrLocation = location.

Gibt den vollständigen Pfad zur Datei an kubectl.exe .


specifyLocation - Pfad zu kubectl
string. Erforderlich, wenn versionOrLocation = location && command != login && command != logout.

Gibt den vollständigen Pfad zur Datei an kubectl.exe .


workingDirectory - Arbeitsverzeichnis
Eingabealias: cwd. string. Standardwert. $(System.DefaultWorkingDirectory).

Arbeitsverzeichnis für den Kubectl-Befehl.


workingDirectory - Arbeitsverzeichnis
Eingabealias: cwd. string. Optional. Verwenden Sie , wenn command != login && command != logout. Standardwert. $(System.DefaultWorkingDirectory).

Arbeitsverzeichnis für den Kubectl-Befehl.


outputFormat - Ausgabeformat
string. Zulässige Werte: json, yaml und none. Standardwert. json.

Ausgabeformat.


outputFormat - Ausgabeformat
string. Zulässige Werte: json, yaml. Standardwert. json.

Ausgabeformat.


outputFormat - Ausgabeformat
string. Optional. Verwenden Sie , wenn command != login && command != logout. Zulässige Werte: json, yaml. Standardwert. json.

Ausgabeformat.


Optionen für die Vorgangskontrolle

Alle Vorgänge verfügen zusätzlich zu ihren Eingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Diese Aufgabe definiert die folgenden Ausgabevariablen, die Sie in Downstreamschritten, Aufträgen und Phasen verwenden können.

KubectlOutput
Speichert die Ausgabe des kubectl Befehls.

Hinweise

Neuerungen in Version 1.0.

  • Eine neue Dienstverbindungstypeingabe zur einfachen Auswahl von Azure AKS-Clustern wurde hinzugefügt.
  • Die Ausgabevariableneingabe wurde durch einen Ausgabevariablenabschnitt ersetzt, den wir in allen Aufgaben hinzugefügt haben.

Verwenden Sie diese Aufgabe, um einen Kubernetes-Cluster bereitzustellen, zu konfigurieren oder zu aktualisieren, indem Sie kubectl-Befehle ausführen.

Dienstverbindung

Die Aufgabe funktioniert mit zwei Dienstverbindungstypen: Azure Resource Manager und Kubernetes Service Connection( unten beschrieben).

Azure Resource Manager

Legen Sie connectionType auf festAzure Resource Manager, und geben Sie ein azureSubscriptionEndpoint an, um eine Azure Resource Manager-Dienstverbindung zu verwenden.

Dieses YAML-Beispiel zeigt, wie Azure Resource Manager verwendet wird, um auf den Kubernetes-Cluster zu verweisen. Dies ist für einen der kubectl-Befehle und die entsprechenden Werte zu verwenden, die für den Befehl erforderlich sind.

variables:
  azureSubscriptionEndpoint: Contoso
  azureContainerRegistry: contoso.azurecr.io
  azureResourceGroup: Contoso
  kubernetesCluster: Contoso
  useClusterAdmin: false

steps:
- task: Kubernetes@1
  displayName: kubectl apply
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    useClusterAdmin: $(useClusterAdmin)

Kubernetes-Dienstverbindung

Legen Sie connectionType auf fest, Kubernetes Service Connection und geben Sie an kubernetesServiceEndpoint , um eine Kubernetes-Dienstverbindung zu verwenden.

Dieses YAML-Beispiel zeigt, wie eine Kubernetes Service-Verbindung verwendet wird, um auf den Kubernetes-Cluster zu verweisen. Dies ist für einen der kubectl-Befehle und die entsprechenden Werte zu verwenden, die für den Befehl erforderlich sind.

- task: Kubernetes@1
  displayName: kubectl apply
  inputs:
    connectionType: Kubernetes Service Connection
    kubernetesServiceEndpoint: Contoso

Überlegungen zur Kubernetes Service-Verbindung beim Zugriff auf AKS

Sie können eine Kubernetes-Dienstverbindung mit einer der folgenden Optionen erstellen.

  • KubeConfig
  • Dienstkonto
  • Azure-Abonnement

Screenshot: Auswählen einer Kubernetes-Dienstverbindungsauthentifizierungsmethode

Wenn Sie die Option Azure-Abonnement auswählen, muss für Azure DevOps zum Zeitpunkt der Dienstverbindungskonfiguration auf Kubernetes zugegriffen werden können. Es kann verschiedene Gründe geben, warum eine Dienstverbindung nicht erstellt werden kann, z. B. haben Sie einen privaten Cluster erstellt oder lokale Konten für den Cluster deaktiviert. In diesen Fällen kann Azure DevOps zum Zeitpunkt der Dienstverbindungskonfiguration keine Verbindung mit Ihrem Cluster herstellen, und Es wird ein Bildschirm zum Laden von Namespaces angezeigt.

Screenshot: Auswählen eines Kubernetes-Dienst-Verbindungsauthentifizierungsdialogfelds, das beim Laden von Namespaces hängen bleibt

Ab Kubernetes 1.24 werden langlebige Token standardmäßig nicht mehr erstellt. Kubernetes empfiehlt, keine langlebigen Token zu verwenden. Daher haben Aufgaben, die eine Kubernetes-Dienstverbindung verwenden, die mit der Azure-Abonnementoption erstellt wurde, keinen Zugriff auf das dauerhafte Token, das für die Authentifizierung erforderlich ist, und können nicht auf Ihren Kubernetes-Cluster zugreifen. Dies führt auch zum gesperrten Dialogfeld Laden von Namespaces .

Verwenden der Azure Resource Manager-Dienstverbindung für den Zugriff auf AKS

Für AKS-Kunden bietet der Verbindungstyp Azure Resource Manager-Dienst die beste Methode, um eine Verbindung mit einem privaten Cluster oder einem Cluster herzustellen, für den lokale Konten deaktiviert sind. Diese Methode ist nicht von der Clusterkonnektivität abhängig, wenn Sie eine Dienstverbindung erstellen. Der Zugriff auf AKS wird auf die Pipelineruntime zurückgestellt, was die folgenden Vorteile hat:

  • Der Zugriff auf einen (privaten) AKS-Cluster kann von einem selbstgehosteten Agent oder einem Skalierungsgruppen-Agent mit Sichtverbindung zum 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. Dies ist die Kubernetes-Empfehlung.
  • Auf AKS kann auch dann zugegriffen werden, wenn lokale Konten deaktiviert sind.

Häufig gestellte Fragen zu Dienstverbindungen

Ich erhalte die folgende Fehlermeldung: Es wurde kein Geheimnis gefunden, das mit dem Dienstkonto verknüpft ist. Was passiert?

Sie verwenden die Option Kubernetes-Dienstverbindung mit Azure-Abonnement. 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-Anleitung zu 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 die Kubernetes-Anleitungen steht.

Ich verwende die Kubernetes-Tasks und die Kubernetes-Dienstverbindung, aber nicht AKS. Muss ich mir Sorgen machen?

Ihre Aufgaben funktionieren weiterhin wie zuvor.

Wird der Kubernetes-Dienstverbindungstyp entfernt?

Unsere Kubernetes-Aufgaben funktionieren mit jedem Kubernetes-Cluster, unabhängig davon, wo sie ausgeführt werden. Die Kubernetes-Dienstverbindung besteht weiterhin.

Ich bin AKS-Kunde und alles läuft gut, soll ich handeln?

Es gibt keine Notwendigkeit, etwas zu ändern. Wenn Sie während der Erstellung die Kubernetes-Dienstverbindung und das ausgewählte Azure-Abonnement verwenden, sollten Sie den Kubernetes-Leitfaden zur Verwendung langlebiger Token beachten.

Ich erschaffe eine Kubernetes-Umgebung und habe keine Option, Dienstverbindungen zu verwenden.

Falls Sie während der Erstellung 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, steht in keinem Zusammenhang mit der Tokenerstellung. Um eine interaktive Eingabeaufforderung zu verhindern, werden wir kubelogin in einem zukünftigen Update unterstützen.

Befehle

Die Befehlseingabe akzeptiert kubectl-Befehle.

In diesem YAML-Beispiel wird der Befehl apply veranschaulicht:

- task: Kubernetes@1
  displayName: kubectl apply using arguments
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: apply
    arguments: -f mhc-aks.yaml

In diesem YAML-Beispiel wird die Verwendung einer Konfigurationsdatei mit dem Befehl apply veranschaulicht:

- task: Kubernetes@1
  displayName: kubectl apply using configFile
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: apply
    useConfigurationFile: true
    configuration: mhc-aks.yaml

Dieses YAML-Beispiel zeigt die Verwendung des Skalierungsbefehls , um die Anzahl der Replikate in einer Bereitstellung auf 0 zu verringern.

- task: Kubernetes@1
      displayName: 'Scale down deployment $(k8sDeployment) to 0'
      inputs:
        connectionType: 'Kubernetes Service Connection'
        kubernetesServiceEndpoint: $(kubernetesServiceConnection)
        command: 'scale'
        arguments: 'deployment/$(k8sDeployment) --replicas=0'
        namespace: $(namespace)

Geheimnisse

Kubernetes-Objekte vom Typ geheimnis sollen vertrauliche Informationen wie Kennwörter, OAuth-Token und SSH-Schlüssel enthalten. Es ist sicherer und flexibler, diese Informationen in einem Geheimnis zu platzieren, anstatt diese in einer Poddefinition oder einem Containerimage hart zu codieren. Azure Pipelines vereinfacht das Hinzufügen von ImagePullSecrets zu einem Dienstkonto oder das Einrichten eines generischen Geheimnisses, wie unten beschrieben.

ImagePullSecret

In diesem YAML-Beispiel wird die Einrichtung von ImagePullSecrets veranschaulicht:

    - task: Kubernetes@1
      displayName: kubectl apply for secretType dockerRegistry
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: dockerRegistry
        containerRegistryType: Azure Container Registry
        azureSubscriptionEndpointForSecrets: $(azureSubscriptionEndpoint)
        azureContainerRegistry: $(azureContainerRegistry)
        secretName: mysecretkey2
        forceUpdate: true

Generische Geheimnisse

In diesem YAML-Beispiel werden generische Geheimnisse aus Literalwerten erstellt, die für die secretArguments-Eingabe angegeben sind:

    - task: Kubernetes@1
      displayName: secretType generic with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=5678
        secretName: mysecretkey

Pipelinevariablen können verwendet werden, um Argumente zum Angeben von Literalwerten zu übergeben, wie hier gezeigt:

    - task: Kubernetes@1
      displayName: secretType generic with pipeline variables
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey

ConfigMap

Mit ConfigMaps können Sie Konfigurationsartefakte vom Image-Inhalt entkoppeln, um die Portabilität für containerisierte Anwendungen zu erhalten.

In diesem YAML-Beispiel wird eine ConfigMap erstellt, indem auf eine ConfigMap-Datei gezeigt wird:

    - task: Kubernetes@1
      displayName: kubectl apply
      inputs:
        configMapName: myconfig
        useConfigMapFile: true
        configMapFile: src/configmap

In diesem YAML-Beispiel wird eine ConfigMap erstellt, indem die Literalwerte direkt als configMapArguments-Eingabe angegeben und forceUpdate auf true festgelegt wird:

    - task: Kubernetes@1
      displayName: configMap with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=contoso

Sie können Pipelinevariablen verwenden, um Literalwerte beim Erstellen von ConfigMap zu übergeben, wie hier gezeigt:

    - task: Kubernetes@1
      displayName: configMap with pipeline variables
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=$(contosovalue)

Problembehandlung

Mein Kubernetes-Cluster befindet sich hinter einer Firewall, und ich verwende gehostete Agents. Wie kann ich die Bereitstellung für diesen Cluster durchführen?

Sie können für gehostete Agents den Zugriff über Ihre Firewall gewähren, indem Sie die IP-Adressen für die gehosteten Agents zulassen. Weitere Informationen finden Sie im Artikel mit den IP-Adressbereichen für Agents.

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassisches Release
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version Alle unterstützten Agent-Versionen.
Aufgabenkategorie Bereitstellen