基于之前搭建好的多节点集群继续操作(多节点的布置可以参考之前的博客)
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 created3.完成后查看创建在指定的kube-system命名空间下;-n:指命名空间
[root@master dashboard]# kubectl get pods -n kube-system4.查看如何访问,同时查看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 created2.查看令牌
[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
