38

我正在研究 Azure Kubernates,我们可以在 Azure 中存储 Docker 映像。在这里我试图检查我的 kubectl 版本,然后我得到

无法连接到服务器:dial tcp [::1]:8080: connectex: 由于目标机器主动拒绝,无法建立连接。

为此,我关注了 MSDN:uilding Microservices with AKS and VSTS – Part 2MSDOCS:Kubernetes on windows

那么,您能否建议我“如何解决此问题?”</p>

4

14 回答 14

33

我认为您可能错过了配置集群,因为您需要在命令提示符下运行以下命令。

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

上面的 CLI 命令在您的本地计算机中创建具有完整集群和节点详细信息的 .config 文件。

之后,您kubectl get nodes在命令提示符下运行命令,然后您可以获得集群内的节点列表,如下图所示。

在此处输入图像描述 请按照此部署 Azure Kubernetes 服务 (AKS) 群集作为参考。

于 2018-05-30T12:49:44.783 回答
15

如果您可以通过转到$HOME/.kube/config- Linux%UserProfile%/.kube/config- Windows看到您的配置文件已正确配置,但您仍然收到错误消息 - 请尝试以管理员身份运行命令行。

关于配置文件的更多信息可以在这里找到:https ://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

于 2019-04-30T09:43:28.747 回答
8

我在 Windows 10 上,对我来说,我没有启用 kubernetes。

正如您在此处看到的,没有可用的上下文。

docker-desktop Kubernetes 上下文

因此,请转到 docker 桌面的设置并按如下方式启用它。

docker-desktop 启用 kubernetes

现在运行如下命令。

kubectl config get-contexts

确保你看到这样的东西。

命令行上的 kubectl 上下文

您也可以尝试按如下方式列出节点。

kubectl get nodes

在此处输入图像描述

于 2021-08-08T13:45:34.050 回答
7

就我而言,我在az aks k8scluster 和 local之间来回切换docker-desktop

所以每次我更改集群上下文时,我都需要重新启动 docker,否则我会得到相同的描述错误。

Unable to connect to the server: dial tcp 127.0.0.1:6443: connectex: No connection could be made because the target machine actively refused it.

在此处输入图像描述

PS:确保您的集群已启动,如图所示(停止本地集群)

于 2020-06-15T17:58:57.280 回答
5

对我来说,这似乎是由于 Windows 没有设置 HOME 环境变量。根据文档kubectl将使用配置文件$(HOME)/.kube/config。但由于此变量未在 Window 上设置,因此无法找到该文件。

我创建了一个与 USERPROFILE 具有相同值的 HOME 变量,它开始工作。

于 2019-04-10T12:34:49.403 回答
4

我在本地 Windows 上使用 Hyper-V,我遇到了这个错误,因为我没有配置 minikube。

(我知道问题是关于 Azure,而不是 minikube。但是这篇文章在错误消息的顶部。所以,我把解决方案放在这里。)

1.启用Hyper-V。

systeminfo终端上输入。如果你能找到下面的行,

Hyper-V Requirements:     A hypervisor has been detected. Features required for Hyper-V will not be displayed.

Hyper-V 工作正常。

如果不能,请从设置中启用它。

2. 创建 Hyper-V 网络交换机

打开 Hyper-V 管理器。(搜索它是最快的方法。)

接下来,单击左侧的 PC 名称。

然后,您可以在右侧找到 Virtual Switch Manager 菜单。

单击它并选择名称为“Minikube Switch”的外部虚拟交换机

单击应用以创建它。

3.启动minikube

返回终端并输入:

minikube start --vm-driver hyperv --hyperv-virtual-switch "Minikube Switch"

有关更多信息,请查看本文中的步骤

于 2019-08-16T21:47:36.480 回答
4

检查 docker 是否正在运行,并且您启动了 minikube 或您使用的任何云 kube。运行“minikube start --driver=docker”后我的问题解决了

于 2020-07-14T13:42:23.970 回答
3

我在触发命令“kubectl get pods”时遇到了同样的错误

该问题已通过以下步骤解决:

a) 首先找出当前上下文

kubectl config get-contexts
CURRENT   NAME      CLUSTER   AUTHINFO   NAMESPACE

b)如果没有设置上下文,则使用手动设置它

kubectl config set-context <Your context>

希望这会帮助你。

于 2019-01-18T07:23:31.693 回答
2

本质上,如果您的 minikube 或 kind 未配置,则会出现此问题。只需尝试重新启动您的 minikube 或 kind。如果这不能解决您的问题,请尝试重新启动 minikube 使用的管理程序。

minikube start

这个命令解决了我的问题。

于 2021-01-28T15:31:31.263 回答
2

如果您在 Windows 上遇到此错误,则可能是您的 docker 实例未运行。

这些是我复制上述错误所遵循的步骤;

  1. 停止 docker,然后尝试启动 nginx 部署。这样做会导致发生上述错误。

在此处输入图像描述

我是怎么解决的?

  1. 在我的情况下检查 minikube 是否正在运行,这没有运行 在此处输入图像描述

  2. 启动 minikube 在此处输入图像描述

  3. 重试应用上面的配置。就我而言,请参阅下面的屏幕截图

在此处输入图像描述

  1. 当您看到您的部署已创建时,那么一切都应该没问题。
于 2021-11-04T22:10:05.163 回答
0

即使配置正确(通过运行 azure cli 命令),我也遇到了完全相同的问题。

似乎 kubectl 需要 HOME env.variable 集,但它对我来说并不存在。不过有一个解决办法:

如果您添加一个指向 config 的 KUBECONFIG 环境变量,它将开始工作。

例子:

setx KUBECONFIG %UserProfile%\.kube\config

当变量存在时,kubectl 从文件中读取没有问题。

PS它是另一个答案中建议的设置 HOME 变量的替代方法。

于 2019-09-12T14:16:16.633 回答
0

我遇到了类似的问题:

> kubectl cluster-info
"To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Unable to connect to the server: dial tcp xxx.x.x.x:8080: connectex: No connection could be made because the target machine actively refused it."

> kubectl cluster-info dump
Unable to connect to the server: dial tcp xxx.0.0.x:8080: connectex: No connection could be made because the target machine actively refused it.

在 Docker for Desktop 购买了它自己的 kubectl 副本之前,此设置运行良好。有两种方法可以克服这种情况:

1 - 使用集群时退出/停止 Docker for Desktop

2 - 设置 KUBECONFIG 文件路径

我尝试了这两种选择,它们都奏效了。

为 .kube/config 找到了一个很好的来源,将其发送到此处以供快速参考:

apiVersion: v1
clusters:
- cluster:
    certificate-authority: fake-ca-file
    server: https://1.2.3.4
  name: development
- cluster:
    insecure-skip-tls-verify: true
    server: https://5.6.7.8
  name: scratch
contexts:
- context:
    cluster: development
    namespace: frontend
    user: developer
  name: dev-frontend
- context:
    cluster: development
    namespace: storage
    user: developer
  name: dev-storage
- context:
    cluster: scratch
    namespace: default
    user: experimenter
  name: exp-scratch
current-context: ""
kind: Config
preferences: {}
users:
- name: developer
  user:
    client-certificate: fake-cert-file
    client-key: fake-key-file
- name: experimenter
  user:
    password: some-password
    username: exp

Reference: https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/
于 2020-08-26T09:47:33.797 回答
0

在@ilya-chernomordik 之后,我通过执行将我的配置路径添加到系统变量中

setx KUBECONFIG "D:\Minikube\Minikube.minikube\config"

我已将默认位置从 C:驱动器更改为 D:驱动器,因为我在 C 中的空间较小。

现在问题已解决。

编辑:5分钟后,api服务器再次停止。我试图解决这个问题已经超过 5-6 个小时。我不确定为什么会发生这个问题,即使添加了 coreect 路径。

于 2020-12-05T12:26:09.903 回答
0

Azure 自托管代理无权访问 Kubernetes 集群:

Remove Azure self-hosted agent -  .\config.cmd Remove
configure again ( .\config.cmd) with a user have permission to access Kubernates cluster
于 2021-01-06T11:57:43.083 回答