19

我正在尝试将我的应用程序部署到 Rancher 管理的 kubernetes 集群 RKE 中。我在 gitlab 中使用 auto devops 创建了管道。但是当掌舵图试图部署时,我得到了这个错误。 错误:Kubernetes 集群无法访问:获取“http://localhost:8080/version?timeout=32s”:拨打 tcp 127.0.0.1:8080:连接:连接被拒绝

下面是我的部署脚本:

deploy:
  stage: deploy
  image: cdrx/rancher-gitlab-deploy
  only:
    - master
  script:
    - apk --no-cache add curl
    - curl -L https://get.helm.sh/helm-v3.3.0-rc.1-linux-amd64.tar.gz > helm.tar.gz
    - tar -zxvf helm.tar.gz
    - mv linux-amd64/helm /usr/local/bin/helm
    - helm install mychart ./mychart

有人可以帮我解决这个问题吗

4

4 回答 4

32

在 K3s 上安装牧场主时,我遇到了同样的问题,设置 KUBECONFIG 有帮助。

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
于 2021-01-16T22:31:44.197 回答
13

这个anwser为我解决了这个问题。如果你不是像我一样在 microk8s 上运行,请省略前缀

[microk8s] kubectl config view --raw > ~/.kube/config
于 2021-02-10T09:06:29.187 回答
0

这里有一些很好的答案,指定了如何解决问题。这是 O'Reilly 优秀著作“Learning Helm”中的一段话,可以深入了解为什么会发生这种错误:

“使用 Kubernetes 集群 Helm 直接与 Kubernetes API 服务器交互。因此,Helm 需要能够连接到 Kubernetes 集群。Helm 尝试通过读取 kubectl 使用的相同配置文件(主要 Kubernetes 命令线客户端)。

Helm 将尝试通过读取环境变量 $KUBECONFIG 来查找此信息。如果未设置,它将查找 kubectl 查找的默认位置(例如,UNIX、Linux 和 macOS 上的 $HOME/.kube/config)。

您还可以使用环境变量 (HELM_KUBECONTEXT) 和命令行标志 (--kube-context) 覆盖这些设置。您可以通过运行 helm help 查看环境变量和标志列表。Helm 维护人员建议使用 kubectl 来管理您的 Kubernetes 凭据,并让 Helm 仅自动检测这些设置。如果您还没有安装 kubectl,最好从 Kubernetes 官方安装文档入手。”

-Matt Butcher、Matt Farina 和 Josh Dolitsky (O'Reilly) 的学习 Helm。版权所有 2021 Matt Butcher、Innovating Tomorrow 和 Blood Orange,电话:978-1-492-08365-8。

于 2021-10-31T01:11:56.993 回答
-1

更新掌舵

helm repo update

查看

kubectl get all

于 2021-11-08T14:33:48.650 回答