【问题标题】:Access Kubernetes Dashboard on EC2 Remotely远程访问 EC2 上的 Kubernetes 仪表板
【发布时间】:2019-12-22 04:03:04
【问题描述】:
我在 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/
现在访问仪表板最简单的方法是什么?
我注意到有几个相关的问题,但似乎没有人真正回答。
非常感谢。
附:刚刚注意到仪表板日志中的一些错误。仪表板运行有问题?
【问题讨论】:
标签:
amazon-ec2
kubernetes
remote-access
dashboard
【解决方案1】:
您可以通过type:Loadbalancer 使用服务并使用loadBalancerSourceRanges: 来限制对您的仪表板的访问。
【解决方案2】:
您是否为服务帐户 kubernetes-dashboard 完成了 ClusterRoleBinding。如果没有,请应用以下 yaml 文件更改,以便 serviceaccount 获得 cluster-admin 角色来访问所有 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
【解决方案3】:
这取决于您用于连接 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 也很棒。