远程访问EC2上的Kubernetes仪表板

时间:2019-08-15 18:18:13

标签: amazon-ec2 kubernetes remote-access dashboard

我通过以下链接在EC2中设置了一个K8s集群并启动了kubernetes仪表板:

这是我运行的命令:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

kubectl proxy --address 0.0.0.0 --accept-hosts '.*'

当我为EC2实例的安全性组中设置一些IP时,我假设只有那些IP可以访问仪表板,因此不必担心此处的安全性。

当我尝试使用以下方式访问仪表板时:

http://<My_IP>:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

error-msg

现在访问仪表板最简单的方法是什么?

我注意到有几个相关问题,但似乎没有人真正回答。

非常感谢。

P.S。刚注意到Dashboard日志中有一些错误。仪表板运行出现问题吗?

Dashboard Log Error

3 个答案:

答案 0 :(得分:0)

您可以将服务与type: Loadbalancer一起使用,并使用loadBalancerSourceRanges:来限制对仪表板的访问。

答案 1 :(得分:0)

您是否已经为serviceaccount kubernetes-dashboard完成了ClusterRoleBinding?如果没有,请应用以下yaml文件更改,以便serviceaccount将具有群集管理员角色,以访问所有kubernetes资源。

   apiVersion: rbac.authorization.k8s.io/v1beta1
   kind: ClusterRoleBinding
   metadata:
      name: kubernetes-dashboard
      labels:
           k8s-app: kubernetes-dashboard
   roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
   subjects:
   -  kind: ServiceAccount
      name: kubernetes-dashboard
      namespace: kube-system

答案 2 :(得分:0)

这取决于您用来连接到kube-apiserver的ServiceAccount或用户。如果您想访问而无需查找策略的详细信息,而实际上是访问所有内容,则您的RBAC文件可以类似于以下内容:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: my-cluster-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: <your-user-from-your-~/.kube/config>

比传递命令:

kubectl apply -f <filename>

第二种方法:

kubectl create clusterrolebinding my-cluster-admin --clusterrole=cluster-admin --user=<your-user-from-your-~/.kube/config>

您也可以在“用户”字段中使用“组”或“服务帐户”。查找有关RBAC授权here的官方文档。

如果您想逐步了解它,我发现tutorial也很棒。