返回顶部
首页 > 资讯 > 精选 >KubeSphere分级管理怎么实现
  • 150
分享到

KubeSphere分级管理怎么实现

2023-07-02 12:07:38 150人浏览 八月长安
摘要

这篇“KubeSphere分级管理怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“KubeSphere分级管理怎么实现

这篇“KubeSphere分级管理怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“KubeSphere分级管理怎么实现”文章吧。

为什么要在 KuberSphere 上实现分级管理

在 KubeSphere 中,资源可以在租户之间共享,根据分配的不同角色,可以对各种资源进行操作。租户与资源之间、资源与资源之间的自由度很高,权限粒度也比较大。在我们的系统中,资源是有权限等级的,像是低等级用户可以通过邀请、赋予权限等操作来操作高等级资源,或者像是低等级项目中的 Pod 可以调度到高等级的节点上,对资源。诸如此类跨等级操作资源等问题,我们在 KubeSphere 基础上来实现了分级管理。

什么是分级体系

分级,顾名思义就是按照既定的标准对整体进行分解、分类。我们将其抽象成一个金字塔模型,从地基到塔顶会有很多个层级,我们将公共资源作为金字塔的地基,拥有最高权限的 admin 作为塔顶,其他资源按照权限等级划分成不同等级。低层级资源是不能访问高等级资源,高等级资源可以获取它等级之下的所有资源,构建了这样一个权益递减、层级间隔离的分级体系。

KubeSphere分级管理怎么实现

如何实现分级管理

我们定义了一个代表等级的标签 kubernetes.io/level。以一个多节点的集群为例,首先我们会给用户、企业空间、节点等资源打上代表等级的标签。在邀请用户加入企业空间或者项目时,要求加入的企业空间或者项目的等级不得高于用户的等级,同样项目在绑定企业空间时,也要求项目的等级不得高于企业空间的等级,才能对资源进行纳管;我们认为同一项目下的资源的等级是相同的,基于项目创建的负载、Pod、服务等资源的等级跟项目保持一致;同时 Pod 中加入节点亲和性,以使 Pod 调度到不高于其权限等级的节点上。

KubeSphere分级管理怎么实现

例如这里,我们创建了一个权限等级是 3 的用户 demo-user,他可以加入权限等级不高于3的企业空间或者项目中。

kind: UserapiVersion: iam.kubesphere.io/v1alpha2metadata:  name: demo-user  labels:    kubernetes.io/level: 3spec:  email: demo-user@kubesphere.io

创建一个权限等级是 2 的项目 demo-ns,那么基于项目创建的负载、Pod、存储等资源的权限等级也是 2。

apiVersion: v1kind: Namespacemetadata:   name: demo-ns   labels:     kubernetes.io/level: 2

基于 demo-ns 项目创建了一个Nginx 的 Pod,他的权限等级也是 2,同时加入节点亲和性,要求其调度到权限等级不高于 2 的节点上。

apiVersion: apps/v1kind: Podmetadata:  labels:    kubernetes.io/level: 2  name: nginxspec:  containers:  - name: nginx    image: nginx    imagePullPolicy: IfNotPresent    ports:    - containerPort: 80      protocol: tcp  affinity:    nodeAffinity:      requiredDuringSchedulingIgnoredDuringExecution:       nodeSelectorTerms:        - matchExpressions:          - key: kubernetes.io/level            operator: Lt            values:            - 2        - matchExpressions:          - key: kubernetes.io/level            operator: In            values:            - 2

如何实现资源的升降级

在分级管理体系中,支持等级的无限划分,只需要定义一个中间值,就可以在两个等级之间插入一个新的等级,无需操作其他资源;在对资源进行升降级时,只需要修改对应资源的 label 标签,就可以对资源进行升降级操作。当然,在对资源进行升降级的时候,我们需要对资源进行检测,保证升级时,其上层资源的权限等级不得低于目标等级;同时,降级时,其下层资源的权限等级不得高于目标等级。在不满足升降级操作条件时,需要将对应资源也做相应调整才可以。

KubeSphere分级管理怎么实现

不同层级间 Pod 的网络隔离

在分级体系中,我们要求高等级的 Pod 能访问低等级的 Pod,但是低等级的 Pod 不能访问高等级的 Pod,那我们需要如何保证不同层级间 Pod 的网络通信呢。

项目在不开启网络隔离的情况下,Pod 间的网络是互通的,所以这里会新增一个黑名单的网络策略。

apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: deny-all  namespace: demo-ns  labels:    kubernetes.io/level: 2spec:  podSelector: {}  policyTypes:  - Ingress

podSelector:{} 作用于项目中所有 Pod,阻止所有流量的流入。

然后放行标签等级大于目标等级(这里是 2)的流量流入(我们对 Ingress 流量没有做限制)。

apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: level-match-network-policy  namespace: demo-ns  labels:    kubernetes.io/level: 2spec:  podSelector:    matchExpressions:    - key: kubernetes.io/level      operator: Gt      values:      - 2  policyTypes:  - Ingress

以上就是关于“KubeSphere分级管理怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: KubeSphere分级管理怎么实现

本文链接: https://lsjlt.com/news/341983.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • KubeSphere分级管理怎么实现
    这篇“KubeSphere分级管理怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“KubeSphere分级管理怎么实现...
    99+
    2023-07-02
  • KubeSphere分级管理实践及解析
    目录前言为什么要在 KuberSphere 上实现分级管理什么是分级体系如何实现分级管理如何实现资源的升降级不同层级间 Pod 的网络隔离总结前言 K8s 是容器编排和分布式应用部署...
    99+
    2024-04-02
  • Hibernate分页管理怎么实现
    本篇内容主要讲解“Hibernate分页管理怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hibernate分页管理怎么实现”吧!Hibernate中,通过对不同数据库的统一接口设计,实...
    99+
    2023-06-17
  • Java实现班级管理系统
    本文为大家分享了Java实现班级管理系统的具体代码,供大家参考,具体内容如下 需求:班级管理系统 功能:对学生的信息进行管理 1 登录系统   2 退出系统  &...
    99+
    2024-04-02
  • 怎么用Java Vector实现班级信息管理系统
    这篇文章主要介绍“怎么用Java Vector实现班级信息管理系统”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用Java Vector实现班级信息管理系统”文章能帮助大家解...
    99+
    2023-06-29
  • Java实现简单班级管理系统
     本文设计一个简单的班级管理系统,满足如下要求: 1、设计学生类Student,包含学号(String型)、姓名(String型)、性别(‘M’/&...
    99+
    2024-04-02
  • C++实现班级成绩管理系统
    本文实例为大家分享了C++实现班级成绩管理系统的具体代码,供大家参考,具体内容如下 本文定义了一个学生类的结构体,通过vector 数组来存储这个结构体。通过运算求出每个同学的总分,...
    99+
    2024-04-02
  • JavaVector实现班级信息管理系统
    Vector实现班级信息管理系统,供大家参考,具体内容如下 代码如下: import java.util.*; public class Demo3 {     public sta...
    99+
    2024-04-02
  • python实现班级档案管理系统
    本文实例为大家分享了python实现班级档案管理系统的具体代码,供大家参考,具体内容如下 功能要求 一、对一个有N个学生的班级,通过该系统实现对班级学生的基本信息进行录入、显示、修改...
    99+
    2024-04-02
  • Vue后台管理系统怎么实现分页功能
    这篇文章主要介绍“Vue后台管理系统怎么实现分页功能”,在日常操作中,相信很多人在Vue后台管理系统怎么实现分页功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue后台管理系统怎么实现分页功能”的疑惑有所...
    99+
    2023-06-21
  • 怎么用springboot+vue实现垃圾分类管理系统
    这篇文章主要介绍“怎么用springboot+vue实现垃圾分类管理系统”,在日常操作中,相信很多人在怎么用springboot+vue实现垃圾分类管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用...
    99+
    2023-06-20
  • spring怎么实现事务管理
    Spring框架提供了多种方式来实现事务管理。下面是几种常见的方式:1. 声明式事务管理:使用Spring的事务管理器和注解或XML...
    99+
    2023-09-28
    spring
  • C#怎么实现用户管理
    这篇文章主要介绍了C#怎么实现用户管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#怎么实现用户管理文章都会有所收获,下面我们一起来看看吧。开始:一、用户关注与退订事件:在之前的消息处理中,我们在UserM...
    99+
    2023-07-02
  • svn高效管理怎么实现
    本篇内容介绍了“svn高效管理怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!svn通过采用分支管理系统的高效管理;简而言之就是用于多...
    99+
    2023-07-02
  • Java LinkedList实现班级信息管理系统
    LinkedList实现班级信息管理系统,供大家参考,具体内容如下 代码如下: import java.util.*; public class Demo2 {     public...
    99+
    2024-04-02
  • Java ArrayList实现班级信息管理系统
    ArrayList实现班级信息管理系统,供大家参考,具体内容如下 代码如下: import java.util.*; public class Demo1 {     public ...
    99+
    2024-04-02
  • Android中怎么实现星级评分条
    今天就跟大家聊聊有关Android中怎么实现星级评分条,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。getRating()方法:获取等级,表示你当前选中了几颗星星2、getStepS...
    99+
    2023-05-30
    android
  • android轻量级无侵入式管理数据库自动升级组件怎么实现
    这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“android...
    99+
    2023-07-05
  • MYSQL数据库管理中怎么实现权限管理
    本篇文章为大家展示了MYSQL数据库管理中怎么实现权限管理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 MYSQL权限简介关于mysql的权限简单的理解就是m...
    99+
    2024-04-02
  • Docker怎么实现自动分配和管理资源限制
    Docker可以通过使用资源限制功能来自动分配和管理资源。在Docker中,可以使用以下几种方法来限制和管理容器的资源: CPU...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作