Kubernetes  Dashboard 配置用户名密码方式登录操作流程

 更新时间:2024年06月19日 10:22:17   作者:蚊子不吸吸  
为了K8s集群安全,默认情况下Dashboard以Token的形式登录的,那如果我们想以用户名/密码的方式登录该怎么操作呢?其实只需要我们创建用户并进行 ClusterRoleBinding绑定即可,下面给大家分享Kubernetes  Dashboard 配置用户名密码方式登录操作流程,感兴趣的朋友一起看看吧

Kubernetes - Dashboard 配置用户名密码方式登录

前言:

为了 K8s 集群安全,默认情况下 Dashboard 以 Token的形式登录的,那如果我们想以用户名/密码的方式登录该怎么操作呢?其实只需要我们创建用户并进行 ClusterRoleBinding绑定即可,接下来是具体的操作流程。

K8s的dashboard默认是通过Token去登录的,有时候也会不太方便,我们也可以通过账号密码的形式去登录dashboard,不过账号密码登录dashboard的方式仅在K8s v1.19以前的版本支持。

相关环境:

以下操作需要在master节点进行操作

1、创建用户密码存放文件

cat << EOF | sudo tee /etc/kubernetes/pki/basic_auth_file
admin,admin,1
EOF
# 说明:
# 用户名:admin
# 密码:admin
# 用户ID:1
或脚本
echo "admin,admin,1" > /etc/kubernetes/pki/basic_auth_file

2、修改 kube-apiserver 配置文件

# 先提前做个备份
cp /etc/kubernetes/manifests/kube-apiserver.yaml /etc/kubernetes/manifests/kube-apiserver.yaml.back
# 修改配置文件,配置增加密码文件路径
vim /etc/kubernetes/manifests/kube-apiserver.yaml
---------------------------------------------------------------
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    component: kube-apiserver
    tier: control-plane
  name: kube-apiserver
  namespace: kube-system
······
    - --secure-port=6443
    - --service-account-key-file=/etc/kubernetes/pki/sa.pub
    - --service-cluster-ip-range=10.96.0.0/12
    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
    - --basic-auth-file=/etc/kubernetes/pki/basic_auth_file				#增加这一行
·····
# 保存退出后 kube-apiserver 会自动重启(大约10s左右,无需 kubectl apply -f ***)

3、查看 kube-apiserver 是否重启

kubectl get pod -n kube-system

4、将admin用户与集群角色权限进行绑定

[root@k8s-master ~]# kubectl create clusterrolebinding DashBoardLogin --clusterrole=cluster-admin --user=admin
clusterrolebinding.rbac.authorization.k8s.io/DashBoardLogin created
# DashBoardLogin:自定义集群角色绑定name
# 将admin用户绑定到集群角色cluster-admin
# cluster-admin是一个内置的ClusterRole(集群角色),它具有最高级别的权限
# cluster-admin允许持有该角色的用户或服务账户对整个Kubernetes集群进行广泛的控制

具体来说,cluster-admin ClusterRole 具有以下特征和权限:

全局权限:cluster-admin 具有对整个集群的权限,而不仅仅限于某个命名空间。这意味着拥有 cluster-admin角色的用户可以管理整个集群的资源,包括节点、命名空间、服务、Pod 等。

权限广泛:cluster-admin 具有广泛的权限,包括创建、删除和修改各种资源,以及查看集群中的所有资源的权限。这包括对ConfigMaps、Secrets、Deployments、Services等的完全控制权。

角色的高度特权:由于cluster-admin 角色的特权级别非常高,因此授予它的用户或服务账户将具有执行集群中任何操作的能力,包括破坏性操作。因此,应小心授予cluster-admin权限,确保只授予受信任的用户或服务账户。

通常情况下,cluster-admin 角色应该被保留用于紧急情况、集群管理和维护操作。该权限不应该随意授予普通用户,以防止误操作或滥用权限。对于普通应用程序和开发人员,通常会创建更严格的RBAC 角色,以限制其对资源的访问权限,从而提高集群的安全性。

5、查看集群角色绑定情况

[root@k8s-master ~]# kubectl get clusterrolebinding DashBoardLogin
NAME             ROLE                        AGE
DashBoardLogin   ClusterRole/cluster-admin   8s

6、修改 kubernetes-dashboard 认证方式

# 先提前做个备份
cp /root/recommended.yaml /root/recommended.yaml.back
# 修改配置文件支持用户密码登录
[root@k8s-master ~]# vim recommended.yaml
---
 ......
          args:
            - --auto-generate-certificates
            - --namespace=kubernetes-dashboard
            - --token-ttl=21600              #新增内容1
            - --authentication-mode=basic    #新增内容2
 ......
---

7、启动 Dashboard

kubectl apply -f recommended.yaml

8、Dashboard 访问验证

# 已经可以通过用户名密码的方式登录dashboard了 
admin/admin

在Kubernetes Dashboard中,默认情况下,账户和密码的方式已经被废弃,取而代之的是使用Token进行登录。

到此这篇关于Kubernetes Dashboard 配置用户名密码方式登录的文章就介绍到这了,更多相关Kubernetes Dashboard用户名密码方式登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • CentOS 7.9 升级内核 kernel-ml-5.6.14版本的方法

    CentOS 7.9 升级内核 kernel-ml-5.6.14版本的方法

    这篇文章主要介绍了CentOS 7.9 升级内核 kernel-ml-5.6.14版本,默认内核版本为3.10.0,现升级到 5.6.14 版本,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • K8S删除pod的4种方法小结

    K8S删除pod的4种方法小结

    在Kubernetes集群环境中工作时,有时会遇到需要从一个工作节点中删除pod的情况,下面这篇文章主要给大家介绍了关于K8S删除pod的4种方法,需要的朋友可以参考下
    2024-01-01
  • 一文详解如何高效查看k8s日志

    一文详解如何高效查看k8s日志

    K8S是kubernetes的缩写,是为解决容器服务编排而生的,在运维K8S服务的过程中,经常会遇到各种报错和诊断问题,那么我们一般怎么查看K8S组件的日志,这篇文章主要给大家介绍了关于如何高效查看k8s日志的相关资料,需要的朋友可以参考下
    2023-10-10
  • 使用k8tz解决pod内的时区问题(坑的解决)

    使用k8tz解决pod内的时区问题(坑的解决)

    时区的不一致,会带来很多困扰。即使代码与时区无关,但容器日志与系统日志时间相关联排查问题也会让人头疼,这篇文章主要介绍了使用k8tz优雅的解决pod内的时区问题,需要的朋友可以参考下
    2022-10-10
  • kubernetes k8s CRD自定义资源学习笔记

    kubernetes k8s CRD自定义资源学习笔记

    这篇文章主要介绍了kubernetes k8s CRD自定义资源学习笔记,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 在K8S中实现会话保持的两种方案

    在K8S中实现会话保持的两种方案

    这篇文章主要介绍了在K8S中实现会话保持的两种方案,每种方案结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • k8s自动化安装脚本(二进制)的操作步骤

    k8s自动化安装脚本(二进制)的操作步骤

    Kubernetes k8s安装脚本,非常好用,下面这篇文章主要给大家介绍了关于k8s自动化安装脚本(二进制)的操作步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • k8s设置非强一致反亲和性示例

    k8s设置非强一致反亲和性示例

    这篇文章主要为大家介绍了k8s设置非强一致反亲和性示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • kubernetes日志备份解决ELK中日志丢失问题

    kubernetes日志备份解决ELK中日志丢失问题

    这篇文章主要为大家介绍了kubernetes日志备份方案的细节探究分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 浅析kubernetes的控制器和标签

    浅析kubernetes的控制器和标签

    这篇文章主要介绍了kubernetes的控制器和标签的相关资料,帮助大家更好的理解和学习使用k8s,感兴趣的朋友可以了解下
    2021-04-04

最新评论