Linux云计算 |【第五阶段】CLOUD-DAY10
主要内容:
部署Dashboard、部署Prometheus、部署HPA集群
一、Dashboard介绍
Dashboard是基于网页的Kubernetes用户界面,可以使用Dashboard将容器应用部署到Kubernetes集群中,也可以对容器应用排错,还能管理集群资源。可以使用Dashboard获取运行在集群中的应用的概览信息,也可以创建或者修改Kubernetes资源(如:Deployment、Job、DaemonSet等)
Dashboard同时展示了Kubernetes集群中的资源状态信息和所有报错信息。
官网下载软件包:GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters
Dashboard安装流程:
① 下载镜像及资源文件(dashboard.tar.gz、metrics-scraper.tar.gz、recommended.yaml)
② 导入镜像,并上传到私有仓库
补充:Kubernetes Dashboard从v2.0.0-beta1版本开始,集成了一个metrics-scraper的组件,可通过Kubernetes的metrics API收集一些基础资源的监控信息,并在WEB页面展示;
③ 修改recommended.yaml资源文件,指定私有镜像仓库地址
④ 创建Service对外发布服务
⑤ 创建Token认证
- 格式:kubectl -n kubernetes-dashboard get secrets //查询上下文,找到管理员账户
部署Dashboard示例:
# 拷贝云盘的kubernetes/v1.17.6/dashboard目录到master上
[root@ecs-proxy ~]# rsync -av kubernetes/v1.17.6/dashboard 192.168.1.21:/root[root@master ~]# tree dashboard/dashboard/├── admin-token.yaml //创建token资源对象文件├── dashboard.tar.gz //dashboard镜像├── metrics-scraper.tar.gz //metrics插件镜像(收集metrics监控信息插件)└── recommended.yaml //发布服务资源文件0 directories, 4 files
步骤1:导入镜像,并上传镜像到私有仓库
① 上传dashboard镜像
[root@master ~]# cd dashboard/[root@master dashboard]# docker load -i dashboard.tar.gz[root@master dashboard]# docker tag kubernetesui/dashboard:v2.0.0 192.168.1.100:5000/dashboard:v2.0.0[root@master dashboard]# docker push 192.168.1.100:5000/dashboard:v2.0.0
② 上传metrics-scraper镜像
[root@master dashboard]# docker load -i metrics-scraper.tar.gz[root@master dashboard]# docker tag kubernetesui/metrics-scraper:v1.0.4 192.168.1.100:5000/metrics-scraper:v1.0.4[root@master dashboard]# docker push 192.168.1.100:5000/metrics-scraper:v1.0.4
步骤2:安装发布服务
① 修改资源文件(修改私有镜像仓库地址)
[root@master dashboard]# vim recommended.yaml190 image: 192.168.1.100:5000/dashboard:v2.0.0274 image: 192.168.1.100:5000/metrics-scraper:v1.0.4
② 执行资源文件
[root@master dashboard]# kubectl apply -f recommended.yaml
# 查看命名空间,Dashboard会独立创建自己的命名空间kubernetes-dashboard
[root@master dashboard]# kubectl get namespaces
# 查询验证POD、SERVICE资源
[root@master dashboard]# kubectl -n kubernetes-dashboard get pod //查看Pod资源
[root@master dashboard]# kubectl -n kubernetes-dashboard get service //查看Service
步骤3:对外发布服务
① 编写Service资源文件
[root@master dashboard]# vim service.yaml---kind: Service //定义资源的类型(Service)apiVersion: v1metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboardspec: ports: - port: 443 //前端访问容器服务的端口 nodePort: 30443 //声明对外发布访问集群port端口(为防止地址变化) targetPort: 8443 //监听容器服务的端口 selector: //选择为哪个资源提供服务(后端) k8s-app: kubernetes-dashboard //标签必须与recommended.yaml资源文件中一致 type: NodePort //指定NodePort服务类型(容器外访问)
② 执行资源文件
[root@master dashboard]# kubectl apply -f service.yamlservice/kubernetes-dashboard configured[root@master dashboard]# kubectl -n kubernetes-dashboard get service
③ 在华为云上为任意node节点绑定弹性公网IP [ https://弹性公网IP:30443/ ]
# 使用浏览器访问https://弹性公网IP:30443/
补充:首次登陆页面,要求提供Token或者kubeconfig才能有访问权限
步骤4:token认证登录
① 执行admin-token.yaml资源文件,创建管理员admin-user账户
[root@master dashboard]# cat admin-token.yaml //查看即可,无需修改---apiVersion: v1kind: ServiceAccountmetadata: name: admin-user namespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: admin-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects:- kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard[root@master dashboard]# kubectl apply -f admin-token.yamlserviceaccount/admin-user createdclusterrolebinding.rbac.authorization.k8s.io/admin-user created
② 查询上下文,找到管理员账户(admin-user-token-xxxxx)
[root@master dashboard]# kubectl -n kubernetes-dashboard get secrets
② 查询管理员账户的详细信息,找到Token登录信息
[root@master dashboard]# kubectl -n kubernetes-dashboard describe secrets admin-user-token-k478j
# 将Token拷贝到Dashboard
# 验证:首次登陆页面效果
① 工作量状态:运行的容器
② CPU、内存监控
二、Prometheus介绍
Prometheus是SoundCloud公司开发的一个监视系统和时间序列数据库,许多公司和组织接受和采用prometheus,之后他们便将它独立成开源项目,并且有专门的公司来运作,该项目有非常活跃的社区和开发人员,2016年Prometheus加入了云计算基金会,成为Kubernetes之后的第二个托管项目。现在最常见的K8S容器管理系统中,通常会搭配Promethus进行监控,可以把它看成Google BorgMon监控的开源版本。