kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。
kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能:
- 自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速 启动新的容器
- 弹性伸缩:可以根据需要,自动对集群中正在运行的 容器数量进行调整
- 服务发现:服务可以通过自动发现的形式 找到它所依赖的服务
- 负载均衡:如果一个服务起动了多个容器,能够自动 实现请求的负载均衡
- 版本回退:如果发现新发布的程序版本有问题,可以立即 回退到原来的版本
- 存储编排:可以根据容器自身的需求 自动创建存储卷
一、概述
之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实,为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界面(Dashboard)。用户可以使用Dashboard部署容器化的应用,还可以监控应用的状态,执行故障排查以及管理kubernetes中各种资源。
二、部署配置
部署
-
下载并修改 yaml
[root@master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml [root@master ~]# vim recommended.yaml --- 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: 30009 #新增 selector: k8s-app: kubernetes-dashboard
-
运行、查看 Dashboard
[root@master ~]# kubectl apply -f recommended.yaml [root@master ~]# kubectl get pod,svc -n kubernetes-dashboard
配置
-
创建账号并授权
#创建service账号 [root@master ~]# kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard #绑定角色cluster-admin [root@master ~]# kubectl create clusterrolebinding dashboard-admin-rb --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
-
获取账号token
[root@master ~]# kubectl get secrets -n kubernetes-dashboard | grep dashboard-admin [root@master ~]# kubectl describe secrets dashboard-admin-token-qwxp4 -n kubernetes-dashboard
三、使用
本章节以Deployment为例演示DashBoard的使用
使用部署时配置的端口进行进行登录:30009
Dashboard提供了kubectl的绝大部分功能,这里不再一一演示