搭建k8s Dashboard
新建一个文件夹:
1 | mkdir /usr/local/kubernetes/dashboard |
拉取yaml文件
1 | # wget https://github.com/kubernetes/dashboard/blob/master/aio/deploy/recommended.yaml |
解决国内K8S镜像拉取慢:
1 | 1. |
编辑配置文件:
1 |
|
报错: The Service “kubernetes-dashboard” is invalid: spec.ports[0].nodePort: Invalid value: 30001: the provided range does not
match the current range
是因为端口范围的原因,
修改 vi /etc/kubernetes/manifests/kube-apiserver.yaml
1 | ... |
查看是否运行成功
1 | kubectl create -f recommended.yaml |
登录dashboard,创建token dashboard
创建一个dashboard-adminuser.yaml, 认证与授权服务器
1 | cat <<EOF | kubectl apply -f - |
1 | apiVersion: v1 |
拿到token
1 | kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}" |
浏览器打开: https://192.168.79.180:30001/
删除TOKEN
1 | kubectl -n kubernetes-dashboard delete serviceaccount admin-user |
使用config来登录
配置对多集群的访问
假设用户有两个集群,一个用于正式开发工作,一个用于其它临时用途(scratch)。 在 development 集群中,前端开发者在名为 frontend 的名字空间下工作, 存储开发者在名为 storage 的名字空间下工作。 在 scratch 集群中, 开发人员可能在默认名字空间下工作,也可能视情况创建附加的名字空间。 访问开发集群需要通过证书进行认证。 访问其它临时用途的集群需要通过用户名和密码进行认证。
创建名为 config-exercise 的目录。 在 config-exercise 目录中,创建名为 config-demo 的文件,其内容为:
1 | apiVersion: v1 |
配置文件描述了集群、用户名和上下文。config-demo 文件中含有描述两个集群、 两个用户和三个上下文的框架。
进入 config-exercise 目录。输入以下命令,将群集详细信息添加到配置文件中:
1 | kubectl config --kubeconfig=config-demo set-cluster development --server=https://1.2.3.4 --certificate-authority=fake-ca-file |
将用户详细信息添加到配置文件中:
1 | kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefile |
注意:
- 要删除用户,可以运行 kubectl –kubeconfig=config-demo config unset users.
- 要删除集群,可以运行 kubectl –kubeconfig=config-demo config unset clusters.
- 要删除上下文,可以运行 kubectl –kubeconfig=config-demo config unset contexts.
将上下文详细信息添加到配置文件中:
1 | kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer |
打开 config-demo 文件查看添加的详细信息。 也可以使用 config view 命令进行查看:
1 | kubectl config --kubeconfig=config-demo view |
简化版 参考
创建一个 test 用户
1 | kubectl create ns test |
创建ServiceAccount test-service-account.yaml
1 | apiVersion: v1 |
然后创建自定义角色分配 Namespace 权限 test-role-binding-custom.yaml
1 | #role |
创建 test-cluster-role-binding.yaml 用于解决登录 Dashboard 不能选择 Namespace 问题
1 | kind: RoleBinding |
创建role
1 | kubectl apply -f test-service-account.yaml |
查看token
1 | kubectl get secret -n test |grep test-service-account |
创建test的conf文件
1 | kubectl config set-cluster kubernetes --server=192.168.79.180:6444 --kubeconfig=/usr/local/kubernetes/dashboard/dashbord-test.conf |
把dashbord-test.conf 拷贝到本机,然后使用kubeconfig登录
如果报错:services is forbidden: User “system:anonymous” cannot list resource “services” in API group “” in the namespace “default”
给匿名用户授权即可解决,测试环境可用此快速解决
1 | kubectl create clusterrolebinding test:anonymous --clusterrole=cluster-admin --user=system:anonymous |
另外一种解决办法
1 | # 删除原先配置 |
- 本文作者: MISAKIGA
- 本文链接: https://misakiga.github.io/2021/04/01/k8s/搭建K8S_dashboard/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
