通过 HTTP 而不是 HTTPS 访问 Kubernetes 仪表板

通过 HTTP 而不是 HTTPS 访问 Kubernetes 仪表板

问题

如何启用 HTTP 请求?我有一个主 Web 服务器,它是一个代理,可将 HTTP 请求发送到 MicroK8S 服务器,但由于 HTTP 错误而无法发送。

使用的安装命令:

sudo snap install microk8s --classic --channel=1.23/stable

基础设施

Self-Hosted on a virtual machine locally

问题

我使用以下命令设置了一个 MicroK8S 服务器:microk8s enable dashboard dns registry istio

我也编辑了仪表板服务(用 nodeport 替换 clusterip)

kubernetes-dashboard 服务

在此处输入图片描述

在此处输入图片描述

结果

我可以通过访问服务器的 https://IP:30051/ 导航到 kubernetes-dashboard(是的,使用 SSL 的请求有效)。但是,如果我尝试使用 HTTP 而不是 HTTPS,我会收到以下错误消息。

Client sent an HTTP request to an HTTPS server.

答案1

在 Slack 中回答,默认插件没有通过,--insecure-bind-address因此不安全的端口只能在本地主机上访问:https://github.com/kubernetes/kubernetes/blob/b5103f61175a10d6b066eeb3ef603263f9b61bd4/cluster/addons/dashboard/dashboard.yaml#L195-L196

您可以在此处找到记录的所有选项:https://github.com/kubernetes/dashboard/blob/1148f7ba9f9eadd719e53fa3bc8bde5b7cfdb395/docs/common/dashboard-arguments.md#arguments

如果您添加--insecure-bind-address=0.0.0.0CLI 选项并将服务切换到端口 9090,那么您可以改用 HTTP。

但也不要这样做,这是一个糟糕且不安全的想法。

相关内容