从远程客户端访问kubernetes web ui

问题描述 投票:0回答:3

我在Ubuntu服务器上运行了一个集群。我通过端口80/443在集群中运行的服务器上提供Web内容。我只通过ssh访问服务器本身,所以根本没有图形界面。

现在我想访问该群集的kubernetes web ui。在研究过程中,我发现有消息称,每次远程访问访问web ui不建议用于prod环境。这些指南只是使用kubectl proxy将仪表板暴露给localhost。

是否有解决方案或或多或少的常用方法来访问服务器上运行的集群的仪表板?

kubernetes kubernetes-dashboard
3个回答
0
投票

kubectl proxy工作得很好。否则,您还可以将kubernetes-dashboard更改为loadbalancer / nodeport并通过它访问群集。

如果您正在使用负载均衡器并且您使用的是AWS或Azure等云提供商,则可以设置安全组以允许在某些特定的IP范围内进行访问。

但是,我会说大多数时候kubectl proxy都足够好。


0
投票

如果您想通过外部IP地址访问仪表板,则可以编辑仪表板服务,如果您有外部LB提供程序(如GCP或AWS),则可以将类型更改为LoadBalancer。要做到这一点编辑kubernetes-dashboard服务。

# kubectl -n kube-system edit service kubernetes-dashboard

您应该看到服务的yaml表示。更改类型:ClusterIP键入:LoadBalancer并保存文件。如果已经更改,请转到下一步。

# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
...
  name: kubernetes-dashboard
  namespace: kube-system
  resourceVersion: "343478"
  selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard-head
  uid: 8e48f478-993d-11e7-87e0-901b0e532516
spec:
  clusterIP: 10.100.124.90
  externalTrafficPolicy: Cluster
  ports:
  - port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: ClusterIP # <-- Change to LoadBalancer
status:
  loadBalancer: {}

然后运行以下命令以查看Kubernetes Dashboard服务的外部IP地址

# kubectl -n kube-system get service kubernetes-dashboard
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)         AGE
kubernetes-dashboard   LoadBalancer   10.23.252.164   <external-ip>   443:31720/TCP   26d

然后浏览https://<external-ip>以查看Web UI

您还可以将服务公开为NodePort,以通过子网访问WEB UI


0
投票

2件事; 1.要直接使用浏览器(本地机器)访问,k8s群集必须在同一网络域中。 2.如果您不在第1项,请使用Windows RDP访问它并使用浏览器。

© www.soinside.com 2019 - 2024. All rights reserved.