【问题标题】:Kubernetes install fails on ACSACS 上的 Kubernetes 安装失败
【发布时间】:2017-05-17 09:48:20
【问题描述】:

我正在尝试通过 ACS 部署 Kubernetes。部署工作完美,但一旦我尝试使用 kubectl 代理连接到集群,它就会失败。 每个 kubectl 命令都会失败。

我通过 SSH 连接到服务器,发现只启动了一个容器。即使使用 -a,也看不到其他人。

有人知道为什么会这样吗?

【问题讨论】:

  • 有时会发生这种情况,我建议从头开始重新安装集群。
  • 我已经尝试了 3 次,但每次都不起作用。
  • 你是如何部署的?
  • 通过带有 ACS 的 Azure 门户。我通过 powershell 预先创建服务主体
  • ARM 模板还是只是新的资源向导?我几乎没有看到它使用门户失败。你说没有错误?

标签: azure containers kubernetes


【解决方案1】:

根据您的描述,您似乎没有正确配置了服务主体。
您可能需要检查以确保提供的凭据准确无误,并且配置的服务主体对目标订阅具有读写权限。
如果您的服务主体配置错误,则任何 Kubernetes 组件都不会以健康的方式出现。我们可以检查一下是否是这个问题:

root@k8s-master-D9DE702A-0:~# journalctl -u kubelet | grep --text autorest

如果您看到如下所示的输出,则表示您没有正确配置服务主体。

May 18 07:09:36 k8s-master-D9DE702A-0 docker[5534]: E0518 07:09:36.901937    5920 kubelet.go:1186] Cannot get Node info: failed to get external ID from cloud provider: autorest#WithErrorUnlessStatusCode: POST https://login.microsoftonline.com/1fcf418e-66ed-4c99-9449-d8e18bf8737a/oauth2/token?api-version=1.0 failed with 400 Bad Request: StatusCode=400
May 18 07:09:37 k8s-master-D9DE702A-0 docker[5534]: E0518 07:09:37.119646    5920 kubelet_node_status.go:70] Unable to construct api.Node object for kubelet: failed to get external ID from cloud provider: autorest#WithErrorUnlessStatusCode: POST https://login.microsoftonline.com/1fcf418e-66ed-4c99-9449-d8e18bf8737a/oauth2/token?api-version=1.0 failed with 400 Bad Request: StatusCode=400

有关如何为 ACS-Engin Kubernetes 集群创建/配置服务主体的更多信息,请参阅此Azure CLI 2.0PowerShell

我们可以使用CLI 2.0来获取ACS的信息,clientId就是服务主体。

C:\Users>az acs show -g k8s -n containerservice-k8s
{
  "agentPoolProfiles": [
    {
.
.
.
.

  },
  "provisioningState": "Succeeded",
  "resourceGroup": "k8s",
  "servicePrincipalProfile": {
    "clientId": "1498b171-xxxx-xxxx-xxxx-8ef56a178b89",
    "secret": null
  },
  "tags": null,
  "type": "Microsoft.ContainerService/ContainerServices",
  "windowsProfile": null
}

我们可以使用 PowerShell 来获取服务主体:

PS C:\Users> Get-AzureRmADServicePrincipal | ?{ $_.ApplicationId -eq "1498b171-xxxx-xxxx-xxxx-8ef56a178b89" } | fl *


ServicePrincipalNames : {http://azure-cli-2017-04-13-08-16-07, 1498b171-xxxx-xxxx-xxxx-8ef56a178b89}
ApplicationId         : 1498b171-xxxx-xxxx-xxxx-8ef56a178b89
DisplayName           : azure-cli-2017-04-13-08-16-07
Id                    : d86886b9-xxxx-xxxx-xxxx-25ab57803a33
Type                  : ServicePrincipal

【讨论】:

  • 嘿,我设法通过 Azure CLI 创建集群来修复它。并让它自己生成SP。不过,感谢您的出色回应!
猜你喜欢
  • 2021-01-28
  • 2022-06-16
  • 2019-04-13
  • 2020-03-02
  • 1970-01-01
  • 2019-03-14
  • 1970-01-01
  • 2017-08-27
  • 2021-04-28
相关资源
最近更新 更多