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, configureer, werk een Kubernetes-cluster bij in Azure Container Service door kubectl-opdrachten uit te voeren.
Syntaxis
# 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' | 'rollout' | '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' | 'none'. Output format. Default: json.
Invoer
connectionType
-
Type serviceverbinding
string. Vereist wanneer command != logout. Toegestane waarden: Azure Resource Manager, Kubernetes Service Connection, None. Standaardwaarde: Kubernetes Service Connection.
Hiermee geeft u het type serviceverbinding op: Azure Resource Manager bij het gebruik van Azure Kubernetes Service of Kubernetes Service Connection voor een ander cluster.
-
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. -
None: gebruik een vooraf gemaakte Kubernetes-configuratie die lokaal is opgeslagen.
Zie Serviceverbinding in de volgende sectie Opmerkingen voor meer informatie.
kubernetesServiceEndpoint
-
Kubernetes-serviceverbinding
string. Vereist wanneer connectionType = Kubernetes Service Connection && command != logout.
Selecteer een Kubernetes-serviceverbinding.
azureSubscriptionEndpoint
-
Azure-abonnement
string. Vereist wanneer connectionType = Azure Resource Manager && command != logout.
Hiermee geeft u het Azure Resource Manager-abonnement op, dat het Azure Container Registry bevat.
Opmerking
Als u een nieuwe serviceverbinding wilt configureren, geeft u het Azure-abonnement op in de lijst en klikt u op Authorize. Als uw abonnement niet wordt vermeld of als u een bestaande service-principal wilt gebruiken, kunt u een Azure-serviceverbinding instellen met behulp van de knoppen Add of Manage.
azureResourceGroup
-
Resourcegroep
string. Vereist wanneer connectionType = Azure Resource Manager && command != logout.
Selecteer een Azure-resourcegroep.
kubernetesCluster
-
Kubernetes-cluster
string. Vereist wanneer connectionType = Azure Resource Manager && command != logout.
Selecteer een door Azure beheerd cluster.
useClusterAdmin
-
Referenties van clusterbeheerder gebruiken
boolean. Facultatief. Gebruiken wanneer connectionType = Azure Resource Manager && command != logout. Standaardwaarde: false.
Gebruik de referenties van de clusterbeheerder in plaats van de standaardreferenties voor clustergebruikers.
namespace
-
naamruimte
string. Facultatief. Gebruiken wanneer command != logout.
Stel de naamruimte voor de opdracht kubectl in met behulp van de vlag –namespace. Als de naamruimte niet is opgegeven, worden de opdrachten uitgevoerd in de standaardnaamruimte.
command
-
opdracht
string. Toegestane waarden: apply, create, delete, exec, expose, get, login, logout, logs, rollout, run, set, top.
Selecteer of specificeer een kubectl-opdracht die u wilt uitvoeren. De lijst met toegestane waarden bevat enkele veelvoorkomende keuzes voor het gemak van selectie bij het gebruik van de taakassistent, maar u kunt ook andere kubectl-opdrachten opgeven, zoals scale. Gebruik de arguments invoer om aanvullende parameters op te geven voor de opgegeven kubectl opdracht.
command
-
opdracht
string. Toegestane waarden: apply, create, delete, exec, expose, get, login, logout, logs, run, set, top.
Selecteer of specificeer een kubectl-opdracht die u wilt uitvoeren. De lijst met toegestane waarden bevat enkele veelvoorkomende keuzes voor het gemak van selectie bij het gebruik van de taakassistent, maar u kunt ook andere kubectl-opdrachten opgeven, zoals scale. Gebruik de arguments invoer om aanvullende parameters op te geven voor de opgegeven kubectl opdracht.
useConfigurationFile
-
Gebruik configuratie
boolean. Facultatief. Gebruiken wanneer command != login && command != logout. Standaardwaarde: false.
Hiermee geeft u de Kubernetes-configuratie op die met de kubectl opdracht moet worden gebruikt. Het inlinescript, de bestandsnaam, de map of de URL naar Kubernetes-configuratiebestanden kunnen worden opgegeven.
configurationType
-
configuratietype
string. Facultatief. Gebruiken wanneer useConfigurationFile = true. Toegestane waarden: configuration (Bestandspad), inline (Inline configuratie). Standaardwaarde: configuration.
Hiermee geeft u het type Kubernetes-configuratie voor de kubectl opdracht op. Dit kan een bestandspad of een inline-script zijn.
configuration
-
bestandspad
string. Vereist wanneer configurationType = configuration.
Hiermee geeft u de bestandsnaam, map of URL voor kubernetes-configuratiebestanden op die worden gebruikt met de opdrachten.
inline
-
Inline configuratie
string. Vereist wanneer configurationType = inline.
Hiermee geeft u de configuratie van de inline implementatie voor de kubectl opdracht op.
arguments
-
argumenten
string. Facultatief. Gebruiken wanneer command != login && command != logout.
Argumenten voor de opgegeven kubectl-opdracht.
secretType
-
type geheim
string. Vereist wanneer command != login && command != logout. Toegestane waarden: dockerRegistry, generic. Standaardwaarde: dockerRegistry.
Maak/update een algemene of docker imagepullsecret. Selecteer dockerRegistry om de imagepullsecret van het geselecteerde register te maken/bij te werken. Een imagePullSecret is een manier om een geheim dat een containerregisterwachtwoord bevat, door te geven aan de Kubelet, zodat deze namens uw pod een privéafbeelding kan ophalen.
secretArguments
-
argumenten
string. Facultatief. Gebruiken wanneer secretType = generic && command != login && command != logout.
Hiermee geeft u de sleutels en letterlijke waarden op die in het geheim moeten worden ingevoegd. Bijvoorbeeld, --from-literal=key1=value1of --from-literal=key2="top secret".
containerRegistryType
-
containerregistertype
string. Vereist wanneer secretType = dockerRegistry && command != login && command != logout. Toegestane waarden: Azure Container Registry, Container Registry. Standaardwaarde: Azure Container Registry.
Selecteer een containerregistertype. De taak kan azure-abonnementsgegevens gebruiken om te werken met een Azure Container Registry. Andere standaardcontainerregisters worden ook ondersteund.
dockerRegistryEndpoint
-
docker-registerserviceverbinding
string. Facultatief. Gebruiken wanneer secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout.
Selecteer een Docker-registerserviceverbinding. Vereist voor opdrachten die moeten worden geverifieerd met een register.
azureSubscriptionEndpointForSecrets
-
Azure-abonnement
string. Facultatief. Gebruiken wanneer secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.
Hiermee geeft u het Azure Resource Manager-abonnement op 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 Authorize. Als uw abonnement niet wordt vermeld of als u een bestaande service-principal wilt gebruiken, kunt u een Azure-serviceverbinding instellen met behulp van de knoppen Add of Manage.
azureContainerRegistry
-
Azure-containerregister
string. Facultatief. Gebruiken wanneer secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.
Hiermee geeft u een Azure Container Registry op die wordt gebruikt voor het ophalen van containerinstallatiekopieën en het implementeren van toepassingen in het Kubernetes-cluster. Vereist voor opdrachten die moeten worden geverifieerd met een register.
secretName
-
geheime naam
string. Facultatief. Gebruiken wanneer command != login && command != logout.
Naam van het geheim. U kunt deze geheime naam gebruiken in het KUbernetes YAML-configuratiebestand.
forceUpdate
-
Updategeheim afdwingen
boolean. Facultatief. Gebruiken wanneer command != login && command != logout. Standaardwaarde: true.
Verwijder het geheim als het bestaat en maak een nieuw geheim met bijgewerkte waarden.
configMapName
-
ConfigMap-naam
string. Facultatief. Gebruiken wanneer command != login && command != logout.
Met ConfigMaps kunt u configuratieartefacten loskoppelen van installatiekopie-inhoud om containertoepassingen draagbaar te houden.
forceUpdateConfigMap
-
updateconfiguratiemap forceren
boolean. Facultatief. Gebruiken wanneer command != login && command != logout. Standaardwaarde: false.
Verwijder de configuratiemap als deze bestaat en maak een nieuwe met bijgewerkte waarden.
useConfigMapFile
-
Bestand gebruiken
boolean. Facultatief. Gebruiken wanneer command != login && command != logout. Standaardwaarde: false.
Maakt een ConfigMap van een afzonderlijk bestand of van meerdere bestanden door een map op te geven.
configMapFile
-
ConfigMap-bestand
string. Vereist wanneer useConfigMapFile = true && command != login && command != logout.
Geef een bestand of map op die de configMaps bevat.
configMapArguments
-
argumenten
string. Facultatief. Gebruiken wanneer useConfigMapFile = false && command != login && command != logout.
Hiermee geeft u de sleutels en letterlijke waarden op die moeten worden ingevoegd in configMap. Een voorbeeld hiervan is --from-literal=key1=value1 of --from-literal=key2="top secret".
versionOrLocation
-
Kubectl-
string. Toegestane waarden: version, location (locatie opgeven). Standaardwaarde: version.
kubectl is een opdrachtregelinterface voor het uitvoeren van opdrachten op Kubernetes-clusters.
versionSpec
-
versiespecificatie
string. Facultatief. Gebruiken wanneer versionOrLocation = version. Standaardwaarde: 1.13.2.
Hiermee geeft u de versiespecificatie van de versie die moet worden get. Voorbeelden: 1.7.0, 1.x.0, 4.x.0, 6.10.0, >=6.10.0.
checkLatest
-
Controleren op de nieuwste versie
boolean. Facultatief. Gebruiken wanneer versionOrLocation = version. Standaardwaarde: false.
Controleert altijd online op de meest recente beschikbare versie (stable.txt) die voldoet aan de versiespecificatie. Dit is meestal onwaar, tenzij u een specifiek scenario hebt om altijd de meest recente versie te krijgen. Hierdoor worden er downloadkosten in rekening gebracht wanneer dit mogelijk niet nodig is, met name met de gehoste buildpool.
specifyLocation
-
Pad naar kubectl
string. Vereist wanneer versionOrLocation = location.
Hiermee geeft u het volledige pad naar het kubectl.exe bestand.
workingDirectory
-
werkmap
Invoeralias: cwd.
string. Standaardwaarde: $(System.DefaultWorkingDirectory).
Werkmap voor de Kubectl-opdracht.
outputFormat
-
uitvoerindeling
string. Toegestane waarden: json, yaml, none. Standaardwaarde: json.
Uitvoerindeling. De lijst met toegestane waarden biedt enkele veelvoorkomende keuzes voor het gemak van selectie bij het gebruik van de taakassistent, maar u kunt ook andere uitvoeropties opgeven, zoals jsonpath={.items[*].spec['initContainers', 'containers'][*].image}.
Opties voor taakbeheer
Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.
Uitvoervariabelen
Deze taak definieert de volgende uitvoervariabelen, die u kunt gebruiken in downstreamstappen, taken en fasen.
KubectlOutput
Slaat de uitvoer van de kubectl opdracht op.
Opmerkingen
Wat is er nieuw in versie 1.0.
- Er is een nieuwe invoer van het type serviceverbinding toegevoegd voor eenvoudige selectie van Azure AKS-clusters.
- We hebben de invoer van de uitvoervariabele vervangen door een sectie met uitvoervariabelen die we aan alle taken hebben toegevoegd.
Gebruik deze taak om een Kubernetes-cluster te implementeren, configureren of bij te werken door kubectl-opdrachten uit te voeren.
Aansluiting voor dienstverlening
De taak werkt met twee typen serviceverbindingen: Azure Resource Manager en Kubernetes Service Connection, die hieronder worden beschreven.
Azure Resource Manager
Stel connectionType in op Azure Resource Manager en geef een azureSubscriptionEndpoint op om een Azure Resource Manager-serviceverbinding te gebruiken.
In dit YAML-voorbeeld ziet u hoe Azure Resource Manager wordt gebruikt om te verwijzen naar het Kubernetes-cluster. Dit moet worden gebruikt met een van de kubectl-opdrachten en de juiste waarden die voor de opdracht vereist zijn.
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-serviceverbinding
Stel connectionType in op Kubernetes Service Connection en geef a kubernetesServiceEndpoint op om een Kubernetes-serviceverbinding te gebruiken.
In dit YAML-voorbeeld ziet u hoe een Kubernetes-serviceverbinding wordt gebruikt om naar het Kubernetes-cluster te verwijzen. Dit moet worden gebruikt met een van de kubectl-opdrachten en de juiste waarden die voor de opdracht vereist zijn.
- task: Kubernetes@1
displayName: kubectl apply
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
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.
Opdrachten
De opdrachtinvoer accepteert kubectl-opdrachten.
In dit YAML-voorbeeld wordt de opdracht toepassen gedemonstreerd:
- 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
Dit YAML-voorbeeld demonstreert het gebruik van een configuratiebestand met de opdracht toepassen :
- 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
In dit YAML-voorbeeld ziet u het gebruik van de schaalopdracht om het aantal replica's in een implementatie te verminderen tot 0.
- 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)
Geheimen
Kubernetes-objecten van het type geheim zijn bedoeld om gevoelige informatie te bewaren, zoals wachtwoorden, OAuth-tokens en ssh-sleutels. Het is veiliger en flexibeler om deze informatie geheim te houden dan deze letterlijk in een pod-definitie of in een Docker-afbeelding te plaatsen. Azure Pipelines vereenvoudigt het toevoegen van ImagePullSecrets aan een serviceaccount of het instellen van een algemeen geheim, zoals hieronder wordt beschreven.
ImagePullSecret
Dit YAML-voorbeeld demonstreert het instellen van ImagePullSecrets:
- 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
Algemene geheimen
In dit YAML-voorbeeld worden algemene geheimen gemaakt op basis van letterlijke waarden die zijn opgegeven voor de secretArguments-invoer :
- 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
Pijplijnvariabelen kunnen worden gebruikt om argumenten door te geven voor het opgeven van letterlijke waarden, zoals hier wordt weergegeven:
- 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
Configuratiekaart
Met ConfigMaps kunt u configuratieartefacten loskoppelen van de inhoud van de afbeelding om de portabiliteit voor toepassingen in containers te behouden.
In dit YAML-voorbeeld wordt een ConfigMap gemaakt door naar een ConfigMap-bestand te verwijzen:
- task: Kubernetes@1
displayName: kubectl apply
inputs:
configMapName: myconfig
useConfigMapFile: true
configMapFile: src/configmap
In dit YAML-voorbeeld wordt een ConfigMap gemaakt door de letterlijke waarden rechtstreeks op te geven als de invoer van configMapArguments en forceUpdate in te stellen op true:
- 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
U kunt pijplijnvariabelen gebruiken om letterlijke waarden door te geven bij het maken van ConfigMap, zoals hier wordt weergegeven:
- 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)
Probleemoplossingsproces
Mijn Kubernetes-cluster bevindt zich achter een firewall en ik gebruik gehoste agents. Hoe kan ik op dit cluster implementeren?
U kunt gehoste agents toegang verlenen via uw firewall door de IP-adressen voor de gehoste agents toe te staan. Zie IP-bereiken van agenten voor meer informatie
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 |