我通过以下链接在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/
现在访问仪表板最简单的方法是什么?
我注意到有几个相关问题,但似乎没有人真正回答。
非常感谢。
P.S。刚注意到Dashboard日志中有一些错误。仪表板运行出现问题吗?
答案 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也很棒。