如何访问远程机器上的 Kubernetes 仪表板

How can I acces the Kubernetes Dashboard on a remote Machine

我是 kubernetes 的新手,我正在尝试在远程服务器上设置一个 clsuter。 为此,我使用 microk8s 和来自 hetzner-cloud (https://www.hetzner.com/de/cloud) 的服务器。

我使用 ssh 进入服务器并按照 linux(https://microk8s.io/) 的 microk8s 安装说明进行操作。这一切似乎工作正常。我现在的问题是我还没有找到访问 kubernetes-dashboard 的方法。

我已尝试使用 NodePort 和 microk8s kubectl proxy --disable-filter = true 解决方法,但它不起作用,出于安全原因不推荐使用。使用禁用过滤方法可以访问登录页面,但它没有响应。

我还尝试使用 ssh 隧道和本教程从外部访问仪表板:How can I remotely access kubernetes dashboard with token

隧道似乎可以正常工作,但我仍然无法访问端口。

现在我有两个主要问题:

1: 如果 kubernetes 不希望您从外部访问仪表板,您通常如何使用 kubernetes。因为您 运行 您的服务通常不在您客厅以外的租用服务器上吗?我根本不明白有什么意义?

2:如何访问仪表板?

如果有人能帮助我,我会很高兴。一个月以来,我已经在为这个问题而苦苦挣扎。 :)

最诚挚的问候, 妈妈

为了使用 HTTP 从外部访问 K8s 服务,您应该配置和使用入口控制器。

在入口 运行 之后,您将能够指定“路径”或路由以及指向您的服务的端口和名称。

完成后,您应该可以访问控制面板

示例配置(

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: dashboard-google
  namespace: kube-system
  annotations:
    nginx.ingress.kubernetes.io/secure-backends: "true"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
  tls:
    - hosts:
      - kube.mydomain.com
      secretName: tls-secret
  rules:
    - host: kube.mydomain.com
      http:
        paths:
        - path: /
          backend:
            serviceName: kubernetes-dashboard
            servicePort: 443