本文记录了在本地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

四、访问效果

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐