K8S在Kind中安装DashBoard
本文记录了在本地Kind环境中,添加k8s的dashboard,前提是首先使用kind构建一个k8s环境,在此不再详细解释了,假设目前已经有了k8s环境。
·
本文记录了在本地Kind环境中,添加k8s的dashboard,前提是首先使用kind构建一个k8s环境,在此不再详细解释了,假设目前已经有了k8s环境。
dashboard-github地址:https://github.com/kubernetes/dashboard
一、下载相关的yaml文件
(1)recommend.yaml
curl -O https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
该文件下载完成后,对service部分进行修改,使用NodePort类型,暴露访问端口,如下:
注意在创建k8s集群时,也要暴露节点(容器)对应30001的端口。
(2) service-account-secret.yaml
# 在kubernetes-dashboard命名空间下创建名为 admin-user 的服务账户
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
# 将服务账户admin-user绑定到内置的ClusterRole集群角色cluster-admin上, 实现授权
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
---
# 对名为admin-user的服务账户手动创建Secret
apiVersion: v1
kind: Secret
metadata:
name: admin-user-secret
namespace: kubernetes-dashboard
annotations:
kubernetes.io/service-account.name: admin-user
type: kubernetes.io/service-account-token
二、部署服务
执行如下的命令
[kind]# kubectl apply -f recommend.yaml
[kind]# kubectl apply -f service-account-secret.yaml
执行完成后,会创建kubernetes-dashboard的namespace
至此服务方面就已经部署完成了,但发现在浏览器进行访问30001端口时,由于https的问题,无法正常显示登录页面。
三、使用OpenSSL生成证书,并替换默认的secret
(1)生成openssl证书
# 制作私钥证书
# 使用rsa算法2048位生成key
openssl genrsa -out server.key 2048
# 制作公钥证书
# 使用key生成crt
openssl req -new -x509 -days 3650 -key server.key -out server.crt
# 将key和crt转换为pem
# 将key转换为pem
openssl rsa -in server.key -out server-key.pem
# 将crt转换为pem
openssl x509 -in server.crt -out server.pem
(2)替换默认的secret
# 删除默认的secret
[kind]# kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard
# 用自签证书创建新的secret
[kind]# kubectl create secret generic kubernetes-dashboard-certs \
--from-file=./server-key.pem --from-file=./server.pem -n kubernetes-dashboard
同时需要修改recommend.yaml文件:
重新执行:
[kind]# kubectl apply -f recommend.yaml
(3)获取token
[kind]# kubectl -n kubernetes-dashboard create token admin-user
四、访问效果
更多推荐
已为社区贡献1条内容
所有评论(0)