我在Azure Kubernates工作,我们可以在Azure中存储Docker镜像。这里我试图检查我的kubectl版本,然后得到“
无法连接到服务器:拨打tcp [:: 1]:8080:connectex:否 可以建立连接,因为目标机器主动拒绝 它
那么,请你建议我“如何解决这个问题?”
答案 0 :(得分:5)
我认为您可能错过了配置群集,因为您需要在命令提示符下运行以下命令。
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
上面的CLI命令创建.config文件,其中包含本地计算机中的完整群集和节点详细信息。
之后,在命令提示符下运行kubectl get nodes
命令,然后就可以获得集群内的节点列表,如下图所示。
答案 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.
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正常工作。
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)