Agent Infra - Envoy AI Gateway
OverviewEnvoy AI Gateway is an open source project for using Envoy Gateway to handle request traffic from application clients to Generative AI services. Usage When using Envoy AI Gateway, we refer to a two-tier gateway pattern. The Tier One Gateway functions as a centralized entry point handles authentication, top-level routing, and global rate limiting The Tier Two Gateway handles ingress traffic to a self-hosted model serving cluster provides fine-grained control over self-hosted model access, wi...
K8S Orchestration - KRO V4
Basics核心概念 Resources 定义了当用户创建自定义 API 实例时,KRO 将创建和管理的 Kubernetes 对象 每个 Resource 都是有效的 Kubernetes YAML,可以使用 CEL 表达式实现动态值注入 Resource 结构 每个 Resource 必须包含两个核心字段 123456789resources: - id: deployment # 唯一标识符 template: # Kubernetes 资源模板 apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 3 字段 说明 id 在 RGD 内唯一标识资源,用于在 CEL 表达式中引用 template 有效的 Kubernetes 资源清单 ID 命名规范(重要) Resource ID 必须使用 lowerCamelCase 格式 1234✓ 有效: dep...
K8S Orchestration - KRO V3
核心概念 ResourceGraphDefinition (RGD) 的 schema 部分定义了自定义 API 的形状 创建一个 RGD 时,kro 会基于这个 schema 生成一个 CRD,用户就可以实例化这个 CRD 核心功能API 身份标识 生成的 CRD API 将是 mycompany.io/v1alpha1,资源名为 applications.mycompany.io 1234schema: apiVersion: v1alpha1 # API 版本 kind: Application # 资源类型 group: mycompany.io # API 组(可选,默认 kro.run) 作用域12schema: scope: Cluster # 或 Namespaced(默认) 值 描述 Namespaced 实例存在于 namespace 内(默认) Cluster 实例是集群级别的 使用 scope: Cluster 时,所有 namespaced 资源必须显式设置 metada...
K8S Orchestration - KRO V2
ResourceGraphDefinitions概述生命周期 写一个 RGD YAML,kro 就帮你把它变成一个完整的 Operator 定义 RGD 是 KRO 中唯一需要你编写的 API 定义 Schema - 用户能看到/配置哪些字段 定义 Resources - 底层要创建哪些 K8s 资源 用 CEL 表达式把 Schema 的值绑定到 Resources 上 执行 apply 这个 RGD 后,kro 全自动完成 生成 CRD - 把你的 Schema 转成真正的 Kubernetes API 注册到 API Server - 集群里立刻就能用 kubectl get Application 这样的命令 监听实例 - 用户创建实例后,kro 按依赖拓扑排序创建底层资源,并持续管理生命周期 How it Works RGD 从定义到运行的 4 步核心流程:你定义蓝图 → kro 造工厂 → 用户下订单 → kro 自动生产 步骤 谁 做什么 1 你 写一个 RGD,定义新的 API(比如 Application) 2 kro 自动生成 CRD,注...
K8S Orchestration - KRO V1
概述 KRO 是 Kubernetes SIG Cloud Provider 下的子项目,旨在简化 Kubernetes 中复杂自定义资源的创建和管理 核心概念 KRO 的核心自定义资源是 ResourceGraphDefinition - RGD,它允许你: 将多个 Kubernetes 资源组合成一个可复用的组件 定义资源之间的依赖关系 为这些资源提供默认配置 工作原理123456789101112131415161718192021222324252627282930313233343536373839flowchart TB subgraph User["用户层"] A["📝 ResourceGraphDefinition<br/>(RGD)"] B["创建资源实例"] end subgraph KRO["KRO 控制层"] C["🔄 KRO Controller"] D["🔍 分析依...
Authorization - Casbin API
Overview Casbin 的 API 分三大类:鉴权 API、管理 API、RBAC API 123456789101112131415161718flowchart TB API[Casbin API] API --> ENFORCE[鉴权 API] API --> MGMT[管理 API] API --> RBAC[RBAC API] ENFORCE --> E1[Enforce<br/>检查权限] ENFORCE --> E2[EnforceEx<br/>检查权限 + 返回命中策略] ENFORCE --> E3[BatchEnforce<br/>批量检查] MGMT --> M1[Get 系列<br/>查询策略和角色] MGMT --> M2[Add / Remove / Update<br/>增删改策略] MGMT --> M3[AddEx 系列<br/>跳过已存在规则的批量添加] RBAC --...
Authorization - Casbin Management
Admin PortalCasdoor - 官方管理平台 Casdoor 是 Casbin 团队自己开发的 Web 端身份与访问管理平台,提供 Model Editor(模型编辑器):可视化编辑 Casbin 模型(如 RBAC、ABAC 等的 .conf 文件) Policy Editor(策略编辑器):可视化编辑策略规则(policy) 本质上就是一个 Casbin 的 GUI 管理后台,让你不用手写配置文件,通过网页界面就能管理权限模型和策略 第三方开源 Admin 项目 表格列出的是 基于 Casbin 做鉴权的开源后台管理系统,当前展示的是 Go 语言 部分的项目 项目 核心技术栈 亮点 Casdoor Beego + XORM + React 官方出品,功能最全 go-admin Gin + GORM + Vue + Element UI 社区活跃,国产热门脚手架 gin-vue-admin Gin + GORM + Vue + Element UI 非常流行的 Go 后台框架 gin-admin Gin + GORM + React + Ant De...
Authorization - Casbin Plugin
Overview Casbin 的核心只负责策略执行逻辑(model + policy),而插件负责连接外部世界 - 数据库、消息队列、Web 框架等 类别 中文名 作用 Enforcers 专用执行器 针对特定环境或场景定制的执行器 Adapters 存储适配器 对接数据库/文件/云存储,读写 model 和 policy Watchers 变更监听器 多实例之间同步 policy 变更 Dispatchers 分发协调器 分布式部署下协调策略更新 Role Managers 角色管理器 自定义角色继承/层级逻辑 Middlewares 框架中间件 集成 Gin、Nest.js、GraphQL、Kong 等 Adapters(最常用) 解决”policy 存哪“的问题 支持 MySQL、PostgreSQL、Redis、MongoDB、文件等 Casbin 核心本身只内置了文件 Adapter Watchers(分布式关键) 解决”多个 Casbin 实例间 policy 如何保持一致“的问题 典型实现:Redis ...
Authorization - Casbin Use Cases
Data Permissions(数据权限)Implicit Roles & Permissions(隐式角色与权限) RBAC 中权限有两种获取方式: 方式 说明 对应 API 直接赋予 直接把角色/权限分配给用户 GetRolesForUser() / GetPermissionsForUser() 隐式继承 通过角色继承链传递下来的 GetImplicitRolesForUser() / GetImplicitPermissionsForUser() 示例: 12g, alice, adming, admin, superuser GetRolesForUser(alice) → 只返回 [admin](直接分配) GetImplicitRolesForUser(alice) → 返回 [admin, superuser](含继承链) 如果你要做数据过滤(比如”用户能看哪些数据行”),必须用隐式版本,否则继承来的权限会被漏掉 BatchEnforce()(批量鉴权) 一次调用传入多个 [subject, object, ...
Authorization - Casbin Storage
Model Storage Casbin 中模型的三种加载方式 模型是”只读“的 Casbin 的 Model 定义了访问控制逻辑(谁能对什么资源做什么操作),运行时被视为静态配置 没有 API 可以保存或更新模型 - 它是设计时确定的,不是动态变化的 关键区别 方式 适用场景 优点 CONF 文件 大多数情况 清晰、可分享、易维护 代码构建 需要程序化组装模型 灵活、可条件拼接 字符串 配置中心/DB 存储 适合集中管理 三种方式加载的模型内容完全相同,区别只在于来源不同 模型一旦加载完成,后续的动态变化都体现在 Policy(策略) 上,而不是 Model 上 从 .conf 文件加载(推荐) 最常用的方式,把模型定义写在独立的配置文件中,便于分享和讨论 1234567891011121314[request_definition] # 请求定义:请求有哪些字段r = sub, obj, act # sub=主体, obj=客体/资源, act=操作...









