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

实验环境:

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

推荐步骤:

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值