Gitlab安装的Helm:错误:超出了上下文截止时间

问题描述 投票:1回答:1

我在AWS中使用Kops安装了Kubernetes集群。我已经使用Gitlab UI安装了Helm Tiller。 Tiller服务似乎是通过Gitlab工作的,例如我从Gitlab UI安装了Ingress。

但是当我尝试从CLI使用相同的Tiller时,我无法让它运行起来。当我helm init它说它已经安装(这完全有道理):

helm init --tiller-namespace gitlab-managed-apps --service-account tiller
$HELM_HOME has been configured at C:\Users\danie\.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
Happy Helming!

但是,当尝试列出图表时,需要5分钟,然后超时:

$ helm list --tiller-namespace gitlab-managed-apps --debug
[debug] Created tunnel using local port: '60471'

[debug] SERVER: "127.0.0.1:60471"

Error: context deadline exceeded

我缺少什么,所以我可以使用我的CLI中安装Gitlab的Tiller?

kubernetes gitlab kubernetes-helm kops
1个回答
1
投票

您是否确定您的Tiller服务器安装在“gitlab-managed-apps”命名空间中?默认情况下,它根据GitLab网站上的官方installation指令安装到'kube-system',这意味着这会导致你的helm ls命令失败(只是跳过它)

验证它的最佳方法是:

kubectl get deploy/tiller-deploy -n gitlab-managed-apps

您是否在该命名空间中看到任何与分蘖相关的部署对象?

假设您可以使用当前的kube上下文操作KOPS集群,那么在本地运行helm客户端应该没有问题。您始终可以使用helm命令显式使用--kube-context参数。

更新:

我想我知道是什么导致了你的问题,Helm在通过GitLab UI安装时使用了helm和tiller之间的安全连接(SSL)(证明here)。

知道这一点,这意味着你应该从Tiller Pod上安装的Secret对象中检索一组证书:

#The CA
ca.cert.pem
ca.key.pem
#The Helm client files
helm.cert.pem
helm.key.pem
#The Tiller server files
tiller.cert.pem
tiller.key.pem

然后使用以下命令将helm客户端连接到分蘖服务器,如here所述:

helm ls --tls --tls-ca-cert ca.cert.pem --tls-cert helm.cert.pem --tls-key helm.key.pem
© www.soinside.com 2019 - 2024. All rights reserved.