0

我在虚拟机上有一个由 kubeadm v1.8.4 制成的 K8s 集群。现在我想从我的笔记本电脑/工作站使用 rest API 访问这个 K8s 集群。

我能够做到这一点的一种方法是运行此命令“kubectl proxy --address= --accept-hosts '.*'”。但我必须手动运行此命令才能从笔记本电脑访问我的集群和我不想要那个。

在浏览文档时,我发现还有另一个可用的代理,即apiserver 代理。我正在尝试按照此链接使用这种方式(https://kubernetes.io/docs/tasks/access-application-cluster/access- cluster/#manually-constructing-apiserver-proxy-urls)但在邮递员中收到错误“无法获得任何响应”。

所以我想知道我是否正确使用了这个 apiserver 代理。或者有没有其他方法可以通过我的笔记本电脑向 VM 上的集群发送 REST 请求,而无需手动点击“kubectl proxy”命令?

4

1 回答 1

0

kube 代理为您做的基本上是两件事。

首先,很明显,它将您的流量从 localhost 端口代理到 kubernetes api。

其次,它还针对集群对您进行身份验证,以便所有代理调用都不需要身份验证信息。

要直接访问 API,只需将客户端指向 VM 的正确 IP:PORT,但是……您需要忽略(不建议)tls 问题或信任 kube CA 证书。此外,您仍然需要对其进行身份验证,因此您需要使用适当的客户端凭据(即不记名令牌)。

Manually constructing apiserver proxy指的是另一种野兽,它允许您通过访问 kube API 服务器中的特定路径将流量代理到部署在 kubernetes 集群中的服务。因此,要使用它,您需要已经可以访问 API。

于 2018-01-15T12:09:20.987 回答