首页 > 解决方案 > 添加代理后 Kubectl 命令不起作用

问题描述

我在 unbuntu 18.04 上安装了 docker 版本 20.10.8 的 Kubenetes 部署(版本:1.19.14)。

我能够安装它并且工作正常。由于某种原因,主机上的互联网连接丢失,并且在一些发现中我发现代理设置已被删除。当我添加代理时,互联网连接开始工作,但奇怪的是我不能再给 kubernetes kubectl 命令了。

在导出代理后尝试 kubectl 命令时,弹出以下错误:

无法连接到服务器:net/http:请求在等待连接时取消(Client.Timeout 在等待标头时执行)

我们以以下方式导出代理:

导出 http_proxy=http://proxy.example.com:80

导出 https_proxy=$http_proxy

我搜索并被建议在某个地方通过 http-proxy.conf 使代理持久化并重新加载守护进程:

sudo systemctl daemon-reload

sudo systemctl 重启 docker

即使这样做了,kubectl 命令也不起作用。

请让我知道如何解决此问题。

标签: dockerkubernetesproxyipvirtual-machine

解决方案


Kubectl 只是一个与 Kubernetes 控制平面的 api-server 通信的 CLI。首先,您需要确保 api-server 正在运行且健康,并且这不是问题的根源。

当 Kubectl 不工作时,您可以使用工具 crictl 调试 pod。如果您使用 Docker,它将直接进入底层容器运行时,该运行时将被容器化。


推荐阅读