Dan*_*mos 5 gitlab kubernetes kops kubernetes-helm
我在 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!
Run Code Online (Sandbox Code Playgroud)
但是,例如,当尝试列出图表时,它需要 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
Run Code Online (Sandbox Code Playgroud)
我缺少什么所以我可以从我的 CLI 使用 Gitlab 安装的 Tiller?
您确定您的 Tiller 服务器安装在“gitlab-management-apps”命名空间中吗?默认情况下,它按照 GitLab 网站上的官方安装说明安装到“kube-system”,这意味着这就是导致helm ls
命令失败的原因(只需跳过它)
验证它的最佳方法是通过:
kubectl get deploy/tiller-deploy -n gitlab-managed-apps
Run Code Online (Sandbox Code Playgroud)
您在该命名空间中看到任何与tiler相关的部署对象吗?
假设您可以使用当前 kube 上下文操作 KOPS 集群,那么在本地运行 helm 客户端应该没有问题。您始终可以通过 helm 命令显式使用--kube-context
参数。
更新:
我想我知道是什么原因导致了你的问题,当通过 GitLab UI 安装 Helm 时,Helm 和 Tiller 之间使用安全连接(SSL)(这里证明)。
知道了这一点,这意味着您应该从安装在 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
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令将 helm 客户端连接到tiller 服务器,如下所述:
helm ls --tls --tls-ca-cert ca.cert.pem --tls-cert helm.cert.pem --tls-key helm.key.pem
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3415 次 |
最近记录: |