这篇博文介绍的是安装Dashboard V2.0.3, 并将其映射到具体的域名上。先上一个成果图,如果安装过程中有遇到什么问题,可以评论联系我

1. 前提条件

本次安装基于Helmchart包安装的,且向外暴露服务的方式为Ingress,所以有以下前提:

  • 已安装好Helm

如未安装helm,可以参照:kubernetes系列(十六) - Helm安装和入门

  • 集群已经以DaemonSet方式安装好了Ingress-nginx

如未安装,安装教程可以参照下篇文章的第四小节部分kubernetes系列(十) - 通过Ingress实现七层代理

  • 一个已经备案过的域名,和具体的域名配套的https证书

因为使用的是ingress,所以必须要域名,且dashboard需要https才能外网访问,证书可以在阿里云之类的购买一年期的免费赠书


2. 配置https证书为secret

  1. 上传域名的nginx证书到服务器上
# 具体上传过程不赘述
# 这里假设证书aaa.key和bbb.crt已经上传至路径/usr/local/cert cd /usr/local/cert # 创建secret到kube-system命名空间下
# 之后我们的dashboard也会创建在这个命名空间下,需要依赖这个,所以提前创建
kubectl creat secret tls dashboard-tls --key aaa.key --cert bbb.crt -n kube-system

3. dashboard安装

3.1 helm拉取dashboard的chart

# 添加helmhub上的dashboard官方repo仓库
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ # 查看添加完成后的仓库
helm repo list # 查询dashboard的chart
helm search repo kubernetes-dashboard # 新建文件夹用于保存chart
mkdir dashboard-chart && cd dashboard-chart # 拉取chart
helm pull kubernetes-dashboard/kubernetes-dashboard # 此时会有一个压缩包,解压它
tar -zxvf kubernetes-dashboard-2.3.0.tgz # 进入到解压后的文件夹
cd kubernetes-dashboard

3.2 配置dashboard的chart包配置

注意:以下创建的new-values.yaml是基于values.yaml修改的,即意味着如果需要跟自定义的配置,可以自己参照values.yaml修改配置文件

  1. 新建一个new-values.yaml,内容如下

注意:以下的host需要换成自己的域名,且secretname需要跟刚刚创建的secret对应起来

image:
repository: kubernetesui/dashboard
tag: v2.0.3
pullPolicy: IfNotPresent
pullSecrets: []
replicaCount: 1
annotations: {}
labels: {}
extraEnv: []
podAnnotations:
seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
nodeSelector: {}
tolerations: []
affinity: {} resources:
requests:
cpu: 100m
memory: 200Mi
limits:
cpu: 2
memory: 200Mi
protocolHttp: false service:
type: ClusterIP
externalPort: 443
annotations: {}
labels: {} ingress:
enabled: true
annotations:
nginx.ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
paths:
- /
customPaths: []
hosts:
- xxx.xxx.com # 你的域名
tls:
# 注意这个名字要跟前面新建的secret对上
- secretName: dashboard-tls
hosts:
- xxx.xxx.com # 你的域名 metricsScraper:
enabled: false
image:
repository: kubernetesui/metrics-scraper
tag: v1.0.4
resources: {}
containerSecurityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsUser: 1001
runAsGroup: 2001 metrics-server:
enabled: false rbac:
create: true
clusterRoleMetrics: true
clusterReadOnlyRole: false serviceAccount:
create: true
name: livenessProbe:
initialDelaySeconds: 30
timeoutSeconds: 30 podDisruptionBudget:
enabled: false
minAvailable:
maxUnavailable: containerSecurityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsUser: 1001
runAsGroup: 2001 networkPolicy:
enabled: false

3.3 helm执行创建dashboard的release

# 执行路径在new-values.yaml目录
helm install -f new-values.yaml --namespace kube-system kubernetes-dashboard .

3.4 通过域名访问dashboard

注意:云服务商的域名解析处,需要将域名通过A记录解析到某个node节点上

然后访问刚刚配置文件配置的域名应该能够访问到如下界面


4. 查看token并使用token登陆

这里我们需要查看token

  1. 查看内容含有token的secret

[root@k8s-master kubernetes-dashboard]# kubectl get secret -n kube-system | grep kubernetes-dashboard-token
kubernetes-dashboard-token-vgp9w kubernetes.io/service-account-token 3 22h
  1. describe一下获取token值
kubectl describe secret kubernetes-dashboard-token-vgp9w -n kube-system
  1. 复制这一串token

  1. 根据如下的登陆

  2. 登陆成功


5. 给dashboard的serviceaccont授权

此时我们刚进去界面,发现什么资源都显示不了,是因为dashboard默认的serviceaccount并没有权限,所以我们需要给予它授权。

  • 注意:我这里直接赋予的是admin权限,如果需要更加细颗粒度的授权,请参照官方的说明

https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/README.md

  1. 创建dashboard-admin.yaml,内容为以下
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
namespace: kube-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kube-system
  1. 应用资源文件dashboard-admin.yaml
kubectl apply -f dashboard-admin.yaml
  1. 授权成功,可以通过dashboard查看到资源

kubernetes系列(十七) - 通过helm安装dashboard详细教程的更多相关文章

  1. kubernetes系列(十六) - Helm安装和入门

    1. helm简介 1.1 为什么需要helm 1.2 helm中几个概念 1.3 helm用途 2. helm安装 3. helm的基本使用 3.1 安装chart仓库里面的chart 3.2 创建 ...

  2. Git学习系列之Windows上安装Git详细步骤(图文详解)

    前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...

  3. 安装WordPress详细教程指南

    最近准备自己建一个个人博客,以便分享一些自己工作生活中的一些观点及经验,建博客当然选wordpress,毕竟wordpress是为博客而生的嘛.下边记录一下自己安装WordPress的详细过程指南,亦 ...

  4. Ubuntu下安装JDK详细教程

    Ubuntu下安装JDK详细教程 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ Ubuntu版本:Ubuntu-12.04.5-desktop-i386 ...

  5. Windows下安装MySQL详细教程

    Windows下安装MySQL详细教程 1.安装包下载  2.安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 (7 ...

  6. npm安装vue详细教程(图片详解)

    npm安装vue详细教程(图片详解) 一.总结 一句话总结:整个安装流程照着教程来,注意系统环境变量的配置,注意一下npm的本地仓库和缓存位置 教程 系统环境变量 仓库 缓存 1.什么情况下最适合用n ...

  7. ubuntu安装scala详细教程

    ubuntu14 安装scala详细教程 1.下载scala压缩包 http://www.scala-lang.org/download/ 2.建立目录,解压文件到所建立目录 $ sudo mkdir ...

  8. Centos7安装Typecho详细教程

    Centos7安装Typecho详细教程   首先搭建LAMPH环境 L linux 服务器(centos或者ubunt) .A Apache .M mysql .P PHP 安装Apache.PHP ...

  9. Linux系统下Dubbo安装的详细教程

    Linux系统下Dubbo安装的详细教程 1.Dubbo的简介 Dubbo是 [1]  阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [ ...

随机推荐

  1. cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if

    cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...

  2. 布局之: flex(CSS3新增)

    flex 基本概念 flex布局(flex是flexible box的缩写), 也称为弹性盒模型 .将属性和属性值(display:flex; )写在哪个标签样式中,谁就是 容器:它的所有子元素自动成 ...

  3. DNS bind使用

    概念介绍 DNS的分类 主DNS:配置管理,不提供服务,只用来编辑配置信息,给从DNS提供同步数据 从DNS:从主DNS上同步数据信息,对外提供服务 缓存DNS:在主DNS和从DNS之间,用来递归解析 ...

  4. 强大的IntelliJ IDEA怎么破解?

    IntelliJ IDEA是非常好用的一个开发工具,怎么样才可以破解也是非常关键的问题,本文简单介绍破解方法. 第一种方式,我们进入以下网站http://idea.lanyus.com/ 这里要注意一 ...

  5. 第一章、认识Shiro

    Shiro简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Securi ...

  6. 微信小程序navigator带参数跳转及接收参数内容

    // index.wxml <navigator class='looks-view' wx:for="{{imgUrlNew}}" wx:key="index&q ...

  7. 设计模式--Builder生成器模式

    如果文章中哪里有问题,希望各位大哥大姐指出,小弟十分感激. 正文 什么是生成器模式? 生成器模式就是把生产对象的过程进一步抽取.细化.独立.以往我们生产对象,可能就是在一个小作坊里面从头做到尾.现在用 ...

  8. ORACLE数据库数据被修改或者删除恢复数据(闪回)

    1. SELECT * FROM CT_FIN_RiskItem  --先查询表,确定数据的确不对  (cfstatus 第一行缺少) 2. select * from CT_FIN_RiskItem ...

  9. Vue 封装axios(四种请求)及相关介绍(十三)

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  10. mybatis关于Criteria的一点小坑。。。

    目录 在用Criteria时,相关代码如下: final RolePermissionExample example = new RolePermissionExample(); example.cr ...