在Oracle Cloud中的Compute实例上访问Kubernetes仪表板

时间:2018-08-04 09:02:20

标签: kubernetes oracle-cloud-infrastructure

我已经将kubernetes和仪表板部署到Oracle云中的一个计算实例上。

我将带有grafana的仪表板安装到我的计算实例上。

NAME                                       READY     STATUS    RESTARTS   AGE
po/etcd-mst-instance1                      1/1       Running   0          1h
po/heapster-7856f6b566-rkfx5               1/1       Running   0          1h
po/kube-apiserver-mst-instance1            1/1       Running   0          1h
po/kube-controller-manager-mst-instance1   1/1       Running   0          1h
po/kube-dns-d879d6bcb-b9zjf                3/3       Running   0          1h
po/kube-flannel-ds-lgklw                   1/1       Running   0          1h
po/kube-proxy-g6vxm                        1/1       Running   0          1h
po/kube-scheduler-mst-instance1            1/1       Running   0          1h
po/kubernetes-dashboard-dd5c889c-6vphq     1/1       Running   0          1h
po/monitoring-grafana-5d4d76cd65-p7n5l     1/1       Running   0          1h
po/monitoring-influxdb-787479f6fd-8qkg2    1/1       Running   0          1h

NAME                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
svc/heapster               ClusterIP   10.98.200.184    <none>        80/TCP          1h
svc/kube-dns               ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP   1h
svc/kubernetes-dashboard   ClusterIP   10.107.155.3     <none>        443/TCP         1h
svc/monitoring-grafana     ClusterIP   10.96.130.226    <none>        80/TCP          1h
svc/monitoring-influxdb    ClusterIP   10.105.163.213   <none>        8086/TCP        1h 

我正在尝试通过SSH访问仪表板,并在本地计算机上执行了以下操作:

ssh -L localhost:8001:172.31.4.117:6443 opc@xxxxxxxx

但是,它告诉我这个错误:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

我不确定访问仪表板的最佳方法是什么。我是k8s的新手,并且仍处于初级阶段,因此想请教一下,因为我也尝试在本地计算机上执行kubectl代理,但是当我尝试访问127.0.0.1时,会出现此错误:

I0804 17:01:28.902675   77193 logs.go:41] http: proxy error: dial tcp [::1]:8080: connect: connection refused

真的很感谢您的帮助,谢谢您

1 个答案:

答案 0 :(得分:1)

Kubernetes包含一个web dashboard,可用于基本管理操作。

在您的Kubernetes群集上安装了仪表板之后,就可以通过几种不同的方式对其进行访问。

我更喜欢从命令行使用kubectl proxy来访问Kubernetes仪表板。

Kubectl为您效劳:使用API​​服务器进行身份验证并在两个服务器之间转发流量 您的集群(内部部署了仪表板)和Web浏览器。 请注意,kubectl是针对本地运行的网络浏览器执行的,因为它正在 一个本地主机。

从命令行:

kubectl proxy

接下来,开始浏览该地址:

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

如果Kubernetes API server被公开并可以访问,则可以尝试:

https://<master-ip>:<apiserver-port>/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

其中master-ip是运行API的Kubernetes主节点的IP地址。

在单节点设置上,另一种方法是使用NodePort配置来访问仪表板。

我在仪表板Wiki上找到了它:

以下是要考虑并适应您的需求的配置示例:

apiVersion: v1
...
  name: kubernetes-dashboard
  namespace: kube-system
  resourceVersion: "343478"
  selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard-head
spec:
  clusterIP: <your-cluster-ip>
  externalTrafficPolicy: Cluster
  ports:
  - port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: NodePort

应用配置后,使用以下命令检查https的公开端口:

kubectl -n kube-system get service kubernetes-dashboard

如果返回例如31707,则可以使用以下命令启动浏览器:

https://<master-ip>:31707

我受到web ui dashboard guideaccessing dashboard wiki的启发。