k8s常见面试题2
k8s常见面试题2
- 安全与权限
- RBAC配置
- 如何保护 Kubernetes 集群的 API Server?
- 如何管理集群中的敏感信息(如密码、密钥)?
- 如何限制容器的权限(如使用 SecurityContext)?
- 如何防止容器逃逸(Container Escape)?
- 存储管理
- PV和 PVC的区别是什么?
- 如何动态分配存储资源(StorageClass)?
- 如何实现跨节点的共享存储?
- 网络与服务发现
- Service类型
- 如何实现跨集群的服务发现?
- 如何配置 Kubernetes 的网络策略(NetworkPolicy)
- 如何实现外部流量访问集群内部服务
- 架构设计
- 如何优化 Kubernetes 集群的资源利用率?
- 如何实现多租户的 Kubernetes 集群?
- 如何设计跨地域的 Kubernetes 集群?
- 高可用集群设计
- 工具与生态
- Helm用途
- 场景题示例
- 高并发微服务架构
- 如何实现 Kubernetes 集群的自动化运维?
- 如何应对 Kubernetes 集群的突发流量?
- 如何设计一个跨云平台的 Kubernetes 集群?
- 开放性问题
- 遇到的最大挑战
- 如何提升 Kubernetes 集群的安全性
安全与权限
RBAC配置
如何实现 Kubernetes 的 RBAC 权限控制?
- 创建
Role
定义权限(如访问Pod、Service)。 - 创建
RoleBinding
将Role绑定到用户/组。 - 示例:授权用户读取Pod信息:
```yamlapiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata: {namespace: default, name: pod-reader}rules:- apiGroups: [""]resources: ["pods"]verbs: ["get", "watch", "list"]
如何保护 Kubernetes 集群的 API Server?
- 保护 API Server 需要启用 RBAC 限制权限
- 配置身份认证(如 TLS、OIDC),开启 API 审计日志,禁用匿名访问
- 并结合网络策略限制 API Server 访问来源。
kubectl create rolebinding user-binding --clusterrole=view --user=user@example.com --namespace=default # 启用 RBAC(基于角色的访问控制)
启用 API Server 认证和授权
- 使用 TLS 证书、OIDC(OpenID Connect)或 ServiceAccount 进行认证。
- 配置 --authorization-mode=RBAC,Node 确保 API 请求经过权限检查。
开启 API Server 审计日志
通过 --audit-policy-file=/etc/kubernetes/audit-policy.yaml 开启审计
apiVersion: audit.k8s.io/v1
kind: Policy
rules:- level: RequestResponse
限制匿名访问:禁用 --anonymous-auth,防止未授权请求访问 API Server。
启用网络策略(NetworkPolicy):限制 API Server 只能被特定 IP 或 Pod 访问。
如何管理集群中的敏感信息(如密码、密钥)?
- 推荐使用 Kubernetes Secret 存储敏感数据,并启用加密存储或外部 KMS 保护 Secret,避免明文存储。
- 同时,使用 RBAC 限制 Secret 访问权限。
kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=pass123 #使用 Secret 存储 Base64 编码的敏感数据。
使用 envFrom 挂载 Secret
envFrom:- secretRef:name: db-secret
启用加密存储(EncryptionConfig)
通过 --encryption-provider-config=/etc/kubernetes/encryption-config.yaml 加密 Secret 数据。
kind: EncryptionConfig
resources:- resources: ["secrets"]providers:- aescbc:keys:- name: key1secret: <base64-encoded-secret>
最小化 Secret 访问权限:使用 RBAC 限制 Secret 访问
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:name: secret-reader
rules:- apiGroups: [""]resources: ["secrets"]verbs: ["get"]
如何限制容器的权限(如使用 SecurityContext)?
- 使用 securityContext 限制容器权限,例如 runAsNonRoot 禁止 root 运行
- privileged: false 防止特权模式
- readOnlyRootFilesystem: true 只读根文件系统
- 并最小化 Linux Capabilities。
securityContext:runAsUser: 1000runAsGroup: 3000allowPrivilegeEscalation: false #运行非 root 用户privileged: false #禁止特权模式(Privileged Mode)readOnlyRootFilesystem: true #使用 readOnlyRootFilesystemcapabilities: #最小化 Linux Capabilitiesdrop:- ALL
使用 PodSecurityPolicy(PSP)或 PodSecurity Admission(PSA)
通过 PSP/PSA 统一限制容器权限:
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:name: restricted
spec:privileged: falserunAsUser:rule: MustRunAsNonRoot
如何防止容器逃逸(Container Escape)?
- 防止容器逃逸需启用 seccomp 过滤系统调用
- 禁止 hostPID、hostNetwork 访问宿主机资源,限制宿主机文件系统挂载
- 并使用 AppArmor 或 SELinux 进行访问控制。
存储管理
PV和 PVC的区别是什么?
- PV 是管理员预先配置的存储资源,表示物理存储资源(如 NFS、Ceph、EBS)。
- PVC 是用户对存储的申请。由 Pod 请求存储,类似于云计算中的存储申请
- 当 PVC 申请满足 PV 的条件时,Kubernetes 自动绑定 PV 和 PVC,Pod 通过 PVC 访问存储。
绑定关系
- PVC 申请存储 → K8s 绑定可用 PV → Pod 使用 PVC
- kubectl get pv / kubectl get pvc 查看绑定状态。
如何动态分配存储资源(StorageClass)?
- StorageClass 允许 Kubernetes 动态创建 PV,无需管理员手动配置。
- PVC 申请存储时,StorageClass 通过存储插件(如 AWS EBS、Ceph)自动创建 PV,并绑定 PVC。
- StorageClass:动态创建PV(如按需创建云存储)。
如何实现跨节点的共享存储?
- 可以使用 NFS、CephFS、GlusterFS 或 AWS EFS 等分布式存储系统
- 并配置 ReadWriteMany (RWX) 模式
- 使多个 Pod 在不同节点上共享同一个存储卷。
网络与服务发现
Service类型
Kubernetes 中的 Service 类型有哪些?各自的使用场景?
- ClusterIP:默认类型,集群内部访问。
- NodePort:通过节点端口暴露服务。
- LoadBalancer:云平台提供外部负载均衡器。
- ExternalName:通过CNAME指向外部服务。
如何实现跨集群的服务发现?
- 实现跨集群的服务发现可以采用 Kubernetes 联邦(Federation)或多集群服务 API(MCS API)。
- 联邦提供跨集群的统一管理和服务发现能力,而 MCS API 定义了一套轻量级的 API,实现服务的跨集群注册和发现
使用 Kubernetes 联邦(Federation):
- 概念: Kubernetes 联邦提供了跨多个集群的统一管理和服务发现能力。
- 实现: 通过在各个集群中部署联邦控制平面,实现资源的同步和服务的跨集群发现。
- 优势: 提供自动配置 DNS 服务以及在所有集群后端上进行负载均衡的能力。
使用多集群服务 API(MCS API):
- 概念: MCS API 定义了一套轻量级的 API,实现服务的跨集群注册和发现。
- 实现: 通过在集群间导出和导入服务,使服务在多个集群间共享。
- 优势: 能够像访问本地服务一样访问其他集群的服务。
如何配置 Kubernetes 的网络策略(NetworkPolicy)
- 配置 NetworkPolicy 需要创建一个 YAML 文件,使用 podSelector 选择目标 Pod,并定义相应的 ingress 和/或 egress 规则。然后,通过 kubectl apply -f 命令将其应用到集群中,以控制 Pod 之间以及与外部的网络流量。
理解 NetworkPolicy:
- 概念: NetworkPolicy 是一种资源对象,用于定义 Pod 之间以及 Pod 与外部之间的网络流量控制规则。
- 作用: 通过指定规则,控制哪些流量可以进出特定的 Pod,从而提高集群的安全性。
配置步骤:
- 定义策略: 创建 NetworkPolicy YAML 文件,指定 podSelector 选择目标 Pod,配置 ingress 和/或 egress 规则。
- 应用策略: 使用 kubectl apply -f 命令将策略应用到集群中。
如何实现外部流量访问集群内部服务
- 要使外部流量访问集群内部服务,可以使用 Service 的 NodePort 类型,将服务暴露在每个节点的特定端口上;
- 在支持的云环境中,使用 LoadBalancer 类型,自动配置云提供商的负载均衡器;
- 或者使用 Ingress 资源,定义 HTTP/HTTPS 路由规则,通过域名和路径将外部流量引导到内部服务。
架构设计
如何优化 Kubernetes 集群的资源利用率?
通过合理设置容器的资源请求和限制,结合自动水平扩缩容(HPA)和节点自动伸缩机制,并使用监控工具实时分析资源使用情况,可以有效优化 Kubernetes 集群的资源利用率
- 合理设置资源请求和限制:为每个容器配置适当的 requests 和 limits,确保资源分配精确,避免资源浪费或争抢。
- 使用自动水平扩缩容(HPA):根据应用负载,自动调整 Pod 数量,确保在高负载时扩展,低负载时收缩。
- 节点自动伸缩:配置集群的节点自动伸缩,根据整体资源需求动态添加或移除节点。
- 监控和分析:利用监控工具(如 Prometheus 和 Grafana)实时监测资源使用情况,识别瓶颈并进行优化。
如何实现多租户的 Kubernetes 集群?
可以通过为每个租户创建独立的命名空间,结合 RBAC 和网络策略实现资源和网络隔离。对于需要更强隔离的场景,可采用虚拟控制平面方案。此外,设置资源配额确保各租户公平使用资源。
- 命名空间隔离:为每个租户创建独立的命名空间,结合 RBAC(基于角色的访问控制)和网络策略,确保资源和网络的隔离。
- 虚拟控制平面:为每个租户提供独立的虚拟控制平面,实现更强的隔离和自主性。
- 资源配额:为不同租户设置资源配额,确保资源的公平分配,防止单个租户过度消耗资源。
如何设计跨地域的 Kubernetes 集群?
通过在不同地域部署多个 Kubernetes 集群,结合服务网格或全球负载均衡器实现服务发现和流量管理,采用数据同步机制确保数据一致性,并使用多集群管理工具实现统一管理。
- 多集群部署:在不同地域部署多个 Kubernetes 集群,确保本地化的高可用性和低延迟。
- 服务发现和流量管理:使用服务网格(如 Istio)或全球负载均衡器,实现跨集群的服务发现和流量路由。
- 数据同步:采用数据库的主从复制或数据同步机制,确保各地域间的数据一致性。
- 统一管理:使用 Kubernetes 联邦(Federation)或多集群管理工具,实现跨集群的统一管理和配置。
高可用集群设计
如何设计高可用的 Kubernetes 集群?
- 多Master节点,使用负载均衡(如HAProxy)暴露API Server。
- etcd集群部署为奇数节点(3/5个),跨故障域分布。
- Worker节点跨可用区(AZ)部署。
工具与生态
你使用过哪些 Kubernetes 相关的工具(如 Helm、Prometheus、Istio 等)?
Helm用途
- Helm 是 Kubernetes 的包管理工具,通过定义 Chart 来描述应用的 Kubernetes 资源,提供应用的打包、安装、升级和回滚等功能,简化了应用的部署和管理。
常用命令:
helm install <release-name> <chart-name> # 部署应用
helm upgrade --install # 更新或安装
helm rollback <release-name> <revision> # 回滚
场景题示例
高并发微服务架构
如何设计一个支持高并发、高可用的微服务架构?
- 使用Deployment和HPA自动扩缩容。
- 通过**Service Mesh(如Istio)**管理流量(金丝雀发布、熔断)。
- 数据库使用StatefulSet,搭配持久化存储。
如何实现 Kubernetes 集群的自动化运维?
通过使用基础设施即代码工具实现集群的自动化部署,采用 GitOps 工作流管理配置变更,利用 Operator 模式自动化应用运维,并结合监控与告警系统,全面实现 Kubernetes 集群的自动化运维。
- 基础设施即代码(Infrastructure as Code,IaC):使用工具如 Terraform 或 Ansible 编写集群和相关资源的配置脚本,实现集群的自动化部署和管理。
- GitOps 工作流:采用 GitOps 方法,将集群的声明性配置存储在版本控制系统中,通过持续集成/持续部署(CI/CD)管道自动应用配置更改。
- Operator 模式:开发或使用现有的 Kubernetes Operator,自动管理复杂的应用程序和服务的生命周期,包括部署、升级和故障恢复。
- 监控与告警:集成 Prometheus 和 Grafana 等监控工具,实时监测集群状态,并设置告警规则,及时响应异常情况。
如何应对 Kubernetes 集群的突发流量?
通过配置水平 Pod 自动伸缩和集群自动伸缩,结合弹性负载均衡策略,以及在应用层面实施缓存和限流机制,可以有效应对 Kubernetes 集群的突发流量。
- 水平 Pod 自动伸缩(Horizontal Pod Autoscaler,HPA):根据指标(如 CPU 使用率)自动调整 Pod 的副本数量,以应对负载变化。
- 集群自动伸缩(Cluster Autoscaler):当集群资源不足以调度新的 Pod 时,自动增加节点;当资源空闲时,自动移除多余的节点。
- 弹性负载均衡:配置服务的负载均衡策略,确保流量均匀分布,防止单点过载。
- 缓存和限流:在应用层面实现缓存机制,减少对后端服务的压力;设置限流策略,防止突发流量导致系统过载。
如何设计一个跨云平台的 Kubernetes 集群?
在不同云平台上部署独立的 Kubernetes 集群,使用多集群管理工具进行统一管理,通过网络互通方案确保服务通信,配置统一的认证与授权机制,并通过 CI/CD 管道实现应用分发和数据同步,从而设计一个跨云平台的 Kubernetes 集群。
- 多集群管理:在不同云平台上部署独立的 Kubernetes 集群,使用工具如 Rancher、KubeSphere 或 Kubernetes 联邦(Federation)进行统一管理。
- 网络互通:通过 VPN、专线或服务网格(如 Istio)实现不同云平台之间的网络连接,确保服务之间的通信。
- 统一认证与授权:配置统一的身份认证和权限管理机制,确保跨集群的一致性和安全性。
- 应用分发与数据同步:使用 CI/CD 管道实现应用的跨集群部署,采用数据库同步或数据复制策略,确保数据一致性。
开放性问题
遇到的最大挑战
你在 Kubernetes 运维中遇到的最大挑战是什么?如何解决的?
- 示例回答:
- 挑战:集群网络频繁超时。
- 排查:发现是CNI插件配置错误导致DNS解析失败。
- 解决:修正Calico配置,并优化CoreDNS副本数。
如何提升 Kubernetes 集群的安全性
- 身份认证和权限管理:通过启用 RBAC、结合 Open Policy Agent(OPA)等工具,精细化控制用户和服务账号的权限。
- 安全审计与日志记录:开启 API 审计日志,及时发现异常操作和访问行为。
- 网络策略与隔离:使用 NetworkPolicy 限制 Pod 间通信,减少攻击面。
- 加密与密钥管理:对存储在集群中的敏感数据(如 Secrets)进行加密,同时使用外部密钥管理系统(KMS)。
- 容器运行时安全:采用 Seccomp、AppArmor 或 SELinux 等安全机制,限制容器权限,防止容器逃逸。
- 定期安全扫描与漏洞修补:利用安全扫描工具定期检查镜像、依赖和集群配置,及时更新补丁。
相关文章:
k8s常见面试题2
k8s常见面试题2 安全与权限RBAC配置如何保护 Kubernetes 集群的 API Server?如何管理集群中的敏感信息(如密码、密钥)?如何限制容器的权限(如使用 SecurityContext)?如何防止容器逃逸࿰…...

CSS 伪类(Pseudo-classes)的详细介绍
CSS 伪类详解与示例 在日常的前端开发中,CSS 伪类可以帮助我们非常精准地选择元素或其特定状态,从而达到丰富页面表现的目的。本文将详细介绍以下伪类的使用: 表单相关伪类 :checked、:disabled、:enabled、:in-range、:invalid、:optional、…...

将Deepseek接入pycharm 进行AI编程
目录 专栏导读1、进入Deepseek开放平台创建 API key 2、调用 API代码 3、成功4、补充说明多轮对话 总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️🌈 博客主页:请点击——…...

【Ollama】一、介绍
介绍 Ollama 是一个开源项目,专注于提供本地化的大型语言模型(LLM)部署和运行解决方案。它允许用户在本地环境中轻松运行和微调各种开源语言模型(如 LLaMA、Falcon 等),而无需依赖云服务或高性能 GPU。Oll…...

ASP.NET Core JWT
目录 Session的缺点 JWT(Json Web Token) 优点: 登录流程 JWT的基本使用 生成JWT 解码JWT 用JwtSecurityTokenHandler对JWT解码 注意 Session的缺点 对于分布式集群环境,Session数据保存在服务器内存中就不合适了&#…...
查询引擎:它们是什么以及为什么重要
了解查询引擎、它们的优势以及如何简化现代应用程序的数据管理。查询引擎是高效处理和检索数据的强大工具,但并非所有查询引擎都能满足现代应用程序对速度和实时性的需求。在本文中,我们将解析查询引擎的定义、主要优势以及它们如何用于实时数据和AI应用…...

03/29 使用 海康SDK 对接时使用的 MysqlUtils
前言 最近朋友的需求, 是需要使用 海康sdk 连接海康设备, 进行数据的获取, 比如 进出车辆, 进出人员 这一部分是 资源比较贫瘠时的一个 Mysql 工具类 测试用例 public class MysqlUtils {public static String MYSQL_HOST "192.168.31.9";public static int MY…...
2025.2.7 Python开发岗面试复盘
2025.2.7 Python开发岗面试复盘 问题: 是否了解过其他语言? 了解过Java、JavaScript、C等语言,但主要技术栈是Python。 Python跟Java的区别? Python是解释型语言,Java是编译型语言 Python动态类型,Java静态类型 Python简洁易读,Java相对严谨复杂 Python GIL限制并发,Java并…...

一个sql只能有一个order by
ORDER BY 子句在 SQL 中只能出现一次,静态部分和动态部分只能写一个 ORDER BY...
Windows Docker笔记-在容器中运行项目
在文章《Windows Docker笔记-Docker容器操作》中,已经成功创建了容器,也就是建好了工厂,接下来就应该要安装流水线设备,即运行项目达到生产的目的。 在Ubuntu容器中新建项目 这里要新建一个简单的C项目,步骤如下&…...

postgreSQL16.6源码安装
1.获取源码 从PostgreSQL: File Browser获取tar.bz2或者tar.gz源码 2.解压 tar xf postgresql-version.tar.bz2 roothwz-VMware-Virtual-Platform:/usr/local# tar xf postgresql-16.6.tar.bz2 roothwz-VMware-Virtual-Platform:/usr/local# ll 总计 24324 drwxr-xr-x 12 ro…...

寒假2.5
题解 web:[网鼎杯 2020 朱雀组]phpweb 打开网址,一直在刷新,并有一段警告 翻译一下 查看源码 每隔五秒钟将会提交一次form1,index.php用post方式提交了两个参数func和p,func的值为date,p的值为Y-m-d h:i:s a 执行fu…...
定期删除一周前的数据,日志表的表空间会增长吗?
即使定期删除一周前的数据,日志表的表空间仍可能持续增长。原因如下: 删除操作不释放空间:DELETE 操作只会标记数据为删除状态,并不会立即释放空间。这些空间可以被后续的 INSERT 操作重用,但不会自动缩减表的总大小。…...
yum 安装mysql
sudo yum install mysql-server sudo systemctl start mysqld sudo systemctl enable mysqld 获取临时 root 密码并登录 MySQL 安装完成后,MySQL 会生成一个临时的 root 密码。你可以通过查看日志文件来找到这个密码: sudo grep ‘temporary password’…...

Servlet笔记(下)
HttpServletRequest对象相关API 获取请求行信息相关(方式,请求的url,协议及版本) | API | 功能解释 | | ----------------------------- | ------------------------------ | | StringBuffer getRequestURL(); | 获取客户端…...
Windows 中学习Docker环境准备3、在Ubuntu中安装Docker
Windows 中学习Docker环境准备1、Win11安装Docker Desktop Windows 中学习Docker环境准备2、Docker Desktop中安装ubuntu Windows 中学习Docker环境准备3、在Ubuntu中安装Docker 需要更多Docker学习视频和资料,请文末联系 步骤 1:更新系统并安装依赖…...

【centOS】搭建公司内网git环境-GitLab 社区版(GitLab CE)
1. 安装必要的依赖 以 CentOS 7 系统为例,安装必要的依赖包: sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix sudo systemctl start postfix sudo systemctl enable postfix2. 添加 GitLab 仓库 curl -sS https:/…...
Unity DoTween使用文档
DoTween 使用文档 DoTween 是 Unity 中非常流行的动画补间插件。它通过链式调用方式,让开发者可以快速创建平滑、自然的动画效果。本文将介绍 DoTween 的基础用法、缓动曲线原理(包含常见缓动曲线的数学公式与参数说明)、案例演示以及一些常…...

【办公类-99-01】20250201学具PDF打印会缩小一圈——解决办法:换一个PDF阅读器
背景需求: 2024年1月13日,快要放寒假了,组长拿着我们班的打印好的一叠教案来调整。 “前面周计划下面的家园共育有调整,你自己看批注。” “还有你这个教案部分的模版有问题,太小(窄)了。考虑…...
组合总和II(力扣40)
这道题的难点就在于题目所给的集合中有重复的数字,我们需要进行去重操作。首先明确去重指的是去重哪一部分。注意并不是对递归的集合去重,而是对当前集合的遍历进行去重。这么说可能有点抽象,举个例子:假设集合为1,1,2,3,4&#x…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...