Kubernetes Dashboard 【转】
前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl
完成的。为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。
在 Kubernetes Dashboard 中可以查看集群中应用的运行状态,也能够创建和修改各种 Kubernetes 资源,比如 Deployment、Job、DaemonSet 等。用户可以 Scale Up/Down Deployment、执行 Rolling Update、重启某个 Pod 或者通过向导部署新的应用。Dashboard 能显示集群中各种资源的状态以及日志信息。
可以说,Kubernetes Dashboard 提供了 kubectl
的绝大部分功能,大家可以根据情况进行选择。
安装
Kubernetes 默认没有部署 Dashboard,可通过如下命令安装:
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Dashboard 会在 kube-system
namespace 中创建自己的 Deployment 和 Service。
因为 Service 是 ClusterIP
类型,为了方便使用,我们可通过 kubectl --namespace=kube-system edit service kubernetes-dashboard
修改成 NodePort
类型。
保存修改,此时已经为 Service 分配了端口 31614
。
通过浏览器访问 Dashboard https://192.168.56.105:31614/
,登录界面如下:
配置登录权限
Dashboard 支持 Kubeconfig
和 Token
两种认证方式,为了简化配置,我们通过配置文件 dashboard-admin.yaml
为 Dashboard 默认用户赋予 admin 权限。
执行 kubectl apply
使之生效。
现在直接点击登录页面的 SKIP
就可以进入 Dashboard 了。
下一节我们来使用 Kubernetes Dashboard。
参考V1.10的dashboard方式
1.因为中国墙的问题,所以首先要准备好镜像,请使用如下脚本下载
因为你不知道pod会被调度到那个NODE上,所以你要在每个NODE上都得执行一下脚本
#!/bin/sh
#拉取镜像
docker pull registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64:v1.10.0
#重新打标签
docker tag registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64:v1.10.0 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
#删除无用镜像
docker image rm registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64:v1.10.0
2.开始安装
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
- 查看dashboard的POD是否正常启动,如果正常说明安装成功
[root@node1 ~]# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
coredns-576cbf47c7-kg8s9 1/1 Running 0 29h
coredns-576cbf47c7-st599 1/1 Running 0 29h
etcd-node1.ztpt.com 1/1 Running 0 29h
kube-apiserver-node1.ztpt.com 1/1 Running 0 29h
kube-controller-manager-node1.ztpt.com 1/1 Running 1 29h
kube-flannel-ds-amd64-79x9h 1/1 Running 0 27h
kube-flannel-ds-amd64-f9fls 1/1 Running 0 26h
kube-flannel-ds-amd64-q7kvx 1/1 Running 0 29h
kube-proxy-242zg 1/1 Running 0 27h
kube-proxy-5ntm5 1/1 Running 0 29h
kube-proxy-6pbrv 1/1 Running 0 26h
kube-scheduler-node1.ztpt.com 1/1 Running 1 29h
kubernetes-dashboard-77fd78f978-wzqjq 1/1 Running 0 5m7s
3.配置外网访问(不配置的话默认只能集群内访问)
- 修改service配置,将
type: ClusterIP
改成NodePort
kubectl edit service kubernetes-dashboard --namespace=kube-system
- 查看外网暴露端口(我们可以看到外网端口是32240)
[root@node1 ~]# kubectl get service --namespace=kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 47h
kubernetes-dashboard NodePort 10.101.221.220 <none> 443:32240/TCP 17h
4.访问dashboard
- 创建dashboard用户
1.创建admin-token.yaml
文件,文件内容如下:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: admin
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: admin
namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin
namespace: kube-system
labels:
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
2.创建用户
[root@node1 ~]# kubectl create -f admin-token.yaml
- 获取登陆token
[root@node1 ~]# kubectl describe secret/$(kubectl get secret -nkube-system |grep admin|awk '{print $1}') -nkube-system
- 通过浏览器登陆dashboard(我用的火狐浏览器)
注意,因为证书的问题,浏览器可能会阻止连接,必须把访问地址加入到访问例外里面
1.打开浏览器输入访问地址
访问地址:https://192.168.2.170:32240 格式:https://节点IP:bashboard暴露端口
2.认证方式选择口令,输入刚才获取到的token,即可登陆成功。
3.进入后就会看到如下界面
Kubernetes Dashboard 【转】的更多相关文章
- Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)
前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...
- Kubernetes dashboard安装
1. To download Dashboard plugin deployment YAML file from internet. #cd /home #mkdir k8s #cd k8s # w ...
- centos7下kubernetes(5。部署kubernetes dashboard)
基于WEB的dashboard,用户可以用kubernetes dashboard部署容器话的应用,监控应用的状态,执行故障排查任务以及管理kubernetes各种资源. 在kubernetes da ...
- kubernetes学习笔记之十一:kubernetes dashboard认证及分级授权
第一章.部署dashboard 作为Kubernetes的Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理.通 ...
- Mac搭建kubernetes dashboard全流程
1. 下载dashboard文件: curl -o kubernetes-dashboard.yaml https://raw.githubusercontent.com/kubernetes/das ...
- kubernetes Dashboard 使用RBAC 权限认证控制
kubernetes RBAC实战 环境准备 先用kubeadm安装好kubernetes集群,[包地址在此](https://market.aliyun.com/products/56014009/ ...
- docker for mac 安装 kubernetes、kubernetes dashboard
安装参考地址(按照此文档,安装成功):https://yq.aliyun.com/articles/508460 官方说明:https://kubernetes.io/docs/tasks/acces ...
- Kubernetes学习之路(十九)之Kubernetes dashboard认证访问
Dashboard:https://github.com/kubernetes/dashboard 一.Dashboard部署 由于需要用到k8s.gcr.io/kubernetes-dashboar ...
- Kubernetes dashboard 配置
安装前准备 下载dashboard的yaml文件 wget -O kube-dashboard.yaml https://git.io/kube-dashboard-no-rbac 这个版本是没有权限 ...
- kubernetes dashboard 安装时出现9090: getsockopt: connection refused错误
转载于:https://blog.csdn.net/lucy06/article/details/79082302 安装kubernetes dashboard时,出现错误: Error: 'dia ...
随机推荐
- StaticLinkList(静态链表)
写这个写了几次,然后都没写完就关掉了,所以也不想多码字了,直接上代码吧(本来还认真自制了一张图片来理解静态链表的cursor与sub之间的关系)但其实也就那么回事:通过游标来找下标通过下标找到对应的数 ...
- vue中加载three.js的gltf模型
vue中加载three.js的gltf模型 一.开始引入three.js相关插件.首先利用淘宝镜像,操作命令为: cnpm install three //npm install three也行 二. ...
- pagehelper 分页不生效,总页数总是1解决方案
问题: 后台查询后的数据只有1页,已经设置了PageHelper也没用 PageHelper.startPage(pageNum,pageSize); ModelAndView mv=new Mode ...
- ThinkPHP6源码:从Http类的实例化看依赖注入是如何实现的
ThinkPHP 6 从原先的 App 类中分离出 Http 类,负责应用的初始化和调度等功能,而 App 类则专注于容器的管理,符合单一职责原则. 以下源码分析,我们可以从 App,Http 类的实 ...
- HHR计划---作业复盘-直播第三课
一,出租车广告: 1,三个点不合格:周期太长了,大而全互联网产品,不符合MVP原则:业务关键点丢掉了:没有业务认知和成长. 2,关键假设: (1)车主有没有需求呀,画像怎么样? (2)车主收入如何,能 ...
- git合并分支到主干
1.从当前分支切换主干 git checkout master 2.更新主干内容到本地 git pull 4.提交分支,并将分支merge到主干 git merge dev 5: i键后输入备注 输 ...
- java是什么
Java是一个纯的面向对象的程序设计语言 java是一种强类型语言,特点是: 1,跨平台 2,面向对象 3,简单易用 跨平台指的是只要有java虚拟机的平台,都可以运行java代码. Java继承了C ...
- typescript 起步之安装及配置 ts-node 环境变量
最近vue 3.0 版本发布,让我认识到 typescript 将占有越来越重要的地位,所以我也开启了typescript学习之旅. 要想编写第一个 hello typescript 程序,当然要经过 ...
- Python流程控制-1 顺序执行
流程控制指的是代码运行逻辑.分支走向.循环控制,是真正体现我们程序执行顺序的操作.流程控制一般分为顺序执行.条件判断和循环控制. 顺序执行 Python代码在执行过程中,遵循下面的基本原则: 普通语句 ...
- highcharts Ajax 动态请求加载数据
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...