无法连接到服务器:拨打tcp [:: 1]:8080:connectex:无法建立连接,因为目标计算机主动拒绝它

时间:2018-05-23 14:19:49

标签: powershell azure azure-cli azure-container-service azure-kubernetes

我在Azure Kubernates工作,我们可以在Azure中存储Docker镜像。这里我试图检查我的kubectl版本,然后得到“

  

无法连接到服务器:拨打tcp [:: 1]:8080:connectex:否   可以建立连接,因为目标机器主动拒绝   它

“为此我跟着Link1 Link2

那么,请你建议我“如何解决这个问题?”

13 个答案:

答案 0 :(得分:5)

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

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

上面的CLI命令创建.config文件,其中包含本地计算机中的完整群集和节点详细信息。

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

enter image description here 有关参考,请参阅此Deploy an Azure Kubernetes Service (AKS) cluster

答案 1 :(得分:2)

在我的情况下,我在az aks k8s集群和本地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.

enter image description here

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

答案 2 :(得分:1)

我在本地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正常工作。

如果不能,enable it from settings.

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

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

下一步,单击左侧的PC名称。

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

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

单击“应用”创建它。

3。启动minikube

返回终端并输入:

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

有关更多信息,请check the steps in this article

答案 3 :(得分:0)

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

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

a)首先找出当前上下文

kubectl config get-contexts
CURRENT   NAME      CLUSTER   AUTHINFO   NAMESPACE

b)如果未设置上下文,则使用手动设置

kubectl config set-context <Your context>

希望这会对您有所帮助。

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

有关配置文件的更多信息,请参见:https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

答案 6 :(得分:0)

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

似乎kubectl需要HOME env.variable集,但对我而言不存在。但是,有一个解决方案:

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

示例:

setx KUBECONFIG %UserProfile%\.kube\config

当存在变量时,kubectl可以轻松地从文件读取。

P.S。可以按照其他答案中的建议设置HOME变量。

答案 7 :(得分:0)

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

答案 8 :(得分: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/

答案 9 :(得分:0)

@ ilya-chernomordik之后, 我已将配置路径添加到系统变量中

setx KUBECONFIG“ D:\ Minikube \ Minikube.minikube \ config”

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

现在问题已解决。

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

答案 10 :(得分:0)

Azure 自托管代理没有访问 Kubernates 集群的权限:

Remove Azure self-hosted agent -  .\config.cmd Remove
configure again ( .\config.cmd) with a user have permission to access Kubernates cluster

答案 11 :(得分:0)

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

minikube start

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

答案 12 :(得分:0)

我使用的是 Windows 10,而我没有启用 kubernetes。

如您所见,没有可用的上下文。

docker-desktop kubernetes context

进入docker桌面的设置,如下启用。

docker-desktop enable kubernetes

现在运行如下命令。

kubectl config get-contexts

确保您看到类似的内容。

kubectl contexts on command line

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

kubectl get nodes

enter image description here