10-k8s-身份认证与鉴权

文章目录

    • 一、ServiceAccount介绍
    • 二、ServiceAccount相关的资源对象
    • 三、dashboard空间示例

一、ServiceAccount介绍

  1. ServiceAccount(服务账户)概念介绍

    1)ServiceAccount是Kubernetes集群中的一种资源对象,用于为Pod或其他资源提供身份验证和授权,以便它们能够与Kubernetes API进行交互。

    2)Service Account仅局限它所在的namespace,而每个namespace都会自动创建一个default service account。可以在Pod中通过serviceAccountName来指定使用哪个ServiceAccount。

  2. 解决的问题

    1)身份验证: ServiceAccount为Pod提供一个身份,使Pod能够与Kubernetes API进行交互。Kubernetes API会根据ServiceAccount的身份进行授权判断。

    2)权限控制: 通过ServiceAccount,Kubernetes管理员可以对Pod进行权限控制,限制它们能够访问的资源和操作,从而增强集群的安全性。

    3)认证和授权: ServiceAccount使得Pod可以通过自己的身份进行认证和授权,而不是依赖于集群中其他的身份。

二、ServiceAccount相关的资源对象

  1. role(k8s角色):通过RoleBinding绑定相关权限。它是Namespace级别的资源,只能作用于Namespace之内。

  2. ClusterRole(集群角色): ClusterRole定义了一组权限,用于控制对Kubernetes集群级别资源的访问。它是一种权限策略,定义了哪些操作可以被执行。ClusterRole可以被多个命名空间使用。

  3. RoleBinding:Role或 ClusterRole只是用于制定权限集合,具体作用于什么对象上,需要使用 RoleBinding来进行绑定。可以将Role 或 ClusterRole绑定到User、Group、Service Account 上。

    ps:相关指令介绍

    1)查看rolebinding信息:kubectl get rolebinding --all-namespaces

    2)查看指定rolebinding 的配置信息:kubectl get rolebinding <role_binding_name> -n -o yaml

  4. ClusterRoleBinding:RoleBinding用于在单个命名空间内进行权限控制,而ClusterRoleBinding用于在整个集群内进行权限控制。

  5. Secret(秘密): Secret是用于存储敏感信息的资源,如密码、API密钥、证书等。ServiceAccount通常与Secret关联,Kubernetes会自动为每个ServiceAccount创建一个与之关联的Secret,其中包含了ServiceAccount的身份令牌。

  6. Service Account Admission Controller介绍

    通过Admission Controller插件来实现对pod修改,它是apiserver的一部分。创建或更新pod时会同步进行修改pod。当插件处于激活状态(在大多数发行版中都默认情况)创建或修改pod时,会按以下操作执行:

    1)如果pod没有设置ServiceAccount,则将ServiceAccount设置为default。
    2)确保pod 引用的ServiceAccount存在,否则将会拒绝请求。
    3)如果pod不包含任何ImagePullSecrets,则将ServiceAccount 的 lmagePullSecrets会添加到 pod中。
    4)为包含API访问的Token 的 pod添加了一个volume。
    5)把volumeSource添加到安装在pod的每个容器中,挂载在/var/run/secrets/kubernetes.io/serviceaccount。

  7. Service Account Controller介绍

    Service Account Controller在namespaces里管理ServiceAccount,并确保每个有效的 namespaces中都存在一个名为“default”的ServiceAccount。

  8. 其他相关指令介绍

    1)获取所有空间的ServiceAccount:kubectl get sa -A

    2)获取所有空间的ClusterRole: kubectl get clusterrole -A

    3)查看ClusterRole详情: kubectl get clusterrole ingress-nginx -n ingress-nginx -o yaml

三、dashboard空间示例

  1. 查看dashboard的用户列表:kubectl get sa -n kubernetes-dashboard
    在这里插入图片描述

  2. 查看用户secrets 并且获取token

    1)查看secrets : kubectl get secrets -n kubernetes-dashboard
    在这里插入图片描述

    2)获取密钥:kubectl describe secrets default-token-fjzh6 -n kubernetes-dashboard
    在这里插入图片描述

  3. 创建admin用户,并且查看secrets和token

    1)创建访问账号:vi /opt/dash.yaml

    创建用户–》申明角色–》用户和角色绑定

    apiVersion: v1
    kind: ServiceAccount
    metadata:name: admin-usernamespace: kubernetes-dashboard
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:name: admin-user
    roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
    subjects:
    - kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard
    

    2)应用: kubectl apply -f /opt/dash.yaml

    3)查看dashboard的用户列表:get sa -n kubernetes-dashboard
    在这里插入图片描述
    4)查看secrets: kubectl get secrets -n kubernetes-dashboard
    在这里插入图片描述
    5)获取访问令牌: kubectl describe secrets admin-user-token-d8f7x -n kubernetes-dashboard
    在这里插入图片描述

    6)查看绑定关系: kubectl get ClusterRoleBinding admin-user -n kubernetes-dashboard -o yaml
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/139919.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电液比例负载控制变量泵PQ放大器

对驱动执行元件&#xff0c;仅供应所需最小限度的压力、流量的节能型泵控制系统。与专用功率放大器配合使用。流量和全截流压力按功率放大器的输入电流成比例地进行控制。在实际应用中&#xff0c;该控制系统与专用功率放大器配合使用&#xff0c;可以根据实际需求&#xff0c;…

排查手机应用app微信登录问题不跳转失败原因汇总及其解决方案

经过最近我发的文章,我个人觉得解决了不少小问题,因为最近很小白的问题已经没有人私聊问我了,我总结了一下排查手机应用app微信登录问题不跳转失败的原因汇总及其解决方案在这篇文章中,分析微信登录不跳转的原因,并提供解决方案。希望通过这篇文章,能够帮助大家顺利解决这…

基于晶体结构优化的BP神经网络(分类应用) - 附代码

基于晶体结构优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于晶体结构优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.晶体结构优化BP神经网络3.1 BP神经网络参数设置3.2 晶体结构算法应用 4.测试结果…

vue.js - 断开发送的请求,解决接口重复请求数据错误问题(vue中axios多次相同请求中断上一个)

描述 进入页面时第一个接口还在请求,立即切换tab请求第二个接口。但是第二个接口响应比第一个接口响应快,页面展示的时第一个接口的数据,如图: 解决方法 判断如果是相同的接

MySQL双主一从高可用

MySQL双主一从高可用 文章目录 MySQL双主一从高可用环境说明1.配置前的准备工作2.配置yum源 1.在部署NFS服务2.安装主数据库的数据库服务&#xff0c;并挂载nfs3.初始化数据库4.配置两台master主机数据库5.配置m1和m2成为主数据库6.安装、配置keepalived7.安装部署从数据库8.测…

使用REPLACE将数据库某一列字段进行字符串操作

REPLACE可以将表里的数据进行替换操作 如&#xff1a;需要把这一列里面的 # 去掉&#xff0c;经过测试&#xff0c;无论是开头、句中还是结尾都可以删除 UPDATE 表名 SET 字段名 REPLACE(字段名 , #, )

车载电子电器架构 —— 国产基础软件现在与未来

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c;多看一眼都是你的不…

小谈设计模式(29)—访问者模式

小谈设计模式&#xff08;29&#xff09;—访问者模式 专栏介绍专栏地址专栏介绍 访问者模式角色分析访问者被访问者 优缺点分析优点将数据结构与算法分离增加新的操作很容易增加新的数据结构很困难4 缺点增加新的数据结构比较困难增加新的操作会导致访问者类的数量增加34 总结…

【软件工程】简单讲讲设计模式七大原则,以及代码简单举例

给自己一个目标&#xff0c;然后坚持一段时间&#xff0c;总会有收获和感悟&#xff01; 学软件或计算机专业的同学应该都会接触到一门课程《软件工程》&#xff0c;七大设计原则属于软件工程中的重要知识点。 目录 一、软件工程1.1、提供指导和规范1.2、确保软件质量1.3、提高…

学会Docker之---应用场景和基本操作

实体机、VM和容器 实体机&#xff08;Physical Machine&#xff09;是指实际的物理设备&#xff0c;例如我们常见的计算机主机、服务器等。它们是由硬件组成&#xff0c;可以直接运行操作系统和应用程序。 虚拟机&#xff08;Virtual Machine&#xff09;是在一台物理机上通过…

去除照片中多余人物方法分享-这些方法快收藏起来

拍照时经常会碰到一些意外的情况&#xff0c;比如不小心捕捉到了一些不需要的人或物&#xff0c;这会影响照片的美观效果&#xff0c;因此学习如何去除照片中多余人物就显得特别重&#xff0c;下面分享一些常用的去除照片中多余人物的方法&#xff0c;如果你也感兴趣的话&#…

Linux块设备缓存Bcache使用

1 Bcache简介 Bcache是Linux内核块层cache&#xff0c;它使用SSD来作为HDD硬盘的cache&#xff0c;从而起到加速作用。Bcache内核模块仅在Linux 3.10及以上版本支持&#xff0c;因此使用Bcache&#xff0c;需要将内核升级到3.10及以上版本&#xff0c;并在内核配置项中打开Bca…