k8s多节点仪表盘(web界面)部署,和谷歌浏览器访问问题解决

    科技2026-09-22  22

    文章目录

    实验环境:推荐步骤:

    实验环境:

    基于之前搭建好的多节点集群继续操作(多节点的布置可以参考之前的博客)

    推荐步骤:

    1.在master上操作,创建dashborad工作目录,将dashboard的ymal文件放到目录下

    [root@master ~]# cd k8s/ [root@master k8s]# mkdir dashboard

    这边也可以在官网下载

    https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard

    ########dashboard服务的5个重要文件###########

    dashboard-configmap.yaml:dashboard的配置文件 dashboard-rbac.yaml:K8S的授权管理 dashboard-service.yaml:dashboard核心功能模块服务文件 dashboard-controller.yaml:dashboard构建部署资源的ym文件 dashboard-secret.yaml:证书验证

    2.按照顺序利用文件格式创建资源;-f:引入文件,以文件形式构建资源 创建资源有两种方式:

    1.利用文件格式创建:Kubectl create -f yaml文件2.apply创建资源:Kubectl apply -f yaml文件,但是资源重新部署,更新用apply [root@master dashboard]# kubectl create -f dashboard-rbac.yaml ##第一先创建k8s的授权管理 role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created [root@master dashboard]# kubectl create -f dashboard-secret.yaml ##第二创建证书验证 secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-key-holder created [root@master dashboard]# kubectl create -f dashboard-configmap.yaml ##第三创建dashboard的配置文件 configmap/kubernetes-dashboard-settings created [root@master dashboard]# kubectl create -f dashboard-controller.yaml ##第四创建dashboard构建部署资源的ym文件 serviceaccount/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created [root@master dashboard]# kubectl create -f dashboard-service.yaml ##最后创建dashboard核心文件(服务) service/kubernetes-dashboard created

    3.完成后查看创建在指定的kube-system命名空间下;-n:指命名空间

    [root@master dashboard]# kubectl get pods -n kube-system

    4.查看如何访问,同时查看pod和命名空间,中间用逗号隔开

    [root@master dashboard]# kubectl get pods,svc -n kube-system -o wide ##svc:service的缩写

    30001是https443的映射端口,供外部访问使用 5.这时打开谷歌浏览器输入https://192.168.148.140:30001/访问页面 报错原因:是谷歌浏览器的证书原因 解决方法:1.可以尝试换个浏览器访问;2.自己制作访问证书

    一.这边先尝试第一种解决方法:换个火狐浏览器访问 1.先配置生成令牌

    [root@master dashboard]# vim k8s-admin.yaml ##编辑创建令牌的yaml文件 apiVersion: v1 kind: ServiceAccount ##资源类型 metadata: name: dashboard-admin namespace: kube-system ##资源的命名空间 --- kind: ClusterRoleBinding ##clusterRole资源绑定 apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: dashboard-admin ##资源名称 subjects: - kind: ServiceAccount name: dashboard-admin namespace: kube-system ##资源命名空间 roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io [root@master dashboard]# kubectl apply -f k8s-admin.yaml ##创建令牌 serviceaccount/dashboard-admin created clusterrolebinding.rbac.authorization.k8s.io/dashboard-admin created

    2.查看令牌

    [root@master dashboard]# kubectl get secret -n kube-system NAME TYPE DATA AGE dashboard-admin-token-dvtnn kubernetes.io/service-account-token 3 4m56s default-token-bpgzq kubernetes.io/service-account-token 3 8h kubernetes-dashboard-certs Opaque 0 152m kubernetes-dashboard-key-holder Opaque 2 152m kubernetes-dashboard-token-ltkzl kubernetes.io/service-account-token 3 150m [root@master dashboard]# kubectl describe secret dashboard-admin-token-dvtnn -n kube-system ##查看令牌详细信息

    3.我们打开虚拟机的火狐浏览器访问 二.选择第二种谷歌浏览器无法访问的解决方法:dashboard制作证书的方式

    [root@master dashboard]# vim dashboard-cert.sh ##创建制作证书的脚本 cat > dashboard-csr.json <<EOF { "CN": "Dashboard", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "BeiJing", "ST": "BeiJing" } ] } EOF K8S_CA=$1 cfssl gencert -ca=$K8S_CA/ca.pem -ca-key=$K8S_CA/ca-key.pem -config=$K8S_CA/ca-config.json -profile=kubernetes dashboard-csr.json | cfssljson -bare dashboard ##页面的访问生成证书 kubectl delete secret kubernetes-dashboard-certs -n kube-system ##将原有生成的资源删除 kubectl create secret generic kubernetes-dashboard-certs --from-file=./ -n kube-system ##基于证书创建新的资源

    增加证书两行

    [root@master dashboard]# vim dashboard-controller.yaml ##修改dashboard构建部署资源的ym文件,添加证书两行 ........ args: # PLATFORM-SPECIFIC ARGS HERE - --auto-generate-certificates - --tls-key-file=dashboard-key.pem ##添加服务的密钥文件 - --tls-cert-file=dashboard.pem ##添加服务证书 [root@master dashboard]# bash dashboard-cert.sh /root/k8s/k8s-cert/ ##运行证书脚本

    重新部署

    [root@master dashboard]# kubectl apply -f dashboard-controller.yaml serviceaccount/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created

    Processed: 0.016, SQL: 9