kubernetes Helm任务将资源部署到AKS获取连接错误

qqrboqgw  于 12个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(146)

我正在使用Helm通过Azure DevOps升级AKS资源。但是当我部署Helm图表时,它显示以下错误:

Error: Kubernetes cluster unreachable: Get "https://aks.xxxxxxx.azmk8s.io:443/version": dial tcp 20.255.255.140:443; i/o timeout

字符串
YAML

steps:
...
- task: HelmDeploy@0
  displayName: 'helm upgrade'
  inputs:
    azureSubscription: xx
    azureResourceGroup: xx
    kubernetesCluster: xx
    useClusterAdmin: true
    namespace: prod
    command: upgrade
    chartName: 'AKS_Chart_Prod'
    releaseName: 'Prod_release'
    valueFile: myvals.yaml
    force: true


我们可以在本地机器上手动部署Helm Chart。
如何解决Azure Pipeline中的问题?

esbemjvw

esbemjvw1#

由于AKS群集是私有的,因此在使用Microsoft托管代理时,Helm任务无法直接访问AKS群集。
若要继续使用Microsoft托管的代理,您可以更改为使用Azure CLI来执行Helm升级操作。
举例来说:

az aks command invoke --resource-group myResourceGroup --name myPrivateCluster --command "helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update && helm install my-release bitnami/nginx"

字符串
参考此文档:Access a private Azure Kubernetes Service (AKS) cluster
通过Azure CLI,您可以使用命令调用来访问私有集群,而无需配置VPN或Express Route。命令调用允许您通过Azure API在私有集群上远程调用命令,如kubectl和helm,而无需直接连接到集群。
下面是Pipeline的例子:

steps:
- task: AzureCLI@2
  displayName: 'Azure CLI '
  inputs:
    azureSubscription: azure
    scriptType: ps
    scriptLocation: inlineScript
    inlineScript: 'az aks command invoke --resource-group myResourceGroup --name myPrivateCluster --command "helm upgrade --namespace xx --install --values /test.yaml xx"'


另一方面,您可以在本地计算机上创建自托管代理。
由于您可以在本地成功部署,因此自托管代理应该能够使用helm task直接访问私有AKS集群。

相关问题