Kubernetes Dashboard 设置用户密码登陆

Kubernetes
2019年05月20日

K8s 文档
K8s 1.13源码安装
k8s dashboard token访问


仪表板是基于Web的Kubernetes用户界面。您可以使用仪表板将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随资源。您可以使用仪表板来概述群集上运行的应用程序,以及创建或修改单个Kubernetes资源(例如部署,作业,守护进程等)。例如,您可以使用部署向导扩展部署,启动滚动更新,重新启动Pod或部署新应用程序。

默认Kubernetes UI界面是使用token登陆,但是由于token相比较麻烦。我们这里使用密码登陆

1.首先确保K8S集群内部一切正常

[root@i4t ~]# kubectl get node
NAME                   STATUS   ROLES    AGE   VERSION
yzsjhl82-138.opi.com   Ready    <none>   22h   v1.13.5
yzsjhl82-139.opi.com   Ready    <none>   22h   v1.13.5
yzsjhl82-140.opi.com   Ready    <none>   22h   v1.13.5
yzsjhl82-142.opi.com   Ready    <none>   22h   v1.13.5[root@i4t ~]# kubectl get pod --all-namespaces
NAMESPACE     NAME                          READY   STATUS    RESTARTS   AGE
default       busybox                       1/1     Running   23         22h
kube-system   coredns-d7964c8db-2t8wl       1/1     Running   1          22h
kube-system   coredns-d7964c8db-sbztp       1/1     Running   1          22h
kube-system   kube-flannel-ds-amd64-cv5hx   1/1     Running   2          22h
kube-system   kube-flannel-ds-amd64-f2f7x   1/1     Running   2          22h
kube-system   kube-flannel-ds-amd64-vmm74   1/1     Running   2          22h
kube-system   kube-flannel-ds-amd64-zgfmq   1/1     Running   1          22h

2.配置
首先需要说明一点,默认kubernetes Dashboard是需要token登陆。不方便登记,我们可以让dashboard使用用户密码验证登陆

k8s dashboard 搭建

需要注意几点

  • 修改apiserver
  • 创建用户密码文件
  • 创建yaml文件

[一] 在master上节点上创建文件(用户密码文件)

cat /etc/kubernetes/basic_auth_file
admin,admin,1
cyh,cyh,2#前面为用户,后面为密码,数字为用户ID不可重复

[二] 在所有master的apiserver启动文件添加一行配置

vim /usr/lib/systemd/system/kube-apiserver.service
--basic-auth-file=/etc/kubernetes/basic_auth_file \#添加完毕后重启api-server

这里需要说明,以上操作在所有master上执行,在所有节点操作是为了防止有pod飘到非master节点,当然也可以做pod亲和力

[三]创建yaml文件

wget http://down.i4t.com/k8s-passwd-dashboard.yaml| kubectl apply -f k8s-passwd-dashboard.yaml

为了防止地址失效,我这里在手动cp一份

# ------------------- Dashboard Secret ------------------- #apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-certsnamespace: kube-system
type: Opaque---
# ------------------- Dashboard Service Account ------------------- #apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kube-system---
# ------------------- Dashboard Role & Role Binding ------------------- #kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: kubernetes-dashboard-minimalnamespace: kube-system
rules:# Allow Dashboard to create 'kubernetes-dashboard2-key-holder' secret.
- apiGroups: [""]resources: ["secrets"]verbs: ["create"]# Allow Dashboard to create 'kubernetes-dashboard2-settings' config map.
- apiGroups: [""]resources: ["configmaps"]verbs: ["create"]# Allow Dashboard to get, update and delete Dashboard exclusive secrets.
- apiGroups: [""]resources: ["secrets"]resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]verbs: ["get", "update", "delete"]# Allow Dashboard to get and update 'kubernetes-dashboard2-settings' config map.
- apiGroups: [""]resources: ["configmaps"]resourceNames: ["kubernetes-dashboard-settings"]verbs: ["get", "update"]# Allow Dashboard to get metrics from heapster.
- apiGroups: [""]resources: ["services"]resourceNames: ["heapster"]verbs: ["proxy"]
- apiGroups: [""]resources: ["services/proxy"]resourceNames: ["heapster", "http:heapster:", "https:heapster:"]verbs: ["get"]---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: kubernetes-dashboard-minimalnamespace: kube-system
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: kubernetes-dashboard-minimal
subjects:
- kind: ServiceAccountname: kubernetes-dashboardnamespace: kube-system---
# ------------------- Dashboard Deployment ------------------- #kind: Deployment
apiVersion: apps/v1beta2
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kube-system
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: kubernetes-dashboardtemplate:metadata:labels:k8s-app: kubernetes-dashboardspec:containers:- name: kubernetes-dashboardimage: mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.8.3ports:- containerPort: 8443protocol: TCPargs:- --auto-generate-certificates- --authentication-mode=basic# Uncomment the following line to manually specify Kubernetes API server Host# If not specified, Dashboard will attempt to auto discover the API server and connect# to it. Uncomment only if the default does not work.# - --apiserver-host=http://my-address:portvolumeMounts:- name: kubernetes-dashboard-certsmountPath: /certs# Create on-disk volume to store exec logs- mountPath: /tmpname: tmp-volumelivenessProbe:httpGet:scheme: HTTPSpath: /port: 8443initialDelaySeconds: 30timeoutSeconds: 30volumes:- name: kubernetes-dashboard-certssecret:secretName: kubernetes-dashboard-certs- name: tmp-volumeemptyDir: {}serviceAccountName: kubernetes-dashboard# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedule---
# ------------------- Dashboard Service ------------------- #kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kube-system
spec:type: NodePortports:- port: 80targetPort: 8443nodePort: 30000selector:k8s-app: kubernetes-dashboard

我们可以用过下面命令进行检查
kubectl get pod,svc -n kube-system

这里要说一点,我这里的镜像使用的是v1.8.3如果觉得版本低可以更高版本的。

访问dashboard界面

由于没有ingress,使用的是IP访问。所以会提示我们证书不安全,我们这里点击忽略直接访问。个别浏览器会造成打不开的,建议使用谷歌或火狐

访问地址:https://master-IP:30000

在任意一台master上访问即可

这里需要我们输入api-server指定的文件里面的账号密码

跳过是没有权限查看k8s里面所有的信息

Kubernetes Dashboard 设置用户密码登陆相关推荐

  1. Windows Server 2016-批量设置用户下次登陆须更改密码

    Windows Server 2016-批量设置用户下次登陆须更改密码 https://blog.csdn.net/weixin_34233856/article/details/92367828 P ...

  2. Linux常用命令(中)、时间日期类、date 显示当前时间、ntpdate命令、cal 查看日历、useradd 添加新用户、passwd 设置用户密码、id 查看用户是否存在

    文章目录 1.3 时间日期类 1.3.1 date 显示当前时间 1.3.2 date 显示非当前时间 1.3.3 date 设置系统时间 1.3.4ntpdate命令 ntpdate常用服务器 国内 ...

  3. linux设置用户密码、查看linux用户信息、root用户管理普通用户(passwd命令使用)

    1 切换root用户和给root用户设置密码 1.1 切换到root用户 1.使用su 命令 或 su root命令切换到root用户的时候报错:su: Authentication failure ...

  4. aud$定位错误用户密码登陆数据库的具体信息

    环境:Oracle 11.2.0.3 客户端使用错误的用户密码登陆数据库 查询最近1天由于密码错误登陆失败的信息 查询当前审计中有哪些returncode值 1. 客户端使用错误的用户密码登陆数据库 ...

  5. Linux命令之设置用户密码passwd

    概述 passwd 命令可以设置用户密码.通过 useradd 命令创建的用户初始是没有密码的,需要通过 passwd 命令来为其设置密码,未设置密码的用户不能登录系统. 注:超级用户可以为自己和其他 ...

  6. oracle设置用户密码永不过期

    oracle设置用户密码永不过期 转载:原文链接https://blog.csdn.net/chenqi3166/article/details/125141774 转载:原文链接https://bl ...

  7. k8s安装dashboard及账号密码登陆

    1.k8s安装管理后台 (1)获取yaml配置文件wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/depl ...

  8. CentOS7 设置用户密码规则

    ​1.设置密码过期的天数. 用户必须在几天内更改密码. 此设置仅在创建用户时才会产生影响,而不会影响到现有用户. 如果设置为现有用户,请运行命令"chage -M(days)(user)&q ...

  9. linux创建永不过期用户,linux下如何设置用户密码永不过期_网站服务器运行维护...

    linux中有几种文件类型_网站服务器运行维护 linux中可分为6种文件类型,分别是:1.普通文件(数据文件):2.目录文件:3.设备文件:4.链接文件:5.管道文件:6.套接字文件,用于不同计算机 ...

最新文章

  1. 断点续传---多线程下载进阶(一)
  2. JS中创建函数的几种方式
  3. html如何制作滑块,网页制作html5实现滑块功能之type=quot;rangequot;属性-建站-建站教程-建站方法-米云建站 - 米云问答...
  4. HTML+CSS+JS实现 ❤️酷炫的时光隧道旅行动特效❤️
  5. curl http_code状态码 含义
  6. java打印计算机_在Java程序中实现高精度打印
  7. mac安装mysql(命令行方式)
  8. 【复杂网络】网络科学导论学习笔记-第四章度相关性和社团结构
  9. AdventureWorks数据库数据字典
  10. Linux系统管理---linux用户管理
  11. 以前进行的程序安装创建了挂起的文件操作(SqlServer2000或SqlServer 2000 SP4补丁安装) .
  12. 解读 | 自监督视觉特征学习综述
  13. 《喜欢你我也是》最精致程序员上线!
  14. 拖拉机(寒假每日一题 4)
  15. 201305143D眼镜种类及原理
  16. html自定义select样式,自定义select样式
  17. c++----随机数算法
  18. MySQL下载安装详情教程(Windows)
  19. ESP32系列--第六篇 WiFi AP模式
  20. oracle /*+Ordered*/ 的使用

热门文章

  1. EXCEL应用:思迈特软件Smartbi数据可视化终极教程
  2. 智能座舱开启「万物交互」新革命,隐形冠军们如何突围?
  3. C# VS2010 无法切换输入法。
  4. 标号法(label-setting algorithm)求解带时间窗的最短路问题(ESPPRC)
  5. TensorFlow对象检测-1.0和2.0:训练,导出,优化(TensorRT),推断(Jetson Nano)
  6. superMap Cesium(超图) ---scene open()用法
  7. 【课程设计|C++】设计一个哈夫曼编码器/译码器设计
  8. 华硕b365安装服务器系统,华硕B365主板搭载intel8/9代平台安装win7的详细教程
  9. filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理
  10. C语言文件输入输出函数总结