当前位置: 首页 > article >正文

134. Rancher 系统身份验证

它是 Rancher 身份验证代理的一部分牛模拟系统是Rancher实现身份验证的关键组成部分。主体必须明确拥有“冒充”权限才能冒充其他用户。Rancher 为 Kubernetes 新增的关键特性之一是集中式用户身份验证。该特性允许用户使用一套凭据对任何 Kubernetes 集群进行身份验证。这种集中式用户身份验证是通过 Rancher 身份验证代理实现的该代理与 Rancher 的其他组件一起安装。此代理对用户进行身份验证并使用服务帐户将其请求转发到 Kubernetes 集群。为什么我们需要牛模拟系统Kubernetes 不是自带用户身份验证功能吗简而言之答案是肯定的。Rancher 是一款多集群 Kubernetes 管理工具它允许从单一中心点在任何位置、任何服务商上部署和运行集群。Rancher 位于这些多个 Kubernetes 集群的“前端”。由于 Kubernetes 对身份验证提供了强大的支持因此每个集群都可以拥有自己的身份验证策略。默认情况下Kubernetes 集群通过 kubeconfig 文件进行访问该文件包含对集群的完全访问权限。而使用 Rancher集群 API 通信不再需要 kubeconfig 文件因为它采用了身份验证代理机制。Rancher Manager 服务器通过服务帐户连接到下游用户集群上的 Kubernetes API 服务器从而与 Kubernetes 集群通信。该服务帐户为在 Pod 中运行的进程提供身份标识。那么Kubernetes中的用户呢Kubernetes 对用户和组实体的支持并不完整。它确实有作为用户的服务帐户。但对于普通用户而言Kubernetes 文档指出他们的身份应该由外部身份提供商进行管理。因此API 不支持用户对象及其组成员关系链接。如果要管理多个 Kubernetes 集群以及跨这些集群的用户则需要进行外部管理。在这种情况下Rancher是如何进行用户身份验证的Rancher设计并开发了自己的身份验证框架并扩展了Kubernetes以支持用户和组对象为了实现这一点它使用了 Kubernetes 的用户模拟功能。用户模拟一个用户或服务帐户能够扮演另一个用户的角色用户或服务帐户应具有“模拟”权限。Rancher身份验证系统的一个重要关键点是在每次Kubernetes API调用中身份验证代理都会对调用者进行身份验证。它会在将调用转发给Kubernetes主节点之前设置正确的Kubernetes模拟标头。Rancher身份验证代理在集中式认证模型中Rancher 位于所有 Kubernetes 集群的“前端”充当中央认证代理从而简化多个集群的认证过程。Rancher 管理员只需在 Rancher 服务器上集中配置并启用一次针对 Rancher 可用集成之一例如 Active Directory、OpenLDAP 等的身份验证即可管理所有集群的身份验证。用户通过 Rancher 进行身份验证Rancher 使用标准 bearer token 和用户模拟技术将用户请求重定向到特定的 Kubernetes 集群以模拟该用户的行为。牛模仿系统的资源我们创建了四种资源来应对身份冒用命名空间牛模拟系统服务帐户cattle-impersonation-system/cattle-impersonation-用户 ID​ 在后台Kubernetes 还会创建一个帐户令牌供 Rancher 用于身份验证cattle-impersonation-system/cattle-impersonation-用户 ID-token-哈希值集群角色cattle-impersonation-用户 ID集群角色绑定cattle-impersonation-用户 ID内部实施创建模仿资源分为两个部分。第一部分当用户创建集群或被添加为集群所有者/成员/其他角色或被添加到该集群上的某个项目时系统 会在集群上为该用户创建一个ClusterRoleTemplateBinding或ProjectRoleTemplateBinding 。当ClusterRoleTemplateBinding或ProjectRoleTemplateBinding存在时Rancher 会创建命名空间如果尚不存在、服务帐户、集群角色绑定以及集群角色 并根据当时掌握的信息配置相应的规则。这些规则将包含模拟用户 ID 和 Rancher 已知的用户组的功能。第二部分当用户使用集群浏览器、下载了kubeconfig文件的kubectl命令或使用/k8s/clusters代理API的curl命令向下游集群发出请求时Rancher会拦截该请求并检查资源是否为最新、是否存在以及用户的规则是否为最新。如果用户通过外部身份验证提供程序登录Rancher 在第一部分可能无法获知用户有哪些额外属性因为这些属性包含在请求中的令牌中。此时Rancher 将更新集群角色以包含请求中包含的这些额外属性例如主体 ID 和用户名。下游集群上的所有相关资源命名空间、服务帐户、密钥、集群角色和集群角色绑定都会在 Rancher 服务器上进行监视和缓存因此检查这些资源应该只会带来最小的性能开销。请求图例如在此图中名为 Bob 的用户想要查看下游用户集群名为“用户集群”上运行的所有 Pod。在 Rancher 系统中他可以运行 kubectl 命令来查看 pod。Bob 通过 Rancher 的身份验证代理进行了身份验证。身份验证代理会将所有 Kubernetes API 调用转发到下游集群。它与本地身份验证、Active Directory 和 GitHub 等身份验证服务集成。每次 Kubernetes API 调用时身份验证代理都会对调用者进行身份验证并在将调用转发到 Kubernetes 主节点之前设置正确的 Kubernetes 模拟标头。Rancher 使用 服务帐户与 Kubernetes 集群通信该服务帐户为在 Pod 中运行的进程提供身份标识。默认情况下Rancher 会生成一个 kubeconfig 文件其中包含通过 Rancher 服务器代理连接到下游用户集群上的 Kubernetes API 服务器的凭据。该 kubeconfig 文件kube_config_rancher-cluster.yml拥有对集群的完全访问权限。问答ClusterRole 何时应该更改通常情况下首次登录时会添加 userextras/principalid 和 userextras/username 属性。Rancher 未来对用户额外属性的处理方式进行改进后将不再需要这样做。如果用户添加或更改身份验证提供程序则此设置会发生变化。注意Rancher 目前不支持更改身份验证提供程序。如果身份验证提供程序中用户的组发生更改则此结果也会随之更改。根据用户发出请求的方式UI、kubectl 或 curl令牌可能会有所不同——有时令牌包含不同的用户额外属性。清理工作何时进行当 ClusterRoleTemplateBinding 或 ProjectRoleTemplateBinding 被删除时当用户从​​项目或集群中移除时服务帐户、集群角色和集群角色绑定将被清理。访问Rancher-K8S解决方案博主企业合作伙伴 https://blog.csdn.net/lidw2009

相关文章:

134. Rancher 系统身份验证

它是 Rancher 身份验证代理的一部分: 牛模拟系统是Rancher实现身份验证的关键组成部分。 主体必须明确拥有“冒充”权限才能冒充其他用户。 Rancher 为 Kubernetes 新增的关键特性之一是集中式用户身份验证。该特性允许用户使用一套凭据对任何 Kubernetes 集群进行…...

从torch.argmax到sum:一份PyTorch张量降维操作的全家桶使用指南与避坑手册

从torch.argmax到sum:PyTorch张量降维操作实战指南 在深度学习模型开发和数据处理过程中,PyTorch张量的维度操作是最基础却最容易出错的部分。很多开发者在使用torch.argmax()、sum()、mean()等聚合函数时,经常因为对dim参数理解不透彻而导致…...

别再死记硬背段码表了!用Proteus仿真+51单片机,动态显示数码管的底层原理与优化技巧

51单片机数码管动态显示:从视觉暂留原理到Proteus仿真优化实战 数码管作为嵌入式系统中最经典的人机交互元件之一,其显示效果直接影响用户体验。许多开发者虽然能实现基本功能,却在动态显示时遭遇亮度不均、闪烁严重、CPU占用过高等痛点问题。…...

我的模型总在测试集上翻车?可能是数据增强的‘姿势’不对!避坑指南与场景化策略

模型泛化困境突围:数据增强的精准应用与场景化避坑指南 当你的模型在训练集上表现优异,却在测试集上频频"翻车"时,问题可能出在数据增强这一关键环节。数据增强本应是提升模型泛化能力的利器,但不当使用反而会成为引入噪…...

不止于仿真:如何将Prescan十字路口碰撞结果导入Python进行数据分析与可视化(附代码)

从仿真到决策:Prescan十字路口碰撞数据的Python深度分析实战 在自动驾驶系统开发过程中,仿真测试是不可或缺的关键环节。Prescan与Simulink的强强联合为工程师们提供了高效的虚拟测试环境,但仿真结束后的数据分析往往被忽视。本文将带您突破传…...

告别IIC总线毛刺烦恼:从硬件上拉到软件模拟,我的STM32实战避坑记录

告别IIC总线毛刺烦恼:从硬件上拉到软件模拟,我的STM32实战避坑记录 在嵌入式开发中,IIC总线因其简洁的两线制设计(SDA和SCL)和灵活的多主机架构,成为传感器、EEPROM等外设的常用接口。然而,实际…...

告别静态结构:如何利用Dynamic PDB的1微秒MD模拟数据优化你的蛋白质设计项目

动态结构革命:用1微秒MD模拟数据重塑蛋白质设计方法论 蛋白质设计领域正经历一场静默的革命——当传统方法仍依赖晶体结构的"冻结快照"时,前沿实验室已开始利用动态轨迹数据捕捉分子机器的真实运动状态。最新发布的Dynamic PDB数据集犹如给计算…...

内核可换,生态为王:一文读懂操作系统的三层架构与隐藏的“护城河”

你有没有想过这样一个问题:我们每天都在和操作系统打交道——Windows、macOS、Linux、Android、iOS,这些名字耳熟能详。但如果我问你,“操作系统”到底由什么组成,什么是内核,什么是中间层,什么又是应用程序…...

Degrees of Lewdity汉化版终极配置指南:从零开始的中文游戏体验

Degrees of Lewdity汉化版终极配置指南:从零开始的中文游戏体验 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localiza…...

Loom虚拟线程响应式改造失败率高达63%?这4个关键配置错误你中了几个?

第一章:Loom虚拟线程响应式改造失败率高达63%?这4个关键配置错误你中了几个?Loom 虚拟线程(Virtual Threads)在 Spring Boot 3.2 和 Project Reactor 2023.0.0 中原生支持响应式编程模型,但大量团队在迁移过…...

Claude+Obsidian 5小时速成新领域

别只抄工具!Claude+Obsidian 5小时速成新领域 目录 别只抄工具!Claude+Obsidian 5小时速成新领域 一、一步步复现:原作者的5小时知识框架搭建法 步骤1:理解核心问题 步骤2:列出已知条件 步骤3:逐步推理(以"本体论"为例) 步骤4:原方法的核心结论 二、深度反…...

SOCD Cleaner终极指南:如何彻底解决键盘方向键冲突问题

SOCD Cleaner终极指南:如何彻底解决键盘方向键冲突问题 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏中,你是否曾因同时按下W和S键导致角色卡顿?是否在快速连招时…...

别再傻傻分不清了!SDN南向接口和南向协议到底有啥区别?

解码SDN南向通信:从接口概念到协议实战的深度解析 想象一下你刚搬进一套智能家居系统,墙上布满各种插座(接口),而你的电器设备需要对应插头(协议)才能接入电源。在SDN的世界里,南向…...

如何在Foobar2000中实现专业级歌词同步:3个简单步骤掌握ESLyric歌词源

如何在Foobar2000中实现专业级歌词同步:3个简单步骤掌握ESLyric歌词源 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 想要在Foobar2000中享受…...

百度网盘SVIP破解终极指南:macOS免费解锁高速下载完整教程

百度网盘SVIP破解终极指南:macOS免费解锁高速下载完整教程 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘Mac版的龟速下载而…...

GameFramework资源加载深度解析:从任务池调度到对象池缓存的完整链路

1. GameFramework资源加载机制概览 第一次接触GameFramework的资源管理系统时,我被它精巧的设计所震撼。这套系统完美解决了游戏开发中最头疼的问题之一:如何高效管理成千上万的游戏资源。想象你正在开发一个开放世界游戏,场景中有数百个角色…...

从裸屏到显示“Hello World”:我的STM32F103RFT6驱动1.3寸LCD全记录(附PCB设计)

从零点亮1.3寸LCD:STM32F103RFT6驱动ST7789全流程实战 记得第一次拿到那块1.3寸的裸屏时,我盯着24个引脚发呆——没有现成的底板,没有即插即用的排针,只有一份全英文的datasheet。作为嵌入式开发者,这种从零开始的硬件…...

告别Techpoint和Nextchip!实测国产XS9922A/B芯片在车载DVR上的完整替换流程

国产XS9922A/B芯片在车载DVR中的实战替换指南 最近两年,车载电子行业面临着一个共同的挑战:进口芯片供应不稳定导致项目延期风险陡增。作为一名长期从事车载DVR设计的硬件工程师,我亲历了从Techpoint TP9930到国产XS9922B的完整替换过程。这…...

告别蓝牙信标:用ESP32-S2的WiFi FTM功能,低成本实现米级精度室内定位原型

告别蓝牙信标:用ESP32-S2的WiFi FTM功能,低成本实现米级精度室内定位原型 在智能仓储、商场导航和工业自动化等场景中,室内定位技术正成为基础设施的关键部分。传统方案如蓝牙信标或UWB虽然成熟,但面临着硬件成本高、部署复杂和生…...

拆解手机耳机孔:ECM麦克风、ACCDET检测与CODEC连接的完整信号链路分析

手机耳机孔信号链路全解析:从ECM麦克风到CODEC的精密协作 当我们将一副耳机插入手机时,这个看似简单的动作背后隐藏着一套精密的电子系统协同工作。从耳机插头的物理接触到最终声音信号的数字处理,整个链路涉及检测、供电、信号调理等多个关键…...

别再傻傻拼手速了!用Java实现微信/支付宝那种‘拼手气红包’的公平算法(附完整代码)

揭秘微信红包背后的公平算法:用Java实现拼手气红包系统 每次在群里抢红包时,你是否好奇过为什么有人能抢到大额红包,而有人只能拿到几分钱?这背后其实是一套精心设计的算法在运作。本文将带你深入理解主流支付平台的拼手气红包实…...

新手避坑指南:从零组装你的第一台Pixhawk四旋翼无人机(附PX4固件刷写教程)

新手避坑指南:从零组装你的第一台Pixhawk四旋翼无人机(附PX4固件刷写教程) 刚拆开快递箱时,那些散落的电机、飞控和电调模块可能会让你手足无措——这正是三年前我的真实写照。作为过来人,我整理出这份包含21个关键检查…...

遥感图像融合避坑指南:为什么你的模型总有光谱畸变?从TFNet论文看特征域融合的优越性

遥感图像融合避坑指南:为什么你的模型总有光谱畸变?从TFNet论文看特征域融合的优越性 当你在卫星图像处理项目中反复调试参数,却发现融合结果总是出现色彩失真或边缘模糊时,问题很可能出在传统方法对图像域融合的过度依赖上。2020…...

别再混淆了!一文搞懂赛灵思FPGA中ODDR/IDDR的三种工作模式(附时序图对比)

赛灵思FPGA中ODDR/IDDR工作模式深度解析与实战指南 在数字电路设计中,双倍数据速率(DDR)接口技术因其高效的数据传输能力而广受欢迎。赛灵思FPGA中的ODDR(输出双倍数据速率)和IDDR(输入双倍数据速率)原语是实现DDR接口的关键组件,但许多开发者对其三种工…...

别再为OpenFileDialog的STA异常头疼了:一份给C#桌面开发者的线程安全文件操作指南

彻底解决C#文件对话框的STA线程陷阱:从原理到实战的完整方案 在桌面应用开发中,文件选择对话框(OpenFileDialog/SaveFileDialog)是最常用的功能之一,但许多开发者都曾遇到过那个令人头疼的错误提示:"…...

FairyGUI遮罩与滚动视图实战:从UI组件溢出处理到流畅列表的实现(Unity 2022)

FairyGUI遮罩与滚动视图实战:从UI组件溢出处理到流畅列表的实现(Unity 2022) 在Unity游戏开发中,UI系统的灵活性和性能往往是决定用户体验的关键因素。FairyGUI作为一款强大的UI解决方案,其设计哲学和实现机制为开发者…...

C# 14 AOT × Dify客户端:为什么92%的金融与政务客户已强制要求AOT编译?3个合规性红线与4步过审指南

第一章:C# 14 AOT Dify客户端:金融与政务场景的合规性演进全景随着金融与政务系统对启动性能、内存确定性及二进制可控性的要求持续提升,C# 14 原生 AOT(Ahead-of-Time)编译能力与 Dify 客户端的轻量级 LLM 集成能力正…...

终极CAN数据库转换指南:3个常见痛点与canmatrix的完整解决方案

终极CAN数据库转换指南:3个常见痛点与canmatrix的完整解决方案 【免费下载链接】canmatrix Converting Can (Controller Area Network) Database Formats .arxml .dbc .dbf .kcd ... 项目地址: https://gitcode.com/gh_mirrors/ca/canmatrix 你知道吗&#x…...

告别uboot启动失败:深入解析i.MX6平台SD卡检测(CD)引脚的配置与调试

告别uboot启动失败:深入解析i.MX6平台SD卡检测(CD)引脚的配置与调试 在嵌入式Linux开发中,SD卡作为常见的启动和存储介质,其稳定性和可靠性直接影响整个系统的运行。然而,许多开发者在使用i.MX6系列处理器时,都曾遇到过…...

RTX5互斥量避坑指南:优先级继承、递归锁与Robust属性到底怎么选?

RTX5互斥量深度配置指南:优先级继承、递归锁与健壮属性的实战选择 在嵌入式实时操作系统开发中,资源竞争问题就像一场精心编排的交响乐——每个乐器(线程)都需要在正确的时间发声。RTX5作为ARM生态中广泛采用的RTOS,其…...