0

从云 shell 调用的 Helm install 上周工作,但现在无论使用 bash 还是 powershell,它都会返回

错误:找不到分蘖

上周,我能够按照 Microsoft 文章 Create an HTTPS ingress controller on Azure Kubernetes Service (AKS) 创建一个入口控制器

现在,当我进入 helm install 步骤时,我得到了标题中指示的错误。要重新创建此问题:

  • 从 powershell 云外壳中卸载 clouddrive
  • 使用 Azure 门户删除 Azure 存储中的 cloudshell 文件共享。
  • 使用提供的默认值使用高级网络创建一个 2 节点“B2s”Kubernetes 服务。
  • 使用 bash 或 Powershell 打开 Cloud Shell。
  • 执行az aks get-credentials并提供 AKS 群集的名称。
  • kubectl create namespace ingress-basic
  • helm repo 添加稳定的 https://kubernetes-charts.storage.googleapis.com/
  • 上面的命令将警告您需要执行 helm init。
  • 执行az aks list以获取 AKS 群集的 servicePrincipalProfile:clientId
  • 使用上面命令的 clientId 为 service-account 参数执行helm init --service-account
  • 使用 Microsoft Docs 中的参数执行 helm install在 Azure Kubernetes 服务 (AKS) 上创建 HTTPS 入口控制器

此时你应该得到标题中提到的错误。关于我可能遗漏的任何建议。

4

3 回答 3

0

对,我认为您需要在 Kubernetes 中实际创建一个服务帐户才能使其正常工作,示例代码:

kubectl -n kube-system create serviceaccount tiller

kubectl create clusterrolebinding tiller \
  --clusterrole=cluster-admin \
  --serviceaccount=kube-system:tiller

helm init --service-account tiller

# Users in China: You will need to specify a specific tiller-image in order to initialize tiller. 
# The list of tiller image tags are available here: https://dev.aliyun.com/detail.html?spm=5176.1972343.2.18.ErFNgC&repoId=62085. 
# When initializing tiller, you'll need to pass in --tiller-image

helm init --service-account tiller \
--tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:<tag>

https://rancher.com/docs/rancher/v2.x/en/installation/options/helm2/helm-init/

而您尝试使用 Azure 服务主体而不是 Kubernetes 服务帐户。它们不是同一件事。

于 2020-02-20T18:59:37.287 回答
0

确定两个项目。

  1. 没有安装分蘖。在 2020 年 2 月 14 日,我能够使用 helm 安装入口控制器。但是在 2/18 上,由于上​​述错误,我无法在图表上执行 helm install --dry-run。无论如何,按照本文档在 Azure Kubernetes 服务 (AKS) 中使用 Helm 安装应用程序后,我正确安装了 Tiller。
  2. 正确安装 Tiller 后,入口控制器的 helm install 命令在 Azure Kubernetes 服务 (AKS) 上创建 HTTPS 入口控制器失败,并出现未找到图表错误。

我修改了命令

helm install nginx stable/nginx-ingress \

helm install stable/nginx-ingress \

并且图表现在正在正确部署。我现在回到了 2 月 14 日的位置。感谢大家的帮助。

于 2020-02-21T17:37:23.370 回答
0

OK 收到了来自 Microsoft 技术支持的以下信函,通知我 Azure Cloud Shell 存在问题。我今天早上做了一个 Helm 版本,现在看看

version.BuildInfo{Version:"v3.1.1", GitCommit:"afe70585407b420d0097d07b21c47dc511525ac8", GitTreeState:"clean", GoVersion:"go1.13.8"}

我在 2/14 上没有看到。所以我看起来我并没有疯,微软已经解决了这个问题。根据她的信,图表名称的问题也应该得到解决。

嗨,布赖恩,感谢您的更新。对于给您带来的不便,我们深表歉意。构建云 shell 映像的脚本中存在错误。Helm 发布的 2.16.3 比 3.1 更晚,并且构建脚本将其选为“最新”版本,从而导致意外降级。由于helm v3不需要tiller pod,所以使用helm v2时找不到tiller pod。helm 版本将在下一个版本中重新升级。正如您所确认的,与此问题相关的查询已得到解决,因此我将在此时继续存档您的案例。请记住,对这种情况的支持并不止于此。如果您在遇到问题时需要进一步的帮助,可以联系我,我将继续与您合作。以下是案件要点摘要,供您记录。问题定义:Helm 安装错误:找不到分蘖。解决方案/建议总结:您可以参考以下文档来配置 helm V2: https://docs.microsoft.com/en-us/azure/aks/kubernetes-helm#install-an-application-with-helm-v2。或者,您也可以使用以下命令将 helm 升级到版本 3 作为解决方法: curl https://aka.ms/cloud-shell-helm3 | 重击。命令 'helm version' 可用于验证您已安装的 Helm 版本。

此外,helm 3 的语法与 helm 2 不同。helm v3 的语法是“helm install [NAME] [CHART] [flags]”,而 hem v2 的语法是“helm install [CHART] [flags]”。因此,如果您使用的是 helm v2,则需要在 install 一词之后删除 nginx 一词。您可以参考以下文档了解更多信息: https ://docs.microsoft.com/en-us/azure/aks/kubernetes-helm#install-an-application-with-helm-v2

很高兴与您一起处理此服务请求。如果我能提供进一步的帮助,请随时与我联系。非常感谢您对 Microsoft Azure 的支持。祝你今天过得愉快!

于 2020-02-24T16:02:09.357 回答