【问题标题】:Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused错误:Kubernetes 集群无法访问:获取“http://localhost:8080/version?timeout=32s”:拨打 tcp 127.0.0.1:8080:连接:连接被拒绝
【发布时间】:2020-11-13 21:48:08
【问题描述】:

我正在尝试将我的应用程序部署到 Rancher 管理的 kubernetes 集群 RKE。我在 gitlab 中使用 auto devops 创建了管道。但是当掌舵图试图部署时,我得到了这个错误。 错误:Kubernetes 集群无法访问:Get "http://localhost:8080/version?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection denied

下面是我的部署脚本:

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

谁能帮我解决这个问题

【问题讨论】:

  • 你在 Gitlab autodevops setup 中提供的 api url 是什么?
  • 听起来它不知道如何连接到你的 RKE 集群
  • 您好,您是否在 Rico 的评论的帮助下解决了您的问题?
  • 我已经通过在 gitlab 项目设置中添加 api url,集群的令牌来配置与 RKE 集群的集成..不确定还需要配置什么。仍然遇到同样的错误
  • 在部署脚本显式添加环境变量后问题得到解决。感谢您的帮助

标签: kubernetes kubernetes-helm rancher-rke


【解决方案1】:

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

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

【讨论】:

  • 在我的情况下,更改 KUBECONFIG 还不够,我不得不卸载并重新安装 K3s
  • 在 debian 10 上与 k3s 一起工作。很棒!
  • 和答案类似,在k3s上要安装helm chart的情况下,helm命令要用--kubeconfig参数,指定k3s配置的位置
【解决方案2】:

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

[microk8s] kubectl config view --raw > ~/.kube/config

【讨论】:

  • 我得到这个错误 -sh: 45: cannot create /home/smartdev/.kube/config: Directory nonexistent
  • 谢谢,这适用于带有 microk8s 的 Ubuntu 21.04 希望简单的解释......
  • 谢谢。 k3s 用户在这里。对于那些想知道的人,这对我有用,因为我没有文件~/.kube/config。这个答案创建了它,内容为kubectl config view --raw。如果你已经有这个文件,可能是别的东西
【解决方案3】:

这里有一些很好的答案,说明了如何解决问题。以下是 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。

【讨论】:

    【解决方案4】:

    更新头盔

    helm repo update

    检查

    kubectl get all

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-26
      • 2020-11-22
      • 2011-07-26
      • 2022-01-23
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多