19.实践篇:终于不需要?敲命令了:Dashboard部署

19.实践篇:终于不需要?敲命令了:Dashboard部署

2020-02-07 18:20:17

        在 Kubernetes 社区中,有一个很受欢迎的Dashboard项目,它可以给用户提供一个可视化Web界面来查看当前集群的各种信息、应用我们的yaml文件。用户也可以用Kubernetes Dashboard监控应用的状态、执行故障排查任务以及管理Kubernetes的各种基础资源。

1.环境信息

组件 版本
kubernetes v1.16.3
dashboard v2.0.0-beta5

对于其他版本的获取,以及详细的版本兼容性,你可以在dashboard官方项目中找到。

2.开始部署

        学到这里,你现在应该已经掌握了不少的kubernetes 知识,并能看懂相关命令了。
本章节的理论知识较少,你只要看懂命令、操作就可以了。
让我们开始吧:

1) 创建证书

mkdir dashboard-certs
cd dashboard-certs/

#创建名称空间
kubectl create namespace kubernetes-dashboard

# 创建key文件
openssl genrsa -out dashboard.key 2048

#创建证书请求
openssl req -days 36000 -new -out dashboard.csr -key dashboard.key -subj '/CN=dashboard-cert'

#自签证书
openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt

#创建kubernetes-dashboard-certs对象,类型为generic
kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard

2) 下载并修改recommended.yaml文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml
#定义NodePort集群网络 便于我们直接访问
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort #增加
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30008 #增加
  selector:
    k8s-app: kubernetes-dashboard

---
#因为自动生成的证书很多浏览器无法使用,所以我们自己创建,注释掉kubernetes-dashboard-certs对象声明
#apiVersion: v1
#kind: Secret
#metadata:
#  labels:
#    k8s-app: kubernetes-dashboard
#  name: kubernetes-dashboard-certs
#  namespace: kubernetes-dashboard
#type: Opaque

3) 安装Dashboard

#安装
kubectl apply -f  ~/recommended.yaml

#检查结果
kubectl get pods -A  -o wide
kubectl get service -n kubernetes-dashboard  -o wide

4) 创建Dashboard管理员账号dashboard-admin.yaml,并apply

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: dashboard-admin
  namespace: kubernetes-dashboard

5) 赋权dashboard-admin-bind-cluster-role.yaml,并apply

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dashboard-admin-bind-cluster-role
  labels:
    k8s-app: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: dashboard-admin
  namespace: kubernetes-dashboard

将dashboard-admin账号绑定至内建的集群级别的策略(cluster-admin)上

6) 复制token,并登录https://192.168.0.104:30008(换成你环境的ip即可)

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

7)此时,你应该可以看到类似下面的管理界面了:

dashboard.png

@版权声明:51CTO独家出品,未经允许不能转载,否则追究法律责任

版权声明:
作者:WaterBear
链接:https://l-t.top/2055.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录