文档章节

部署kubernates dashboard

猫海豚
 猫海豚
发布于 06/26 18:40
字数 840
阅读 5
收藏 0

参考官方文档:

https://github.com/kubernetes/dashboard

直接部署官方默认的dashboard:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

官方默认的replica是1,可以下载官方的yaml文件,按需修改后部署

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

部署成功后输入命令查看Pod可以看到dashboard已经部署成功

$ kubectl -n kube-system get pods

输入命令查看Service,会发现dashboard的IP地址是一个自动分配的Cluster IP地址

$ kubectl -n kube-system get svc

在不配置任何网络策略的情况下,我们可以启动kube-proxy,用localhost进行访问。也可以修改service增加node port后通过node的IP地址进行访问。

在这里我修改了type为nodePort和指定了port

$ kubectl -n kube-system edit svc kubernetes-dashboard
apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard","namespace":"kube-system"},"spec":{"ports":[{"port":443,"targetPort":8443}],"selector":{"k8s-app":"kubernetes-dashboard"}}}
  creationTimestamp: "2019-06-25T08:32:58Z"
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
  resourceVersion: "131106"
  selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard
  uid: d65ea8d9-9723-11e9-beba-08002777dcd3
spec:
  clusterIP: 10.105.212.27
  ports:
  - nodePort: 31195
    port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

修改后保存,可以看到service的TYPE已经变成NodePort,端口映射也完成了。

使用dashboard所在node的IP地址加上映射到Node的端口号可以直接访问Dashboard

https://192.168.7.87:31195/

身份认证

登陆 dashboard 的时候支持 kubeconfig 和 token 两种认证方式,kubeconfig 中也依赖 token 字段,所以生成 token 这一步是必不可少的。

下文分两块来讲解两种登陆认证方式:

  • 为 brand 命名空间下的 brand 用户创建 kubeconfig 文件
  • 为集群的管理员(拥有所有命名空间的 amdin 权限)创建 token

使用 kubeconfig

登陆dashboard的时候可以指定kubeconfig文件来认证用户权限,如何生成登陆dashboard时指定的kubeconfig文件请参考创建用户认证授权的kubeconfig文件

注意我们生成的 kubeconfig 文件中没有 token 字段,需要手动添加该字段。

比如我们为 brand namespace 下的 brand 用户生成了名为 brand.kubeconfig 的 kubeconfig 文件,还要再该文件中追加一行 token 的配置(如何生成 token 将在下文介绍),如下所示:

kubeconfig文件

这样就可以使用brand.kubeconfig文件来登陆dashboard了,而且只能访问和操作brand命名空间下的对象。

生成 token

需要创建一个 admin 用户并授予 admin 角色绑定,使用下面的 yaml 文件创建 admin 用户并赋予他管理员权限,然后可以通过 token 登陆 dashbaord,该文件见 dashboard-admin.yaml。这种认证方式本质上是通过 Service Account 的身份认证加上 Bearer token 请求 API server 的方式实现,参考 Kubernetes 中的认证

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

执行命令

$ kubectl create -f dashboard-admin.yaml

执行命令

$ kubectl -n kube-system get secret|grep admin-token

执行命令

$ kubectl -n kube-system describe secret admin-token-78bfl

拷贝token在登录页面进行登录,可以以管理员身份进入dashboard

也可以用命令直接提取token

$ kubectl -n kube-system get secret admin-token-78bfl -o jsonpath={.data.token}|base64 -d

 

 

 

© 著作权归作者所有

猫海豚
粉丝 0
博文 4
码字总数 6566
作品 0
苏州
私信 提问
CentOS7环境部署kubenetes1.12版本五部曲之二:创建master节点

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/83692606 本文是《CentOS7环境部署kubenetes1.12版本五部曲》系列的第二篇,上篇文章我们实...

博陵精骑
2018/11/04
0
0
kubernates之部署springboot

最近开始接触kubernates,在上面部署了下springboot,记录下。 1、创建一个Springboot应用 List-1.1 之后mvn clean package,打包,得到app.jar,和Dockerfile放在同一个目录下 List-1.2 2...

克虏伯
02/15
0
0
基于容器技术的阿里云区块链优势和实现方法

以下内容根据演讲PPT及现场分享整理: 在2017年北京云栖大会的“开发者服务专场”上,阿里云高级技术专家余珊带来了《敏捷智连——基于容器技术的区块链业务创新》的精彩分享。分享中,他重点...

1993wang
2018/01/03
0
0
使用基于策略的网络扩展Kubernetes Deployments

今天的文章是由Nuage Networks 的产品管理总监Harmeet Sahni书写,内容是关于他们在Kubernetes贡献和Policy-Based Networking的见解。 尽管距离Kubernetes 1.0发布仅仅只有18个月,我们已经看...

店家小二
2018/12/15
0
0
区块链100讲:Hyperledger Cello简介

Hyperledger Cello是超级账本项目下面的一个子项目,提供按需部署的功能,可以将区块链部署在各种裸机、虚拟机、容器等环境中。该项目最初由IBM发起,目前得到了Soramitsu, 华为,和Intel的赞...

HiBlock
2018/10/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Hadoop集群搭建-05安装配置YARN

Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hadoop集群搭建-01前期准备 先保证集群5台虚拟机, nn1 nn2 s1 s2 s3 hadoop 是 是 是 ...

虚拟世界的懒猫
今天
9
0
聊聊spring cloud的ConsulServiceRegistry

序 本文主要研究一下spring cloud的ConsulServiceRegistry ServiceRegistry spring-cloud-commons-2.1.2.RELEASE-sources.jar!/org/springframework/cloud/client/serviceregistry/ServiceR......

go4it
昨天
8
0
Nextjs 学习 —— hooks

22

lemos
昨天
6
0
如何在spring mvc restful接口中定制化类型转换和格式化

1.痛点 最近小胖哥搞了个小程序,有几个spring mvc 接口传递了时间,时间用java 8 time 相关的api 来直接接收: 当使用根据ISO 8601格式化的参数向任何这些方法发送POST请求时,报出了如下异...

码农小胖哥
昨天
19
0
docker日志监控

日志处理机制 我们先来了解一下docker日志处理的机制,当启动一个容器的时候,它其实是docker daemon的一个子进程,docker daemon可以拿到你容器里面进程的标准输出,拿到标准输出后,它会通...

爱宝贝丶
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部