Kubernetes UI 无法访问

sig*_*ami 5 dashboard kubernetes

我按照指南在 Fedora 主节点上配置 Kubernetes,一切正常,但是当我选择 UI 时,我什么都没有,无法按照指南中的描述进行安装,所以我创建了

{
  "kind": "Namespace",
  "apiVersion": "v1",
  "metadata": {
    "name": "kube-system"
  }
}
Run Code Online (Sandbox Code Playgroud)

并安装为

 kubectl create -f https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml --namespace=kube-system
Run Code Online (Sandbox Code Playgroud)

安装得很好,但现在当我去

https://<my-ip>:8080/ui
Run Code Online (Sandbox Code Playgroud)

我明白了

{
  "paths": [
    "/api",
    "/api/v1",
    "/apis",
    "/apis/autoscaling",
    "/apis/autoscaling/v1",
    "/apis/batch",
    "/apis/batch/v1",
    "/apis/extensions",
    "/apis/extensions/v1beta1",
    "/healthz",
    "/healthz/ping",
    "/logs/",
    "/metrics",
    "/resetMetrics",
    "/swaggerapi/",
    "/version"
  ]
}
Run Code Online (Sandbox Code Playgroud)

并尝试使用

http://<my-ip>:8080/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard
Run Code Online (Sandbox Code Playgroud)

用于访问和获取

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {},
  "status": "Failure",
  "message": "no endpoints available for service \"kubernetes-dashboard\"",
  "reason": "ServiceUnavailable",
  "code": 503
}
Run Code Online (Sandbox Code Playgroud)

并且不知道如何解决它。有什么建议么?

更新1 确认插件已安装

root@fed-master ~]# kubectl get deployment kubernetes-dashboard --namespace=kube-system
NAME                   DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kubernetes-dashboard   1         0         0            0           2h
[root@fed-master ~]# kubectl get svc kubernetes-dashboard --namespace=kube-system
NAME                   CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
kubernetes-dashboard   10.254.154.193   nodes         80/TCP    2h
Run Code Online (Sandbox Code Playgroud)

更新2

kubectl --namespace=kube-system get ep kubernetes-dashboard
Run Code Online (Sandbox Code Playgroud)

给出

NAME                   ENDPOINTS   AGE
kubernetes-dashboard   <none>      4h
Run Code Online (Sandbox Code Playgroud)

那么现在的问题是,我该如何自己设置端点呢?

chr*_*hrk 0

我对 Kubernetes 很陌生,但我只是在本地虚拟机集群中使用了仪表板,所以我将分享我最近的经验,以防万一它有帮助。

我像你一样安装了它,使用

kubectl create -f https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml
Run Code Online (Sandbox Code Playgroud)

这给了我这个输出:

deployment "kubernetes-dashboard" created
You have exposed your service on an external port on all nodes in your
cluster.  If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:32548) to serve traffic.

See http://releases.k8s.io/release-1.2/docs/user-guide/services-firewalls.md for more details.
service "kubernetes-dashboard" created
Run Code Online (Sandbox Code Playgroud)

因此,我使用主服务器的 IP 地址和输出中指定的端口通过浏览器访问它,例如:

http://<kube-master-IP>:<port>
Run Code Online (Sandbox Code Playgroud)

就我而言,它是:

http://172.17.4.101:32548
Run Code Online (Sandbox Code Playgroud)

不过,我是在我的机器上完成的,因此,正如上面的输出中所述,请注意:

如果您想将此服务公开给外部 Internet,您可能需要为服务端口 (tcp:32548)设置防火墙规则以提供流量。