【问题标题】:Kubectl commands cannot be executed from another VM无法从另一个 VM 执行 Kubectl 命令
【发布时间】:2022-01-27 19:00:00
【问题描述】:

执行“kubectl”命令时遇到问题。事实上,我的集群由一个 Master 和一个 Worker 节点组成。 kubectl 命令可以从主服务器执行而不会出现问题。但是,我还有另一个 VM,我使用该 VM 作为跳转服务器来登录主节点和工作节点。我需要从该 Jump 服务器执行 kubectl 命令。我创建了 .kube 目录,并将 kubeconfig 文件从 Master 节点复制到 Jump 服务器。而且我也正确设置了上下文。但是 kubectl 命令在从 Jump 服务器执行时会挂起,并且会出现超时错误。

以下是信息。

kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://10.240.0.30:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

ubuntu@ansible:~$ kubectl config use-context kubernetes-admin@kubernetes
Switched to context "kubernetes-admin@kubernetes".

ubuntu@ansible:~$ kubectl get pods
Unable to connect to the server: dial tcp 10.240.0.30:6443: i/o timeout

ubuntu@ansible:~$ kubectl config current-context
kubernetes-admin@kubernetes

对我来说一切似乎都很好,我想知道为什么从 Jump 服务器执行 wxecuting 时 kubectl 命令会挂起。

【问题讨论】:

  • 你有没有在 jumpserver 上设置代理 ``` echo $http_proxy && echo $https_proxy``` .
  • 跳机能ping通10.240.0.30吗?它可以连接(例如telnet)到6443吗?
  • @confusedgenius,我执行了你分享的命令。它不提供任何输出。这意味着它没有任何代理集。
  • @DazWilkin,从 Jump VM,我也无法远程登录到主节点。 telnet 10.240.0.30:6443 telnet:无法解析 10.240.0.30:6443/telnet:名称或服务未知
  • Master节点6443端口没有关闭?如果关闭,从 Master 节点本身,我应该无法执行 kubectl 命令吧?

标签: kubernetes kubectl


【解决方案1】:

通过执行以下命令验证 Jump VM 是否可以远程登录到 Kubernetes 主节点来解决问题。

telnet <ip-address-of-the-kubernetes-master-node> 6443

由于错误是 “连接超时”,我不得不向 Kubernetes 主节点添加防火墙规则。添加如下防火墙规则。 注意:就我而言,我使用的是 GCP。

gcloud compute firewall-rules create allow-kubernetes-apiserver \
  --allow tcp:22,tcp:6443,icmp \
  --network kubernetes \
  --source-ranges 0.0.0.0/0

然后我可以毫无问题地远程登录到主节点。如果还是无法连接到Master节点,请将.kube目录下的kubconfig文件中的Internal IP改为Master节点的公网IP。

然后使用以下命令更改上下文。

kubectl config set-context <context-name>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    相关资源
    最近更新 更多