You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AKS集群重建后kubeconfig失效,流水线kubectl执行失败如何恢复?

解决AKS重建后kubectl流水线连接失败的问题

嘿,我看到你遇到了AKS集群销毁重建后,流水线里kubectl命令连不上新集群的问题。从你贴的日志和配置来看,问题出在流水线依赖的Kubernetes服务端点还拿着旧集群的kubeconfig信息——旧集群销毁后,那个mq-k8s-dfee38f6.hcp.switzerlandnorth.azmk8s.io域名已经失效了,自然解析不到。下面是一步步帮你恢复到干净状态的方法:

一、先搞定核心问题:更新Azure DevOps的服务连接

你的流水线里用了固定的kubernetesServiceEndpoint: "82e5971b-9ac6-42c6-ac43-211d2f6b60e4"服务连接,这个连接里存的是旧集群的API地址和认证信息,现在必须更新它:

  • 打开你的Azure DevOps项目,进入项目设置 > 服务连接
  • 找到ID是82e5971b-9ac6-42c6-ac43-211d2f6b60e4的那个Kubernetes连接
  • 点编辑,选择「从Azure订阅中选择集群」,重新绑定你用Terraform刚建好的AKS集群
  • 保存之后,下次流水线运行就会自动获取新集群的kubeconfig了

二、如果更新后还不行,清理缓存(针对自托管代理)

如果你用的是自己托管的流水线代理,可能残留了旧的临时kubeconfig文件:

  • 日志里能看到旧kubeconfig存在D:\a\_temp\kubectlTask\1607504932712\config,找到这个目录把旧文件删掉就行
  • 要是用的微软托管代理就不用管了,每次运行都是全新环境,临时文件会自动重置

三、验证Terraform的AKS集群是否正常

先确保你新建的AKS集群本身没问题:

  • 打开Cloud Shell,运行az aks get-credentials --resource-group <你的资源组名> --name <AKS集群名>,然后用kubectl get nodes测试能不能连上
  • 确认新集群的FQDN是有效的,ping一下看看能不能解析通

四、日志里的错误说明

2020-12-09T09:08:54.1555570Z Unable to connect to the server: dial tcp: lookup mq-k8s-dfee38f6.hcp.switzerlandnorth.azmk8s.io: no such host

这个错误直接点破了问题:kubectl用的kubeconfig里的API服务器域名已经不存在了(旧集群被销毁),必须把kubeconfig里的地址换成新集群的。

五、进阶方案:让流水线动态获取kubeconfig

如果你的集群经常需要销毁重建,建议不要依赖固定的服务连接,改成动态获取:

  • 在kubectl任务前面加一个Azure CLI任务,执行az aks get-credentials --resource-group <资源组> --name <AKS集群名>
  • 这样每次运行流水线都会拉取最新的kubeconfig,再也不会出现旧地址失效的问题

最后附上你提供的流水线任务配置(格式化后):

"workflowTasks": [
 {
  "environment": {},
  "taskId": "cbc316a2-586f-4def-be79-488a1f503564",
  "version": "0.*",
  "name": "kubectl apply",
  "refName": "",
  "enabled": true,
  "alwaysRun": false,
  "continueOnError": false,
  "timeoutInMinutes": 0,
  "definitionType": null,
  "overrideInputs": {},
  "condition": "succeeded()",
  "inputs": {
   "kubernetesServiceEndpoint": "82e5971b-9ac6-42c6-ac43-211d2f6b60e4",
   "namespace": "",
   "command": "apply",
   "useConfigurationFile": "false",
   "configuration": "",
   "arguments": "-f $(System.DefaultWorkingDirectory)/medquality-cordapp/k8s",
   "secretType": "dockerRegistry",
   "secretArguments": "",
   "containerRegistryType": "Azure Container Registry",
   "dockerRegistryEndpoint": "",
   "azureSubscriptionEndpoint": "",
   "azureContainerRegistry": "",
   "secretName": "",
   "forceUpdate": "true",
   "configMapName": "",
   "forceUpdateConfigMap": "false",
   "useConfigMapFile": "false",
   "configMapFile": "",
   "configMapArguments": "",
   "versionOrLocation": "version",
   "versionSpec": "1.7.0",
   "checkLatest": "false",
   "specifyLocation": "",
   "cwd": "$(System.DefaultWorkingDirectory)",
   "outputFormat": "json",
   "kubectlOutput": ""
  }
 }
]

内容的提问来源于stack exchange,提问作者1174

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:58:14