Kubernetes@1 - Kubectl v1 工作

執行 kubectl 命令,在 Azure Container Service 中部署、設定、更新 Kubernetes 叢集。

執行 kubectl 命令,在 Azure Container Service 中部署、設定、更新 Kubernetes 叢集。

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.

輸入

connectionType - 服務連線類型
string. 當 command != logout 時為必要。 允許值:Azure Resource ManagerKubernetes Service ConnectionNone。 預設值:Kubernetes Service Connection

指定服務連線類型:針對任何其他叢集使用Azure Kubernetes Service或 Kubernetes 服務連線時,Azure Resource Manager。

  • Kubernetes Service Connection - 可讓您提供 KubeConfig 檔案、指定服務帳戶,或使用 Azure 訂 用帳戶選項匯入 AKS 實例。 使用 Azure 訂 用帳戶選項匯入 AKS 實例需要 Kubernetes 叢集在服務連線設定時間進行存取。
  • Azure Resource Manager - 可讓您選取 AKS 實例。 無法在服務連線設定時間存取 Kubernetes 叢集。
  • None - 使用儲存在本機的預先建立 Kubernetes 組態。

如需詳細資訊,請參閱下列一節中的服務連線


connectionType - 服務連線類型
string. 當 command != logout 時為必要。 允許值:Azure Resource ManagerKubernetes Service ConnectionNone。 預設值:Azure Resource Manager

指定服務連線類型:針對任何其他叢集使用Azure Kubernetes Service或 Kubernetes 服務連線時,Azure Resource Manager。


kubernetesServiceEndpoint - Kubernetes 服務連線
string. 當 connectionType = Kubernetes Service Connection && command != logout 時為必要。

選取 Kubernetes 服務連線。


azureSubscriptionEndpoint - Azure 訂用帳戶
string. 當 connectionType = Azure Resource Manager && command != logout 時為必要。

指定包含Azure Container Registry的 Azure Resource Manager 訂用帳戶。

注意

若要設定新的服務連線,請從清單中指定 Azure 訂用帳戶,然後按一下 Authorize 。 如果您的訂用帳戶未列出,或您想要使用現有的服務主體,您可以使用 或 Manage 按鈕來設定 Azure 服務連線 Add


azureResourceGroup - 資源群組
string. 當 connectionType = Azure Resource Manager && command != logout 時為必要。

選取 Azure 資源群組。


kubernetesCluster - Kubernetes 叢集
string. 當 connectionType = Azure Resource Manager && command != logout 時為必要。

選取 Azure 受控叢集。


useClusterAdmin - 使用叢集管理員認證
boolean. 選擇性。 使用 時 connectionType = Azure Resource Manager && command != logout 。 預設值:false

使用叢集管理員認證,而不是預設叢集使用者認證。


namespace - 命名 空間
string. 選擇性。 使用 時 command != logout

使用 –namespace 旗標設定 kubectl 命令的命名空間。 如果未提供命名空間,命令將會在預設命名空間中執行。


command - 命令
string. 允許的值: applycreatedeletegetloginexposeexeclogsrunlogout 、、 set 、 。 top

選取或指定要執行的 kubectl 命令。 允許的值清單提供一些常見的選擇,以便在使用工作助理時輕鬆選取,但您可以指定其他kubectl 命令,例如 scalearguments使用輸入來指定指定 kubectl 命令的其他參數。


command - 命令
string. 必要。 允許的值: applycreatedeletegetloginexposeexeclogsrunlogout 、、 set 、 。 top 預設值:apply

選取或指定要執行的 kubectl 命令。


useConfigurationFile - 使用組態
boolean. 選擇性。 使用 時 command != login && command != logout 。 預設值:false

指定要搭配 kubectl 命令使用的 Kubernetes 組態。 您可以提供 Kubernetes 組態檔的內嵌腳本、檔案名、目錄或 URL。


useConfigurationFile - 使用組態檔
boolean. 選擇性。 使用 時 command != login && command != logout 。 預設值:false

指定要搭配 kubectl 命令使用的 Kubernetes 組態。 您可以提供 Kubernetes 組態檔的內嵌腳本、檔案名、目錄或 URL。


configurationType - 組態類型
string. 選擇性。 使用 時 useConfigurationFile = true 。 允許的值: configuration (檔案路徑) , inline (內嵌組態) 。 預設值:configuration

指定命令的 Kubernetes 組態 kubectl 類型。 它可以是檔案路徑或內嵌腳本。


configuration - 檔案路徑
string. 當 configurationType = configuration 時為必要。

指定與命令搭配使用的 kubernetes 組態檔檔案名、目錄或 URL。


configuration - 組態檔
string. 當 useConfigurationFile = true 時為必要。

指定與命令搭配使用的 kubernetes 組態檔檔案名、目錄或 URL。


inline - 內嵌組態
string. 當 configurationType = inline 時為必要。

指定命令的 kubectl 內嵌部署組態。


arguments - 參數
string. 選擇性。 使用 時 command != login && command != logout

指定 kubectl 命令的引數。


secretType - 秘密類型
string. 當 command != login && command != logout 時為必要。 允許值:dockerRegistrygeneric。 預設值:dockerRegistry

建立/更新泛型或 docker imagepullsecret。 選取 dockerRegistry 以建立/更新所選登錄的 imagepullsecret。 imagePullSecret 是將包含容器登錄密碼的秘密傳遞至 Kubelet 的方式,以便代表 Pod 提取私人映射。


secretArguments - 參數
string. 選擇性。 使用 時 secretType = generic && command != login && command != logout

指定要在秘密中插入的索引鍵和常值。 例如, --from-literal=key1=value1--from-literal=key2="top secret"


containerRegistryType - 容器登錄類型
string. 當 secretType = dockerRegistry && command != login && command != logout 時為必要。 允許值:Azure Container RegistryContainer Registry。 預設值:Azure Container Registry

選取容器登錄類型。 工作可以使用 Azure 訂用帳戶詳細資料來處理 Azure Container Registry。 也支援其他標準容器登錄。


dockerRegistryEndpoint - Docker 登錄服務連線
string. 選擇性。 使用 時 secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout

選取 Docker 登錄服務連線。 需要向登錄進行驗證的命令所需。


azureSubscriptionEndpointForSecrets - Azure 訂用帳戶
string. 選擇性。 使用 時 secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout

指定包含Azure Container Registry的 Azure Resource Manager 訂用帳戶。

注意

若要設定新的服務連線,請從清單中選取 Azure 訂用帳戶,然後按一下 Authorize 。 如果您的訂用帳戶未列出,或您想要使用現有的服務主體,您可以使用 或 Manage 按鈕來設定 Azure 服務連線 Add


azureContainerRegistry - Azure Container Registry
string. 選擇性。 使用 時 secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout

指定用於提取容器映射並將應用程式部署至 Kubernetes 叢集的Azure Container Registry。 需要向登錄進行驗證的命令所需。


secretName - 秘密名稱
string. 選擇性。 使用 時 command != login && command != logout

秘密的名稱。 您可以在 Kubernetes YAML 組態檔中使用此秘密名稱。


forceUpdate - 強制更新秘密
boolean. 選擇性。 使用 時 command != login && command != logout 。 預設值:true

如果密碼存在,請刪除密碼,並建立具有更新值的新密碼。


configMapName - ConfigMap 名稱
string. 選擇性。 使用 時 command != login && command != logout

ConfigMap 可讓您將組態成品與映射內容分離,讓容器化應用程式保持可攜。


forceUpdateConfigMap - 強制更新 configmap
boolean. 選擇性。 使用 時 command != login && command != logout 。 預設值:false

如果存在,請刪除 configmap,並建立具有更新值的新組態對應。


useConfigMapFile - 使用檔案
boolean. 選擇性。 使用 時 command != login && command != logout 。 預設值:false

ConfigMap藉由指定目錄,從個別檔案或多個檔案建立 。


configMapFile - ConfigMap 檔案
string. 當 useConfigMapFile = true && command != login && command != logout 時為必要。

指定包含 configMaps 的檔案或目錄。


configMapArguments - 參數
string. 選擇性。 使用 時 useConfigMapFile = false && command != login && command != logout

指定要插入 的 configMap 索引鍵和常值。 例如,--from-literal=key1=value1--from-literal=key2="top secret"


versionOrLocation - Kubectl
string. 允許的值: versionlocation (指定位置) 。 預設值:version

kubectl 是針對 Kubernetes 叢集執行命令的命令列介面。


versionOrLocation - Kubectl
string. 選擇性。 使用 時 command != login && command != logout 。 允許的值: versionlocation (指定位置) 。 預設值:version

kubectl 是針對 Kubernetes 叢集執行命令的命令列介面。


versionSpec - 版本規格
string. 選擇性。 使用 時 versionOrLocation = version 。 預設值:1.13.2

指定要取得之版本的版本規格。 範例: 1.7.0 、、 4.x.01.x.06.10.0>=6.10.0


versionSpec - 版本規格
string. 選擇性。 使用 時 versionOrLocation = version && command != login && command != logout 。 預設值:1.7.0

-18-2 指定要取得的版本規格。 範例: 1.7.0 、、 4.x.01.x.06.10.0>=6.10.0


checkLatest - 檢查最新版本
boolean. 選擇性。 使用 時 versionOrLocation = version 。 預設值:false

請一律線上檢查符合版本規格的最新可用版本 (stable.txt) 。除非您有特定案例一律可取得最新的案例,否則這通常為 false。 這會導致在可能不需要時產生下載成本,特別是裝載的組建集區。


checkLatest - 檢查最新版本
boolean. 選擇性。 使用 時 versionOrLocation = version && command != login && command != logout 。 預設值:false

請一律線上檢查符合版本規格的最新可用版本 (stable.txt) 。除非您有特定案例一律可取得最新的案例,否則這通常為 false。 這會導致在可能不需要時產生下載成本,特別是裝載的組建集區。


specifyLocation - kubectl 的路徑
string. 當 versionOrLocation = location 時為必要。

指定檔案的完整路徑 kubectl.exe


specifyLocation - kubectl 的路徑
string. 當 versionOrLocation = location && command != login && command != logout 時為必要。

指定檔案的完整路徑 kubectl.exe


workingDirectory - 工作目錄
輸入別名: cwdstring. 預設值:$(System.DefaultWorkingDirectory)

Kubectl 命令的工作目錄。


workingDirectory - 工作目錄
輸入別名: cwdstring. 選擇性。 使用 時機 command != login && command != logout 。 預設值:$(System.DefaultWorkingDirectory)

Kubectl 命令的工作目錄。


outputFormat - 輸出格式
string. 允許值:jsonyamlnone。 預設值:json

輸出格式。


outputFormat - 輸出格式
string. 允許值:jsonyaml。 預設值:json

輸出格式。


outputFormat - 輸出格式
string. 選擇性。 使用 時機 command != login && command != logout 。 允許值:jsonyaml。 預設值:json

輸出格式。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性

輸出變數

此工作會定義下列 輸出變數,您可以在下游步驟、作業和階段中取用這些變數。

KubectlOutput
儲存命令的 kubectl 輸出。

備註

1.0 版的新功能。

  • 已新增服務連線類型輸入,以便輕鬆選取 Azure AKS 叢集。
  • 將輸出變數輸入取代為我們在所有工作中新增的輸出變數區段。

使用此工作來執行 kubectl 命令來部署、設定或更新 Kubernetes 叢集。

服務連線

此工作適用于兩種服務連線類型:Azure Resource ManagerKubernetes Service 連線,如下所述。

Azure Resource Manager

設定 connectionTypeAzure Resource Manager ,並指定 azureSubscriptionEndpoint 使用 Azure Resource Manager服務連線。

此 YAML 範例示範如何使用 Azure Resource Manager 來參考 Kubernetes 叢集。 這是要與其中一個 kubectl 命令 和命令所需的適當值搭配使用。

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 Service 連線

將 設定 connectionTypeKubernetes Service Connection ,並指定要 kubernetesServiceEndpoint 使用 Kubernetes 服務連線的 。

此 YAML 範例示範如何使用 Kubernetes 服務連線來參考 Kubernetes 叢集。 這是要與其中一個 kubectl 命令 和命令所需的適當值搭配使用。

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

存取 AKS 時的 Kubernetes Service 連線考慮

您可以使用下列任何選項來建立 Kubernetes 服務連線。

  • KubeConfig
  • 服務帳戶
  • Azure 訂用帳戶

選擇 Kubernetes 服務連線驗證方法的螢幕擷取畫面。

選取 [Azure 訂 用帳戶] 選項時,Azure DevOps 必須在服務連線設定時間存取 Kubernetes。 可能會因為無法建立服務連線的各種原因,例如您 建立了私人叢集 ,或叢集 已停用本機帳戶。 在這些情況下,Azure DevOps 無法在服務連線設定時間連線到您的叢集,而且您會看到停滯的 [載入命名空間 ] 畫面。

選擇 Kubernetes 服務連線驗證對話方塊停滯于載入命名空間的螢幕擷取畫面。

從 Kubernetes 1.24 開始, 預設不會再建立長期保存的權杖。 Kubernetes 不建議使用長期保存的權杖。 因此,使用以 Azure 訂 用帳戶建立的 Kubernetes 服務連線工作無法存取驗證所需的永久權杖,而且無法存取 Kubernetes 叢集。 這也會導致凍結的 [載入命名空間 ] 對話方塊。

使用 Azure Resource Manager 服務連線來存取 AKS

對於 AKS 客戶,Azure Resource Manager服務連線類型提供連線到私人叢集的最佳方法,或已停用本機帳戶的叢集。 當您建立服務連線時,這個方法不相依于叢集連線。 AKS 的存取會延後至管線執行時間,其優點如下:

  • 您可以從可看見叢集的自我裝載或擴展集代理程式,存取 (私人) AKS 叢集。
  • 系統會針對使用 Azure Resource Manager 服務連線的每個工作建立權杖。 這可確保您使用短期權杖連線到 Kubernetes,這是 Kubernetes 建議
  • 即使停用本機帳戶,也可以存取 AKS。

服務連線常見問題

我收到下列錯誤訊息:找不到與服務帳戶相關聯的任何秘密。 這是為什麼?

您正在使用 Kubernetes 服務與 Azure 訂用帳戶連線選項。 我們正在更新這個方法來建立長期保存的權杖。 這預期會在 5 月中提供。 不過,建議您開始使用 Azure 服務連線類型,而不是根據 Kubernetes 指導方針使用長期權杖。

我使用的是 AKS,而不想變更任何專案,是否可以繼續搭配 Kubernetes 服務連線使用工作?

我們正在更新這個方法來建立長期保存的權杖。 這預期會在 5 月中提供。 不過,請注意,此方法是針對 Kubernetes 指導方針

我使用的是 Kubernetes 工作和 Kubernetes 服務連線,但不是 AKS。 我應該擔心嗎?

您工作會如往常一樣繼續運作。

是否會移除 Kubernetes 服務連線類型?

不論其執行位置為何,我們的 Kubernetes 工作都會與任何 Kubernetes 叢集搭配運作。 Kubernetes 服務連線會繼續存在。

我是 AKS 客戶,而且所有專案都正常執行,我該採取動作嗎?

不需要變更任何專案。 如果您在建立期間使用 Kubernetes 服務連線並選取了 Azure 訂用帳戶,您應該瞭解 使用長期權杖的 Kubernetes 指引

我正在建立 Kubernetes 環境,而且沒有選項可以使用服務連線

如果無法在環境建立期間存取 AKS,您可以使用空的環境,並將輸入設定 connectionType 為 Azure Resource Manager服務連線。

我已使用 Azure Active Directory RBAC 設定 AKS,而我的管線無法運作。 這些更新會解決此問題嗎?

啟用 AAD RBAC 時存取 Kubernetes 與權杖建立無關。 為了防止互動式提示,我們將在未來的更新中支援 kubelogin

命令

命令輸入接受 kubectl 命令

此 YAML 範例示範 apply 命令:

- 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

此 YAML 範例示範如何搭配 apply 命令使用組態檔:

- 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

此 YAML 範例示範如何使用 scale 命令,將部署中的複本數目減少為 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)

祕密

類型秘密的 Kubernetes 物件旨在保存機密資訊,例如密碼、OAuth 權杖和 ssh 金鑰。 將這項資訊放在秘密中比將它逐字放在 Pod 定義或 Docker 映射中更安全且更有彈性。 Azure Pipelines 可簡化服務帳戶的新增 ImagePullSecrets ,或設定任何一般密碼,如下所述。

ImagePullSecret

此 YAML 範例示範 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

一般秘密

此 YAML 範例會從針對 secretArguments 輸入指定的常值建立泛型秘密:

    - 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

管線變數可用來傳遞引數來指定常值,如下所示:

    - 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

ConfigMaps 可讓您將組態成品與映射內容分離,以維護容器化應用程式的可攜性。

此 YAML 範例會指向 ConfigMap 檔案來建立 ConfigMap:

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

此 YAML 範例會直接將常值指定為 configMapArguments 輸入,並將 forceUpdate 設定為 true 來建立 ConfigMap:

    - 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

您可以使用管線變數在建立 ConfigMap 時傳遞常值,如下所示:

    - 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)

疑難排解

我的 Kubernetes 叢集位於防火牆後方,而我使用的是託管的代理程式。 如何部署到此叢集?

您可以藉由允許託管代理程式的 IP 位址,授與託管的代理程式可透過防火牆存取。 如需詳細資訊,請參閱代理程式 IP 範圍

規格需求

需求 描述
管線類型 YAML、傳統組建、傳統版本
在 上執行 Agent、DeploymentGroup
要求
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任何
可設定變數 任何
代理程式版本 所有支援的代理程式版本。
工作類別 部署