访问控制2

news2025/1/11 5:09:25

文章目录

主要内容

  1. Role和ClusterRole
  2. 网络策略

一.Role和ClusterRole

RBAC API 声明了四种 Kubernetes 对象:Role、ClusterRole、RoleBinding 和ClusterRoleBinding.
RBAC 的 Role 或 ClusterRole 中包含一组代表相关权限的规则,这些权限是纯粹累加的(不存在拒绝某操作的规则)。Role 总是用来在某个命名空间内设置访问权限;在创建 Role 时,必须指定该 Role 所属的名字空间。ClusterRole 则是一个集群作用域的资源。这两种资源的名字不同(Role 和 ClusterRole)是因为 Kubernetes 对象要么是名字空间作用域的,要么是集群作用域的,不可两者兼具。
如果希望在命名空间内定义角色,就应该使用 Role,如果希望定义集群范围的角色,则应该使用 ClusterRole。

1.ClusterRole示例,创建一个名为test-clusterrole且仅有创建Pod和deployment的集群角色

代码如下(示例):
kubectl create clusterrole --resource=pod,deployment --verb=create,get test-clusterrole
kubectl describe clusterrole test-clusterrole
kubectl delete clusterrole test-clusterrole

在这里插入图片描述

2.YAML文件创建

代码如下(示例):
cat > clusterrole.yml <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: test-clusterrole
rules:
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - create
  - get
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - create
  - get
EOF

kubectl create -f clusterrole.yml
kubectl describe clusterrole test-clusterrole

在这里插入图片描述

3.将udbs用户和Clusterrole进行绑定,并测试权限

代码如下(示例):
kubectl create clusterrolebinding --clusterrole=test-clusterrole --serviceaccount=test:udbs udbs-clusterbind
kubectl describe clusterrolebinding udbs-clusterbind

在这里插入图片描述

kubectl auth can-i get pods --as=system:serviceaccount:test:udbs
kubectl auth can-i create pods --as=system:serviceaccount:test:udbs
kubectl auth can-i create deployments --as=system:serviceaccount:test:udbs
kubectl auth can-i create secret --as=system:serviceaccount:test:udbs
kubectl auth can-i create service --as=system:serviceaccount:test:udbs

在这里插入图片描述

5.解释

1. `kubectl create clusterrole --resource=pod,deployment --verb=create,get test-clusterrole`:这个命令创建了一个名为"test-clusterrole"的ClusterRole对象。该ClusterRole对象的规则指定了对"pods""deployments"资源的"create""get"权限。

2. `kubectl describe clusterrole test-clusterrole`:这个命令获取名为"test-clusterrole"的ClusterRole对象的详细描述信息。它会显示ClusterRole对象的名称、规则等信息。

3. `kubectl delete clusterrole test-clusterrole`:这个命令删除名为"test-clusterrole"的ClusterRole对象。

4. `cat > clusterrole.yml <<EOF ... EOF`:这个命令将ClusterRole的定义写入到名为"clusterrole.yml"的文件中。文件内容包括ClusterRole对象的API版本、类型、元数据和规则。

5. `kubectl create -f clusterrole.yml`:这个命令使用"clusterrole.yml"文件中的定义创建ClusterRole对象。

6. `kubectl describe clusterrole test-clusterrole`:这个命令获取名为"test-clusterrole"的ClusterRole对象的详细描述信息。

7. `kubectl create clusterrolebinding --clusterrole=test-clusterrole --serviceaccount=test:udbs udbs-clusterbind`:这个命令创建一个名为"udbs-clusterbind"的ClusterRoleBinding对象。该ClusterRoleBinding对象将"test-clusterrole" ClusterRole与"test:udbs" ServiceAccount关联起来。

8. `kubectl describe clusterrolebinding udbs-clusterbind`:这个命令获取名为"udbs-clusterbind"的ClusterRoleBinding对象的详细描述信息。它会显示ClusterRoleBinding对象的名称、关联的ClusterRole、关联的ServiceAccount等信息。

9. `kubectl auth can-i get pods --as=system:serviceaccount:test:udbs`:这个命令用于检查"test:udbs" ServiceAccount是否具有获取pods的权限。它会返回一个布尔值,指示是否具有该权限。

10. `kubectl auth can-i create pods --as=system:serviceaccount:test:udbs`:这个命令用于检查"test:udbs" ServiceAccount是否具有创建pods的权限。

11. `kubectl auth can-i create deployments --as=system:serviceaccount:test:udbs`:这个命令用于检查"test:udbs" ServiceAccount是否具有创建deployments的权限。

12. `kubectl auth can-i create secret --as=system:serviceaccount:test:udbs`:这个命令用于检查"test:udbs" ServiceAccount是否具有创建secrets的权限。

13. `kubectl auth can-i create service --as=system:serviceaccount:test:udbs`:这个命令用于检查"test:udbs" ServiceAccount是否具有创建services的权限。

这些命令的目的是创建和管理ClusterRole、ClusterRoleBinding对象,并验证ServiceAccount是否具有特定资源的特定权限。通过这些命令,可以实现对ServiceAccount的权限分配和权限验证。

二.网络策略

网络策略(Network Policies)是Kubernetes中用于控制Pod之间网络通信的一种机制。它允许您定义规则来限制哪些Pod可以与其他Pod通信,以及允许的通信协议、端口等。网络策略可以帮助提高集群的安全性,并允许您细粒度地控制Pod之间的通信。

网络策略的基本概念和用法如下:

  1. 网络策略资源:在Kubernetes中,网络策略由NetworkPolicy资源表示。您可以使用kubectl命令或YAML文件来创建、查看和删除NetworkPolicy。

  2. 选择器(Selectors):您可以使用选择器来定义哪些Pod受网络策略的影响。选择器可以基于标签(Label)来选择Pod。

  3. 规则(Rules):网络策略由一组规则组成。每个规则定义了允许或拒绝哪些流量的详细规则。规则可以基于源Pod、目标Pod、协议、端口等条件来定义。

  4. 默认策略(Default Policies):当没有定义任何网络策略时,集群将采用默认策略。默认情况下,所有Pod都可以相互通信。您可以定义默认策略以限制Pod之间的通信。

  5. 网络插件支持:网络策略的实现依赖于所使用的网络插件。不同的网络插件对网络策略的支持程度可能会有所不同。

使用网络策略的步骤如下:

  1. 启用网络策略:首先,您需要确保所使用的网络插件支持网络策略,并已在集群中启用。

  2. 创建NetworkPolicy:使用kubectl命令或YAML文件创建NetworkPolicy资源。在NetworkPolicy中定义选择器和规则,以控制Pod之间的通信。

  3. 应用NetworkPolicy:创建NetworkPolicy后,它将立即生效,并开始限制Pod之间的通信。

  4. 验证网络策略:您可以使用kubectl命令或其他工具来验证网络策略是否按预期工作。例如,您可以尝试从一个Pod发送流量到另一个Pod,并确保它符合NetworkPolicy中定义的规则。

总结来说,网络策略是一种用于控制Kubernetes集群中Pod之间网络通信的机制。通过定义选择器和规则,您可以限制哪些Pod可以与其他Pod通信,并允许的通信协议、端口等。网络策略可以提高集群的安全性,并允许您细粒度地控制Pod之间的通信。

1.在名为memdb的namespace中,创建一个仅允许来自名为mobapp的namespace连接的网络策略。

代码如下(示例):
kubectl create namespace memdb
kubectl create namespace mobapp

在这里插入图片描述

2.在memdb namespace中创建一个Pod

代码如下(示例):
cat > nppod.yml <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: pod
  namespace: memdb
  labels:
    app: httpd
spec:
  containers:
  - name: httpd
    image: httpd
    ports:
      - name: web
        containerPort: 80
  restartPolicy: OnFailure
EOF
kubectl create -f nppod.yml
kubectl get pod -n memdb  -o wide

在这里插入图片描述

3.解释

1. `kubectl create namespace memdb`:这个命令用于创建一个名为"memdb"的命名空间。命名空间是Kubernetes中用于组织和隔离资源的一种方式。

2. `kubectl create namespace mobapp`:这个命令用于创建一个名为"mobapp"的命名空间,同样是用于组织和隔离资源的命名空间。

3. `cat > nppod.yml <<EOF`:这个命令用于创建一个名为"nppod.yml"的YAML文件,并将其内容输入到该文件中。

4. `apiVersion: v1`:这行指定了使用的Kubernetes API的版本。

5. `kind: Pod`:这行指定了要创建的资源类型是Pod。

6. `metadata:`:这个部分用于指定Pod的元数据,例如名称、命名空间和标签等。

7. `name: pod`:这行指定了Pod的名称为"pod"8. `namespace: memdb`:这行指定了Pod所属的命名空间为"memdb"9. `labels:`:这个部分用于指定Pod的标签。

10. `app: httpd`:这行指定了一个名为"app"的标签,其值为"httpd"11. `spec:`:这个部分用于指定Pod的规格,包括容器和重启策略等。

12. `containers:`:这个部分用于指定Pod中的容器。

13. `- name: httpd`:这行指定了容器的名称为"httpd"14. `image: httpd`:这行指定了容器所使用的镜像为"httpd",即Apache HTTP服务器。

15. `ports:`:这个部分用于指定容器的端口映射。

16. `- name: web`:这行指定了一个名为"web"的端口映射。

17. `containerPort: 80`:这行指定了容器内部的端口为80。

18. `restartPolicy: OnFailure`:这行指定了Pod的重启策略为"OnFailure",即在容器失败时重启Pod。

19. `EOF`:这个标记表示输入到文件中的内容结束。

20. `kubectl create -f nppod.yml`:这个命令用于创建一个Pod,其配置定义在"nppod.yml"文件中。

21. `kubectl get pod -n memdb -o wide`:这个命令用于获取"memdb"命名空间中的所有Pod,并以表格形式显示详细信息。其中,"-n memdb"指定了命名空间为"memdb""-o wide"指定了显示详细信息,包括IP地址和节点等。

4.在另外一个mobapp namespace中创建一个Pod

代码如下(示例):
cat > nppod1.yml <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: pod1
  namespace: mobapp
  labels:
    app: nginx
spec:
  containers:
  - name: httpd
    image: httpd
    ports:
      - name: web
        containerPort: 80
  restartPolicy: OnFailure
EOF


kubectl create -f nppod1.yml
kubectl get pod -n mobapp -o wide

在这里插入图片描述

5.创建网络策略

代码如下(示例):
cat > np.yml <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-from-namesapce-mobapp
  namespace: memdb
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: mobapp
    ports:
    - protocol: TCP
      port: 80
EOF

kubectl create -f np.yml

在这里插入图片描述

6.创建测试用例

代码如下(示例):
cat > nptest.yml <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: pod-default
spec:
  containers:
  - name: busybox
    image: busybox
    command:
      - /bin/sh
      - -c
      - "sleep 10m"
  restartPolicy: OnFailure
EOF

kubectl create -f nptest.yml

在这里插入图片描述

kubectl exec -it pod-default -- wget 172.16.245.1
kubectl exec -it pod-default -- wget 172.16.93.194 

访问没有被网络策略选中的Pod,可以看到访问成功:
在这里插入图片描述
而访问被网络策略选中的Pod时,则访问被禁止
在这里插入图片描述

7.解释

以下是您提供的代码片段的详细解释:

1. `cat > nppod1.yml <<EOF`:这个命令用于创建一个名为"nppod1.yml"的YAML文件,并将其内容输入到该文件中。

2. `apiVersion: v1`:这行指定了使用的Kubernetes API的版本。

3. `kind: Pod`:这行指定了要创建的资源类型是Pod。

4. `metadata:`:这个部分用于指定Pod的元数据,例如名称、命名空间和标签等。

5. `name: pod1`:这行指定了Pod的名称为"pod1"6. `namespace: mobapp`:这行指定了Pod所属的命名空间为"mobapp"7. `labels:`:这个部分用于指定Pod的标签。

8. `app: nginx`:这行指定了一个名为"app"的标签,其值为"nginx"9. `spec:`:这个部分用于指定Pod的规格,包括容器和重启策略等。

10. `containers:`:这个部分用于指定Pod中的容器。

11. `- name: httpd`:这行指定了容器的名称为"httpd"12. `image: httpd`:这行指定了容器所使用的镜像为"httpd",即Apache HTTP服务器。

13. `ports:`:这个部分用于指定容器的端口映射。

14. `- name: web`:这行指定了一个名为"web"的端口映射。

15. `containerPort: 80`:这行指定了容器内部的端口为80。

16. `restartPolicy: OnFailure`:这行指定了Pod的重启策略为"OnFailure",即在容器失败时重启Pod。

17. `kubectl create -f nppod1.yml`:这个命令用于创建一个Pod,其配置定义在"nppod1.yml"文件中。

18. `kubectl get pod -n mobapp -o wide`:这个命令用于获取"mobapp"命名空间中的所有Pod,并以表格形式显示详细信息。其中,"-n mobapp"指定了命名空间为"mobapp""-o wide"指定了显示详细信息,包括IP地址和节点等。

19. `cat > np.yml <<EOF`:这个命令用于创建一个名为"np.yml"的YAML文件,并将其内容输入到该文件中。

20. `apiVersion: networking.k8s.io/v1`:这行指定了使用的Kubernetes网络策略API的版本。

21. `kind: NetworkPolicy`:这行指定了要创建的资源类型是网络策略。

22. `metadata:`:这个部分用于指定网络策略的元数据,例如名称和命名空间等。

23. `name: allow-from-namesapce-mobapp`:这行指定了网络策略的名称为"allow-from-namesapce-mobapp"24. `namespace: memdb`:这行指定了网络策略所属的命名空间为"memdb"25. `spec:`:这个部分用于指定网络策略的规格,包括Pod选择器和策略类型等。

26. `podSelector: {}`:这行指定了应用网络策略的Pod选择器为空,即适用于所有Pod。

27. `policyTypes:`:这个部分用于指定策略类型。

28. `- Ingress`:这行指定了策略类型为入口流量。

29. `ingress:`:这个部分用于指定入口流量的规则。

30. `- from:`:这行指定了入口流量的来源。

31. `- namespaceSelector:`:这行指定了命名空间选择器。

32. `matchLabels:`:这行指定了匹配标签。

33. `name: mobapp`:这行指定了一个名为"name"的标签,其值为"mobapp"34. `ports:`:这个部分用于指定允许的端口。

35. `- protocol: TCP`:这行指定了允许的协议为TCP。

36. `port: 80`:这行指定了允许的端口为80。

37. `kubectl create -f np.yml`:这个命令用于创建一个网络策略,其配置定义在"np.yml"文件中。

38. `cat > nptest.yml <<EOF`:这个命令用于创建一个名为"nptest.yml"的YAML文件,并将其内容输入到该文件中。

39. `apiVersion: v1`:这行指定了使用的Kubernetes API的版本。

40. `kind: Pod`:这行指定了要创建的资源类型是Pod。

41. `metadata:`:这个部分用于指定Pod的元数据,例如名称和标签等。

42. `name: pod-default`:这行指定了Pod的名称为"pod-default"43. `spec:`:这个部分用于指定Pod的规格,包括容器和重启策略等。

44. `containers:`:这个部分用于指定Pod中的容器。

45. `- name: busybox`:这行指定了容器的名称为"busybox"46. `image: busybox`:这行指定了容器所使用的镜像为"busybox"47. `command:`:这个部分用于指定容器的启动命令。

48. `- /bin/sh`:这行指定了容器的启动命令为"/bin/sh"49. `- -c`:这行指定了容器的命令参数为"-c"50. `sleep 10m`:这行指定了容器的命令为"sleep 10m",即睡眠10分钟。

51. `restartPolicy: OnFailure`:这行指定了Pod的重启策略为"OnFailure",即在容器失败时重启Pod。

52. `kubectl create -f nptest.yml`:这个命令用于创建一个Pod,其配置定义在"nptest.yml"文件中。

53. `kubectl exec -it pod-default -- wget 172.16.245.1`:这个命令用于在Pod "pod-default" 中执行命令。其中,"-it"指定了交互式终端,"pod-default"是要执行命令的Pod的名称,"wget 172.16.245.1"是要执行的命令,即使用wget工具下载位于172.16.245.1的文件。

总结

以上是今天要讲的内容,学到了访问控制,包括Role和ClusterRole,网络策略。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0基础学习VR全景平台篇第112篇:控制点和遮罩工具 - PTGui Pro教程

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 前情回顾&#xff1a;上节&#xff0c;我们用PTGui拼接了一张全景图&#xff0c;全景编辑器里的各项功能帮助我们进行了初步的检查和编辑。 之后我们需要使用【控制点】和【遮罩…

智慧垃圾站:AI视频智能识别技术助力智慧环保项目,以“智”替人强监管

一、背景分析 建设“技术先进、架构合理、开放智能、安全可靠”的智慧环保平台&#xff0c;整合环境相关的数据&#xff0c;对接已建业务系统&#xff0c;将环境相关数据进行统一管理&#xff0c;结合GIS技术进行监测、监控信息的展现和挖掘分析&#xff0c;实现业务数据的快速…

【AI视野·今日CV 计算机视觉论文速览 第271期】Thu, 19 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Thu, 19 Oct 2023 Totally 63 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Learning from Rich Semantics and Coarse Locations for Long-tailed Object Detection Authors Lingchen Meng, Xiyang D…

偕行十年,阿里云助力众安保险用科技温暖每一张保单

云布道师 前言&#xff1a;应云而生的众安保险&#xff0c;其 IT 架构都搭建在阿里云上&#xff0c;云服务器 ECS 关键应用上的数据需要保护&#xff0c;需要简单易用、稳定性高的方案&#xff0c;助力保险业务的快速开发和上线。在经过全面充分地沟通评估后&#xff0c;众安保…

凌晨!腾讯云终于发布了2023年度双十一优惠活动!

2023腾讯云双11优惠价格表终于来了&#xff0c;轻量2核2G3M云服务器88元一年、轻量2核4G5M服务器166.6元一年、3年轻量2核2G4M带宽优惠价366.6元、3年轻量2核4G5M配置566.6元&#xff0c;CVM云服务器2核2G配置SA2实例172.3元一年、标准型S5服务器2核2G配置280.8元一年&#xff…

个人微信管理系统都有些什么功能呢?

个人微信管理系统是一项高效的工具&#xff0c;可协助企业有效管理多个微信账号&#xff0c;从而提升工作效率。该系统允许企业在电脑上集中管理所有微信账号&#xff0c;省去了频繁切换设备的繁琐&#xff0c;同时还可以将微信账号分派给员工以进行更高效的微信管理。 来看看微…

融合通信系统在大型运动会中的应用

随着经济社会的发展&#xff0c;大型体育运动会的规模不断扩大&#xff0c;融合通信设备及指挥调度系统的应用逐渐成为不可或缺的一部分。通过融合通信设备的产品保障以及指挥调度系统的技术保障&#xff0c;可以对比赛进行高效、准确和实时的指挥和调度&#xff0c;确保比赛的…

安防视频监控平台EasyCVR新版(V.3.4)平台界面更新2.0

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

软考系统架构师知识点集锦一:系统工程与信息系统基础

一、考情分析 二、考点精讲 2.1 软件开发方法 &#xff08;1&#xff09;结构化开发方法 用户至上&#xff0c;自顶向下,逐步分解(求解)&#xff0c;严格区分工作阶段&#xff0c;每阶段有任务与成果&#xff0c;强调系统开发过程的整体性和全局性&#xff0c;系统开发过程工…

自动驾驶的未来展望和挑战

自动驾驶技术是一项引人瞩目的创新&#xff0c;将在未来交通领域产生深远影响。然而&#xff0c;随着技术的不断演进&#xff0c;自动驾驶也面临着一系列挑战和障碍。本文将探讨自动驾驶的未来发展方向、技术面临的挑战&#xff0c;以及自动驾驶对社会和环境的潜在影响。 自动驾…

基于springboot实现车辆充电桩平台管理系统项目【项目源码+论文说明】

基于sprinboot实现车辆充电桩管理平台系统演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;车辆充电桩管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#…

【算法挨揍日记】day17——1137. 第 N 个泰波那契数、面试题 08.01. 三步问题

1137. 第 N 个泰波那契数 1137. 第 N 个泰波那契数 题目描述&#xff1a; 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 解题思路&#xff1a; 本题很…

spark案例分析-搜索引擎日志分析案例

1.业务分析 2.数据截图 3.代码实现&#xff1a; main.py&#xff1a; #cording:utf8 from pyspark import SparkConf, SparkContext from pyspark.storagelevel import StorageLevel from defs import content_jieba, filter_word, append_word, extract_user_and_word from o…

数据结构和算法——图结构

图是一种数据结构&#xff1b; 图 有向图 带权图 邻接矩阵 邻接表相较于邻接矩阵&#xff0c;减少了存储空间&#xff1b; 邻接表 图的深度优先遍历(DFS) 图的广度优先遍历(BFS) 代码&#xff1a; import java.util.ArrayList; import java.util.Arrays; import java.util.L…

【定向征文活动】2023年深圳1024开发者城市聚会活动参会感想征文

深圳1024开发者城市聚会&#xff0c;有奖征文&#xff0c;欢迎大家来参与。 活动介绍 就在2023年10月22日&#xff0c;深圳COC社区与CSDN主办方联合发起了本年度深圳1024开发者城市聚会活动。活动一经发出&#xff0c;收到了小伙伴的热烈反响&#xff0c;一时间报名人数蹭蹭地…

墨西哥专线海运的集装箱尺寸选择

在国际贸易中&#xff0c;海运是一种常见的运输方式&#xff0c;而集装箱作为一种标准化的物流载具&#xff0c;其大小直接影响着货物的装卸和堆垛效率。对于需要通过墨西哥专线海运的客户来说&#xff0c;了解不同尺寸集装箱的优势和适用范围&#xff0c;可以帮助他们更有效地…

Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金)

MVC房贷计算器&#xff08;Ajax版&#xff09; 1.新建一个JavaWeb项目hslcalweb&#xff0c;设置tomcat10。 2.创建房贷计算器JavaBean&#xff1a;HslCalBean.java&#xff0c;增加以下的属性&#xff0c;并生成Getter/Setter方法。 private double total; //贷款额度pr…

Linux安装JumpServer

功能简介在线安装 环境要求&#xff1a;准备一台 2核4G &#xff08;最低&#xff09;且可以访问互联网的 64 位 Linux 主机 以 root 用户执行如下命令一键安装 JumpServer curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_st…

JAVA毕业设计102—基于Java+Springboot+vue的个人理财管理系统(源码+数据库)

基于JavaSpringbootvue的个人理财管理系统(源码数据库) 一、系统介绍 本系统前后端分离 管理员功能&#xff1a; 登录、注册、添加账单、导出账单、统计分析、个人信息修改、消费对比 二、所用技术 后端技术栈&#xff1a; SpringbootSpringMvcmybatismysql 前端技术栈…

优维低代码实践:父子模型

导语&#xff1a;优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学…