一. Dashboard UI 可视化界面安装部署
- Kubernetes 中默认没有安装Dashboard可视化端,需要手动安装
- 前面我们学了Kubernetes 的ymal对象描述文件, 实际安装Dashboard UI也是通过ymal方式,这个ymal就是安装Dashboard的部署文件
- 登录地址, 查看需要安装的具体对应版本 https://github.com/kubernetes/dashboard/releases
- 获取到对应当前版本的安装使用的ymal地址 https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
- 拿到这个ymal, 通过master节点设置到当前安装的k8s集群中
- 应用该文件即可,有两种方式
- 方式一: 直接在k8s的master节点下创建"recommended.yaml"文件,将上方拿到的ymal配置复制到该文件中,保存,应用
cd /home
vi recommended.yaml
#将复制的页面信息写入
#创建pod
kubectl apply -f recommended.yaml
- 方式二: 直接通过上方的地址下载该ymal文件到服务器中,执行应用命令
//1.使用"wget",如果没有安装"wget"命令执行以下命令安装该命令
yum install -y wget
//2.执行wget 上方拿到的安装Dashboard UI使用的ymal地址,下载recommended.yaml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
5. 文件下载完毕后,执行"kubectl apply -f recommended.ymal"部署应用即可
问题修改
- 当下载了安装DashboardUI需要的recommended.yaml部署文件后, 内部有个bug,需要我们手动修改,打开该ymal文件找到封装Service负载均衡网络设置位置,内部少设置了一个type属性值,加上该属性值,保存,重新应用
- 修改完毕后执行"kubectl apply -f recommended.ymal"部署应用
访问
- 以上的意思是,k8s中通过recommended.ymal部署Dashboard应用服务,并在ymal中针对这个Dashboard应用服务封装了对外统一调用的Service, 使用的是NodePort类型, 怎么调用?
- 执行 “kubectl get svc -A” 查看当前k8s系统中存在的Service信息
- 获取到当前部署Dashboard封装创建出的Service, “kubernetes-dashboar” 详细信息,获取到访问端口号,如下图31750
- 根据NodePort规则, 使用公网ip+当前封装出的端口号(当前就是31750)就可以在公网访问,注意是https
- 当使用"https://公网ip+端口号"访问时,会进入k8sDashboard可视化界面,会提示获取令牌,执行获取令牌命令
- 下方命令解释: 该命令表示在"-n kubernetes-dashboard"名称空间下,获取其中的"secret"秘钥相关资源,'{print $1}'打印
- 该命令执行完毕后会显示toke,复制token字段,粘贴到web页面上,点击登入即可
#访问测试每次访问都需要令牌
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
- 进入控制页面可能会返回没有权限异常
- 添加权限
- 执行"vi dash-admin.ymal" 创建dash-admin.ymal文件,将下方配置添加到该文件中,保存退出
- 执行"kubectl apply -f dash-admin.yaml" 命令应用生效
- 重新进入Dashboard 页面刷新即可
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
namespace: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard