获取dashboard yaml文件

curl -O https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

更改官网镜像地址

sed -i 's/k8s\.gcr\.io/jicki/g' kubernetes-dashboard.yaml

导入文件

# kubectl apply -f kubernetes-dashboard.yaml
secret "kubernetes-dashboard-certs" created
serviceaccount "kubernetes-dashboard" created
role "kubernetes-dashboard-minimal" created
rolebinding "kubernetes-dashboard-minimal" created
deployment "kubernetes-dashboard" created
service "kubernetes-dashboard" created

访问方式

Kubernetes 暴露服务的方式目前只有三种:LoadBlancer Service、NodePort Service、Ingress

1、NodePort

为了方便验证,这里采用NodePort是将节点直接暴露在外网的一种方式,只建议在开发环境,单节点的安装方式中使用。

启用NodePort很简单,只需执行kubectl edit命令进行编辑,将type: ClusterIP修改为type: NodePort(将service监听端口映射到node节点)

保存后使用kubectl get service命令来查看自动生成的端口

# kubectl -n kube-system edit service kubernetes-dashboard
  type: ClusterIP --->type:NodePort
#kubectl -n kube-system get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes-dashboard NodePort 10.254.37.88 <none> :/TCP 2d18h k8s-app=kubernetes-dashboard

此时可以通过局域网进行正常访问

https://172.17.213.60:30469 

2、API Server

做好下面的浏览器访问kube-apiserver安全端口后可以直接通过 API Server的方式进行访问:

https://172.17.213.60:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

Dashboard登陆认证

首先创建一个dashboard rbac超级用户

# vim dashboard-admin-rbac.yaml

---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-admin
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard-admin
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard-admin
namespace: kube-system

# kubectl apply -f dashboard-admin-rbac.yaml

查看超级用户的token名称

# kubectl -n kube-system get secret | grep kubernetes-dashboard-admin

查看token部分

# kubectl describe -n kube-system secret/kubernetes-dashboard-admin-token-*****

登陆web ui选择“令牌登陆”,输入上面的token

浏览器访问kube-apiserver安全端口

一般情况下访问kube-apiserver的安全端口6443时,会提示证书不被信任。这是因为 kube-apiserver 的 server 证书是我们创建的根证书 ca.pem 签名的,需要将根证书 ca.pem 导入操作系统,并设置永久信任。对于 Mac,操作如下: 启动台-->搜索输入“钥匙串访问”

对于win使用以下命令导入ca.perm

keytool -import -v -trustcacerts -alias appmanagement -file "PATH...\\ca.pem" -storepass password -keystore cacerts

再次访问 https://172.17.213.60:6443/,已信任,但提示 401,未授权的访问:Unauthorized

我们需要给浏览器生成一个 client 证书,访问 apiserver 的 6443 https 端口时使用。

这里使用部署 kubectl 命令行工具时创建的 admin 证书、私钥和上面的 ca 证书,创建一个浏览器可以使用的 PKCS#12/PFX 格式的证书:

openssl pkcs12 -export -out admin.pfx -inkey admin-key.pem -in admin.pem -certfile ca.pem

将创建的 admin.pfx 导入到系统的证书中

重启浏览器,再次访问时提示选择一个浏览器证书,选中上面导入的 admin.pfx 后实现访问正常。

客户端选择证书的原理

1、证书选择是在客户端和服务端 SSL/TLS 握手协商阶段商定的;
2、服务端如果要求客户端提供证书,则在握手时会向客户端发送一个它接受的 CA 列表;
3、客户端查找它的证书列表(一般是操作系统的证书,对于 Mac 为 keychain),看有没有被 CA 签名的证书,如果有,则将它们提供给用户选择(证书的私钥);
4、用户选择一个证书私钥,然后客户端将使用它和服务端通信;

Dashboard安装配置的更多相关文章

  1. kubernetes(K8S)集群及Dashboard安装配置

    环境准备 机器信息 主机名 操作系统 IP地址 K8sm-218 Centos 7.5-x86_64 172.17.0.218 k8s-219 Centos 7.5-x86_64 172.17.0.2 ...

  2. Kubernetes入门(二)——Dashboard 安装

    Kubernetes集群搭建完成后,可以通过命令行方式可以了解集群资源的使用情况,但是这种方式比较笨拙且不直观,因此考虑给集群安装Dashboard,这样能更直观了解集群状态.本文Dashboard的 ...

  3. Linux下xampp集成环境安装配置方法 、部署bugfree及部署禅道

    XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.XAMPP 是一个易于安装且包含 MySQL.PHP 和 Perl 的 Apache 发行版.XAMPP 的确非 ...

  4. Centos7安装配置gitlab

    Centos7安装配置gitlab 这篇文字我会介绍在Centos7上安装gitlab,配置gitlab的smtp,并且创建项目demo. sudo yum install openssh-serve ...

  5. Ceph luminous 安装配置

    Ceph luminous 安装配置 #环境centos7 , Ceph V12 openstack pike 与 ceph 集成 http://www.cnblogs.com/elvi/p/7897 ...

  6. elk安装配置

    ELK介绍   官网https://www.elastic.co/cn/ 中文指南https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/det ...

  7. asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程

    最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...

  8. 02:zabbix-agent安装配置 及 web界面管理

    目录:Django其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...

  9. codis3.2安装配置中的一些问题

    1.参考文档与参考资料问题 安装codis集群之前,我先在网上找资料,然后又到github的项目官方地址找,不得不说,相关的资料不好找,而且找到之后有些东西说的也不是很清楚.由于codis版本迭代的问 ...

随机推荐

  1. Kettle解决方案: 第一章ETL入门

    第一章ETL入门 1.1 OLPT和数据仓库对比 普通的事务系统和商业智能系统(BI)有什么区别? 1个独立的普通事务系统也被称为在线事务处理系统(OLTP) 商业智能系统也常被称为决策支持系统(DS ...

  2. 在windows下安装、配置、运行PostgreSQL【转】

    安装PostgreSQL 在Windows下的安装就位无脑安装,选择好安装路径就好了,我的安装目录为D:\PostgreSQL\10,需要注意一下几点: 安装过程中需要一个数据库的目录,我的为D:\P ...

  3. pc端布局的一点思考

    编写pc端页面需要注意些什么? 1.自适应最小屏幕,在小屏幕上样式不能错乱. 在桌面屏幕各分辨率使用比例中可以看到各桌面分辨率的使用比例,日常pc端开发我们会考虑到适配1024宽度大小的屏幕. 对于管 ...

  4. 协程gevent

    协程,利用线程在等待其他资源期间去执行其他的函数. gevent里面封装了greenlet,greenlet里面封装了yield. from gevent import monkey import g ...

  5. go语言学习--string、int、int64互相转换,字符串的截取,数组和字符串的转换

    下面总结了go中常用的转换 #string到int int,err:=strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt ...

  6. [UE4]让箭头保持水平的第二种方法:Combinrotators、Delta(Rotator)

    一.手柄在世界坐标系中有一个绝对朝向,我们可以知道箭头相对于手柄的朝向,相对于手柄的旋转角度. 可以通过手柄绝对朝向.箭头的相对于手柄的朝向计算得到箭头的绝对朝向. 在得到箭头的相对于手柄的角度,在这 ...

  7. .net core Ocelot实现API网关并部署在docker中

    基于Ocelot(http://ocelot.readthedocs.io)搭建的API网关demo 软件以及系统版本:  Asp.Net Core 2.2 Ocelot 13.5.0 CentOS ...

  8. spring4学习笔记

    IOC public class IServiceImpl implements IService { public void IserviceImpl(){} @Override public vo ...

  9. VMware 安装 CentOS7

    需要注意几点: 1.分区 分区前先规划好 swap #交换分区,一般设置为内存的2倍 / #剩余所有空间 备注:生产服务器建议单独再划分一个/data分区存放数据 点左下角的“+”号 挂载点:swap ...

  10. 打造高效的工作环境 – SHELL 篇

    注:本文由雷俊(Javaer/Emacser)和我一起编辑,所以文章版权归雷俊与我共同所有,转载者必需注明出处和我们两位作者.原文最早发于酷壳微信公众号,后来我又做了一些修改,再发到博客这边. 程序员 ...