从零开始学Kubernetes-11.访问Dashboard

980 阅读2分钟

上一节我们将应用部署到了k8s集群中,这一节我们来了解一下Kubernetes为我们提供的Dashboard。    

除了kubectl命令行工具,我们还可以使用Web版的图形界面来探索k8s集群。Kubernetes提供的Dashboard使我们通过浏览器就能查看和管理集群中各种组件。

可以在Dashboard中查看Node、Pod、Service、Deployement等对象信息,也可以创建、修改、删除一些对象。

什么是Dashboard

Dashboard是一个基于web的Kubernetes用户界面。我们可以使用它进行如下操作:

  • 部署容器化的应用到Kubernetes集群
  • 诊断容器化的应用
  • 管理集群资源
  • 了解集群上运行的应用程序的概况
  • 创建或修改单独的Kubernetes资源(如Deployement、Jobs、DaemonSet等等)

比如,可以扩展部署、发起滚动更新、重启pod或使用部署向导部署新的应用程序。

访问Dashboard

由于我们的演示环境是通过minikube搭建的,因此执行如下命令:

minikube dashboard

因为我当前是在终端访问的远程服务器,所以不会自动打开默认浏览器。不要关闭这个窗口,也不要执行Ctrl+C结束。如果不想默认打开浏览器,也可以执行:

minikube dashboard --url

另开一个新窗口,执行:

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

发现返回了HTML内容,说明是能够访问的。

但是如果想在本地浏览器上访问Kubernetes的Dashboard的话,还需要启动一个代理服务。

执行:

kubectl proxy --port=8002 --address='0.0.0.0'

上面的命令可以使API Server监听在本地的8002端口上,如果不指定--port参数,默认是8001端口。

通过浏览器访问Dashboard,显示Forbidden:

可以通过添加--accept-hosts参数使API Server接收所有主机的请求:

kubectl proxy --port=8002 --address='0.0.0.0' --accept-hosts='^*$'

再次访问Dashboard:

使用HTTP代理访问Kubernetes API

在上面的介绍中,我们使用了kubectl proxy命令,它会启动Kubernetes API Server的一个代理服务。启动之后我们可以通过curl、wget或者浏览器来访问K8s的API。

获取API版本:

http://192.168.16.103:8002/api/

获取Pod列表:

http://192.168.16.103:8002/api/v1/namespaces/default/pods