微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

K8s Bare Metal Cluster Kubernetes Dashboard 远程启动代理和访问

如何解决K8s Bare Metal Cluster Kubernetes Dashboard 远程启动代理和访问

我有一个 15 个节点的 kubernetes 集群在裸机上运行。 我连接到“Computer1”以通过 kubectl 从集群外部管理我的集群(我更改了配置)。

laptop -->(通过 ssh) --> Computer1(不是集群的一部分) -->(使用 kubectl) --> | kubernetes 集群 |

我部署了 grafana 和 prometheus 进行监控。为了访问仪表板,我使用了使用守护进程集的 nginx-ingress 控制器。我添加了入口规则,它工作正常。我可以从“Computer1”打开网络浏览器 - 使用远程桌面并查看 grafana 或 prometheus。

另外我想添加 kubernetes-dashboard。我安装了 Recommendation.yaml 文件并检查了 kubernetes-dashboard 命名空间。一切看起来都不错。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

但是要启动/访问 kubernetes-dashboard,我需要在“Computer1”上运行以下命令

kubectl proxy

我会得到类似的信息:“开始在 127.0.0.1:8001 上提供服务” localhost/127.0.0.1:8001 在没有任何桌面/网络浏览器的“Computer1”上提供服务。 由于我通过 ssh 连接到集群外的计算机,因此我无法打开仪表板。 如果我这样做:

curl http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

我明白

...
<head>
  <Meta charset="utf-8">
  <title>Kubernetes Dashboard</title>
  <link rel="icon" type="image/png" href="assets/images/kubernetes-logo.png"/>
  <Meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="styles.aa1f928b22a88c391404.css"></head>
...

--> 所以仪表板正在运行,但我无法访问它,因为我从我的笔记本电脑(通过 ssh)连接到 kubernetes 集群之外的一台计算机来管理它。

我可以设置 ingress 或 kubectl 代理,以便我可以通过笔记本电脑上的网络浏览器访问它吗?

这是我用于入口的代码

apiVersion: networking.k8s.io/v1
kind: Ingress
Metadata:
  name: dashboard-ingress
  namespace: kubernetes-dashboard
  annotations:
    Nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: somehostname
    http:
      paths:
        - pathType: Prefix
          path: /
          backend:
            service:
              name: kubernetes-dashboard
              port:
                number: 443

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。