Azure自托管代理kubernetes任务失败

blpfk2vs  于 2023-03-13  发布在  Kubernetes
关注(0)|答案(1)|浏览(201)

我使用的是使用VMSS的Azure自托管代理,在代理上运行Kubernetes@1任务时,它返回此错误couldn't get current server API group list: Get "https://<aks>.hcp.westeurope.azmk8s.io/api?timeout=32s": dial tcp: lookup <aks>.hcp.westeurope.azmk8s.io on 127.0.0.53:53: no such host。AKS不是专用的,并且此安装程序在Azure提供的代理上运行时正常工作。我尝试运行的任务如下所示:

steps:
  - task: Kubernetes@1
    displayName: "Rollout <deployment-name>"
    inputs:
      connectionType: "Kubernetes Service Connection"
      kubernetesServiceEndpoint: <serviceEndpoint>
      namespace: <namespace>
      command: "rollout"
      arguments: "restart deployment <deployment-name>"

代理正在Ubuntu 20.04 LTS上运行。
使用AzureCLI@2任务获取凭据并执行kubectl命令确实有效,但这不是最佳解决方案,我希望使用Kubernetes@1任务。以下是AzureCLI@2任务的工作示例:

steps:
 - task: AzureCLI@2
    inputs:
      azureSubscription: $(azureSubscription)
      scriptType: bash
      scriptLocation: inlineScript
      inlineScript: |
        az aks get-credentials --resource-group <resource-group> --name <aks-name>
        kubectl rollout -n <namespace> restart deployment <deployment-name>

编辑:

  • 我正在使用服务帐户,而不是kube配置文件。
  • 我有一个预装kubectl命令的自定义映像。
nkoocmlb

nkoocmlb1#

我已经按照下面给出的步骤操作,而且效果很好。
步骤1:创建VMSS并通过连接到VMSS安装kubectl。在VMSS上运行以下命令以安装kubectl。

$curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
$sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

有关安装kubectl的详细信息,请参阅此链接。

**第2步:**在ADO组织中添加VMSS作为自托管代理。

步骤3:我已经使用kube配置文件创建了服务连接

步骤4:通过选择在步骤2中创建的池运行管道,并验证结果。

- task: Kubernetes@1
    displayName: "Rollout nginx-deployment"
    inputs:
      connectionType: 'Kubernetes Service Connection'
      kubernetesServiceEndpoint: 'svc-aks'
      namespace: 'default'
      command: 'rollout'
      arguments: 'restart deployment nginx-deployment'
      secretType: 'dockerRegistry'
      containerRegistryType: 'Container Registry'

相关问题