一、准备工作

1.1 安装或关闭以下服务

关闭防火墙等

linux时间校对

docker安装

二进制安装K8S集群-上

二进制安装K8S集群-下

K8S命令补全

1.2 本次安装环境

配置信息说明
master IP地址192.168.1.10
linux系统版本CentOS7.4
内核ml-3.10.0
K8S版本1.23.4

二、安装

2.1 下载

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml 

2.2 修改配置文件

vim recommended.yaml 
spec:
  type: NodePort    #新增,NodePort在集群中的主机节点上为Service提供一个代理端口,以允许从主机网络上对Service进行访问
  ports:
      - port: 443
        targetPort: 8443
        nodePort: 32232       #指定访问端口

2.3 安装

kubectl apply -f recommended.yaml  
kubectl get pods -A      #查看运行状态
NAMESPACE              NAME                                         READY   STATUS             RESTARTS         AGE
kubernetes-dashboard   dashboard-metrics-scraper-799d786dbf-d97vr   1/1     Running            0                3m2s
kubernetes-dashboard   kubernetes-dashboard-674846bfb9-5lr4m        1/1     Running            0                3m2s
kubectl get svc -n kubernetes-dashboard          #查看暴露端口
NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.0.105.149   <none>        8000/TCP        11s
kubernetes-dashboard        NodePort    10.0.201.219   <none>        443:32232/TCP   11s

三、登录访问

3.1 访问

https://192.168.1.10:32232 #IP地址+yaml上指定端口
在这里插入图片描述

3.2 获取token

kubectl get secret -n kubernetes-dashboard                     #查看
NAME                               TYPE                                  DATA   AGE
default-token-857n2                kubernetes.io/service-account-token   3      6d22h
kubernetes-dashboard-certs         Opaque                                0      6d22h
kubernetes-dashboard-csrf          Opaque                                1      6d22h
kubernetes-dashboard-key-holder    Opaque                                2      6d22h
kubernetes-dashboard-token-sg2pb   kubernetes.io/service-account-token   3      6d22h
kubectl describe secret -n kubernetes-dashboard kubernetes-dashboard-token-sg2pb #获取token

3.3登录

将获取到的token输入进去
在这里插入图片描述

四、其他

4.1 访问https://192.168.1.10:32232无法进入

访问会提示攻击者可能试图从192.168.1.10窃取你的信息(例如,密码、消息或信用卡)。如下图所示
在这里插入图片描述
临时解决办法:在当前页面用键盘输入thisisunsafe,不是在地址栏输入。页面即会自动刷新进入网页。

4.2登录进去后报错

namespaces is forbidden: User "system:serviceaccount:kubernetes-dashboard:kubernetes-dashboard" cannot list resource "namespaces" in API group "" at the cluster scope

在这里插入图片描述
解决办法

kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard      #创建dashboard-admin
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin  #绑定为集群管理员
kubectl get secret -n kubernetes-dashboard   #查看有个dashboard-admin开头的token
NAME                               TYPE                                  DATA   AGE
dashboard-admin-token-45m6q        kubernetes.io/service-account-token   3      13s
kubectl describe secret -n kubernetes-dashboard dashboard-admin-token-45m6q #获取token

重新登录后无报错
在这里插入图片描述

Logo

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

更多推荐