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 Manager
、Kubernetes Service Connection
、None
。 預設值: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 Manager
、Kubernetes Service Connection
、None
。 預設值: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
. 允許的值: apply
、 create
delete
、 get
login
expose
exec
logs
run
logout
、、 set
、 。 top
選取或指定要執行的 kubectl 命令。 允許的值清單提供一些常見的選擇,以便在使用工作助理時輕鬆選取,但您可以指定其他kubectl 命令,例如 scale
。 arguments
使用輸入來指定指定 kubectl
命令的其他參數。
command
- 命令
string
. 必要。 允許的值: apply
、 create
delete
、 get
login
expose
exec
logs
run
logout
、、 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
時為必要。 允許值:dockerRegistry
和 generic
。 預設值: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 Registry
和 Container 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
. 允許的值: version
、 location
(指定位置) 。 預設值:version
。
kubectl 是針對 Kubernetes 叢集執行命令的命令列介面。
versionOrLocation
- Kubectl
string
. 選擇性。 使用 時 command != login && command != logout
。 允許的值: version
、 location
(指定位置) 。 預設值:version
。
kubectl 是針對 Kubernetes 叢集執行命令的命令列介面。
versionSpec
- 版本規格
string
. 選擇性。 使用 時 versionOrLocation = version
。 預設值:1.13.2
。
指定要取得之版本的版本規格。 範例: 1.7.0
、、 4.x.0
1.x.0
、 6.10.0
、 >=6.10.0
。
versionSpec
- 版本規格
string
. 選擇性。 使用 時 versionOrLocation = version && command != login && command != logout
。 預設值:1.7.0
。
-18-2 指定要取得的版本規格。 範例: 1.7.0
、、 4.x.0
1.x.0
、 6.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
- 工作目錄
輸入別名: cwd
。 string
. 預設值:$(System.DefaultWorkingDirectory)
。
Kubectl 命令的工作目錄。
workingDirectory
- 工作目錄
輸入別名: cwd
。 string
. 選擇性。 使用 時機 command != login && command != logout
。 預設值:$(System.DefaultWorkingDirectory)
。
Kubectl 命令的工作目錄。
outputFormat
- 輸出格式
string
. 允許值:json
、yaml
、none
。 預設值:json
。
輸出格式。
outputFormat
- 輸出格式
string
. 允許值:json
和 yaml
。 預設值:json
。
輸出格式。
outputFormat
- 輸出格式
string
. 選擇性。 使用 時機 command != login && command != logout
。 允許值:json
和 yaml
。 預設值:json
。
輸出格式。
工作控制選項
除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性。
輸出變數
此工作會定義下列 輸出變數,您可以在下游步驟、作業和階段中取用這些變數。
KubectlOutput
儲存命令的 kubectl
輸出。
備註
1.0 版的新功能。
- 已新增服務連線類型輸入,以便輕鬆選取 Azure AKS 叢集。
- 將輸出變數輸入取代為我們在所有工作中新增的輸出變數區段。
使用此工作來執行 kubectl 命令來部署、設定或更新 Kubernetes 叢集。
服務連線
此工作適用于兩種服務連線類型:Azure Resource Manager和Kubernetes Service 連線,如下所述。
Azure Resource Manager
設定 connectionType
為 Azure 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 連線
將 設定 connectionType
為 Kubernetes 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 訂用帳戶
選取 [Azure 訂 用帳戶] 選項時,Azure DevOps 必須在服務連線設定時間存取 Kubernetes。 可能會因為無法建立服務連線的各種原因,例如您 建立了私人叢集 ,或叢集 已停用本機帳戶。 在這些情況下,Azure DevOps 無法在服務連線設定時間連線到您的叢集,而且您會看到停滯的 [載入命名空間 ] 畫面。
從 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 | 此工作不符合作業中後續工作的任何需求。 |
命令限制 | 任何 |
可設定變數 | 任何 |
代理程式版本 | 所有支援的代理程式版本。 |
工作類別 | 部署 |