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

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>    # 回滚

场景题示例

高并发微服务架构

如何设计一个支持高并发、高可用的微服务架构?

  • 使用DeploymentHPA自动扩缩容。
  • 通过**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&#xff1f;如何管理集群中的敏感信息&#xff08;如密码、密钥&#xff09;&#xff1f;如何限制容器的权限&#xff08;如使用 SecurityContext&#xff09;&#xff1f;如何防止容器逃逸&#xff0…...

mysql运维

1、msyqlLinux通用二进制安装 1. MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/https://downloads.mysql.com/archives/community/https://downloads.mysql.com/archives/community/https://downloads.mysql…...

将Deepseek接入pycharm 进行AI编程

目录 专栏导读1、进入Deepseek开放平台创建 API key 2、调用 API代码 3、成功4、补充说明多轮对话 总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&#x1f308; 博客主页&#xff1a;请点击——…...

Redis03 - 高可用

Redis高可用 文章目录 Redis高可用一&#xff1a;主从复制 & 读写分离1&#xff1a;主从复制的作用2&#xff1a;主从复制原理2.1&#xff1a;全量复制2.2&#xff1a;增量复制&#xff08;环形缓冲区&#xff09; 3&#xff1a;主从复制实际演示3.1&#xff1a;基本流程准…...

日常知识点之面试后反思遗留问题汇总

梳理一下最近接触到的几个知识点&#xff1a; 1&#xff1a;突然问到端口复用 &#xff08;SO_REUSEADDR&#xff09; 端口复用一般用在服务端重启时&#xff0c;套接字处于time_wait状态时&#xff0c;无法绑定该端口&#xff0c;导致无法启动问题。 设置端口复用&#xff…...

软考教材重点内容 信息安全工程师 第15章 网络安全主动防御技术与应用

目录 15.1.1 人侵阻断技术原理 15.1.2 人侵阻断技术应用 15.3 网络流量清洗技术与应用 15.3.1 网络流量清洗技术原理 15.3.2 网络流量清洗技术应用 15.4 可信计算技术与应用 15.4.1 可信计算技术原理 15.5 数字水印技术与应用 15.5.1 数字水印技术原理 15.5.2 数字水…...

大模型的底层逻辑及Transformer架构

一、大模型的底层逻辑 1.数据驱动 大模型依赖海量的数据进行训练,数据的质量和数量直接影响模型的性能。通过大量的数据,模型能够学习到丰富的模式和规律,从而更好地处理各种任务。 2.深度学习架构 大模型基于深度学习技术,通常采用多层神经网络进行特征学习与抽象。其中…...

PostgreSQL-字符串函数

字符串连接 SELECT A||B; 字符串连接&#xff0c;适用于字符串与数字连接 SELECT CONCAT(10,a,hello,20.0); 连接所有参数&#xff0c;个数不限&#xff0c;类型不限 字母转换 SELECT LOWER(ABCD); 将字符转换成小写 SELECT UPPER(ABCD); 将字符转换成大写 SELECT IN…...

Qt修仙之路2-1 炼丹初成

widget.cpp #include "widget.h" #include<QDebug> //实现槽函数 void Widget::login1() {QString userusername_input->text();QString passpassword_input->text();//如果不勾选无法登入if(!check->isChecked()){qDebug()<<"xxx"&…...

华为的IPD模式VS敏捷项目管理模式

本文介绍了华为的IPD模式与敏捷项目管理模式的对比。文章详细阐述了两种模式的特点、适用范围及实施要点&#xff0c;为读者提供了全面的理解。 重点内容&#xff1a; 1. IPD模式强调跨部门协同&#xff0c;注重产品全生命周期管理&#xff0c;适用于复杂产品领域。 2. 敏捷…...

Ollama python交互:chat+embedding实践

Ollama简介 Ollama 是一个开源的大型语言模型&#xff08;LLM&#xff09;平台&#xff0c;旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。 Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型&#xff0c;支持文本生成、翻译、代码编写、问答等…...

Redis进阶

Redis持久化&#xff1a; 前面我们讲到mysql事务有四个比较核心的特性&#xff1a; 原子性&#xff1a;保证多个操作打包成一个。一致性&#xff1a;A给B100&#xff0c;A少一百&#xff0c;B必须多一百。持久性&#xff1a;针对事务操作必须要持久生效&#xff0c;不管是重启…...

【蓝桥杯嵌入式】6_定时器输入捕获

全部代码网盘自取 链接&#xff1a;https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码&#xff1a;3ii2 这是两个信号发生器&#xff0c;可以通过调节板上的两个电位器R39和R40调节输出频率。 将PB4、PA15选择ch1&#xff0c;两个信号发生器只能选择TIM3和TIM…...

C#常用集合优缺点对比

先上结论&#xff1a; 在C#中&#xff0c;链表、一维数组、字典、List<T>和ArrayList是常见的数据集合类型&#xff0c;它们各有优缺点&#xff0c;适用于不同的场景。以下是它们的比较&#xff1a; 1. 一维数组 (T[]) 优点&#xff1a; 性能高&#xff1a;数组在内存中…...

Python调取本地MongoDB招投标数据库,并结合Ollama部署的DeepSeek-R1-8B模型来制作招投标垂直领域模型

根据你的需求&#xff0c;以下是使用Python调取本地MongoDB招投标数据库&#xff0c;并结合Ollama部署的DeepSeek-R1-8B模型来制作招投标垂直领域模型的步骤&#xff1a; 安装PyMongo 首先&#xff0c;确保你已经安装了PyMongo库&#xff0c;用于Python与MongoDB的交互。如果未…...

【MySQL】深入了解索引背后的内部结构

目录 索引的认识&#xff1a; 作用&#xff1a; 索引的使用&#xff1a; 索引底层的数据结构&#xff1a; 哈希表 AVL树 红黑树 B树&#xff1a; B树&#xff1a; B树搜索&#xff1a; 索引的认识&#xff1a; 索引是数据库中的一个数据结构&#xff0c;用于加速查询…...

pytest-xdist 进行多进程并发测试

在自动化测试中&#xff0c;运行时间过长往往是令人头疼的问题。你是否遇到过执行 Pytest 测试用例时&#xff0c;整个测试流程缓慢得让人抓狂&#xff1f;别担心&#xff0c;pytest-xdist 正是解决这一问题的利器&#xff01;它支持多进程并发执行&#xff0c;能够显著加快测试…...

蓝桥杯准备 【入门3】循环结构

素数小算法&#xff08;埃氏筛&&欧拉筛&#xff09; 以下四段代码都是求20以内的所有素数 1.0版求素数 #include<iostream> using namespace std;int main() {int n 20;for(int i2;i<n;i){int j0;for(j2;j<i;j)//遍历i{if(i%j0){break;}}if(ij){cout&l…...

PHP填表统计预约打卡表单系统小程序

&#x1f4cb; 填表统计预约打卡表单系统——专属定制&#xff0c;信息互动新纪元 &#x1f4ca; 填表统计预约打卡表单系统&#xff0c;一款专为现代快节奏生活量身打造的多元化自定义表单统计小程序&#xff0c;集信息填表、预约报名、签到打卡、活动通知、报名投票、班级统…...

自定义数据集,使用scikit-learn 中K均值包 进行聚类

1. 引言 K均值聚类是一种无监督学习方法&#xff0c;用于将数据集分为多个簇。通过计算数据点之间的距离并将它们分配到最近的簇中心&#xff0c;K均值算法可以帮助我们发现数据中的自然结构。 2. 数据集创建 首先&#xff0c;我们使用numpy创建一个自定义的二维数据集&…...

Lua中文语言编程源码-第十一节,其它小改动汉化过程

__tostring 汉化过程 liolib.c metameth[] {"__转换为字符串", f_tostring}, lauxlib.c luaL_callmeta(L, idx, "__转换为字符串") lua.c luaL_callmeta(L, 1, "__转换为字符串") __len 汉化过程 ltm.c luaT_eventname[] ltablib.c c…...

Android studio 创建aar包给Unity使用

1、aar 是什么&#xff1f; 和 Jar有什么区别 aar 和 jar包 都是压缩包&#xff0c;可以使用压缩软件打开 jar包 用于封装 Java 类及其相关资源 aar 文件是专门为 Android 平台设计的 &#xff0c;可以包含Android的专有内容&#xff0c;比如AndroidManifest.xml 文件 &#…...

4. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--什么是微服务--微服务设计原则与最佳实践

相比传统的单体应用&#xff0c;微服务架构通过将大型系统拆分成多个独立的小服务&#xff0c;不仅提升了系统的灵活性和扩展性&#xff0c;也带来了许多设计和运维上的挑战。如何在设计和实现微服务的过程中遵循一系列原则和最佳实践&#xff0c;从而构建一个稳定、高效、易维…...

大语言模型遇上自动驾驶:AsyncDriver如何巧妙解决推理瓶颈?

导读 这篇论文提出了AsyncDriver框架&#xff0c;致力于解决大语言模型在自动驾驶领域应用中的关键挑战。论文的主要创新点在于提出了大语言模型和实时规划器的异步推理机制&#xff0c;实现了在保持性能的同时显著降低计算开销。通过设计场景关联指令特征提取模块和自适应注入…...

第17章 读写锁分离设计模式(Java高并发编程详解:多线程与系统设计)

1.场景描述 对资源的访问一般包括两种类型的动作——读和写(更新、删除、增加等资源会发生变化的动作)&#xff0c;如果多个线程在某个时刻都在进行资源的读操作&#xff0c;虽然有资源的竞争&#xff0c;但是这种竞争不足以引起数据不一致的情况发生&#xff0c;那么这个时候…...

硬盘修复后,文件隐身之谜

在数字时代&#xff0c;硬盘作为数据存储的重要载体&#xff0c;承载着无数珍贵的信息与回忆。然而&#xff0c;当硬盘遭遇故障并经过修复后&#xff0c;有时我们会遇到这样一个棘手问题&#xff1a;硬盘修复后&#xff0c;文件却神秘地“隐身”&#xff0c;无法正常显示。这一…...

Ollama+ page Assist或Ollama+AnythingLLM 搭建本地知识库

参考&#xff1a;【AI】10分钟学会如何用RAG投喂数据给你的deepseek本地模型&#xff1f;_哔哩哔哩_bilibili 方法一&#xff1a;Ollama page Assist 本地知识库 ***下方操作比较精简&#xff0c;详情参考&#xff1a;Ollama 部署本地大语言模型-CSDN博客 1.下载Ollama 2.O…...

树莓派5添加摄像头 在C++下调用opencv

由于树莓派5 os系统升级,正常libcamera创建对象每次失败。 改如下方法成功。 1 创建管道 rpicam-vid -t 0 --codec mjpeg -o udp://127.0.0.1:8554 > /dev/null 2>&1 2 opencv从管道里读取 #include <opencv2/opencv.hpp> #include <iostream>int mai…...

redis之RDB持久化过程

redis的rdb持久化过程 流程图就想表达两点&#xff1a; 1.主进程会fork一个子进程&#xff0c;子进程共享主进程内存数据(fork其实是复制页表)&#xff0c;子进程读取数据并写到新的rdb文件&#xff0c;最后替换旧的rdb文件。 2.在持久化过程中主进程接收到用户写操作&#x…...

Linux后台运行进程

linux 后台运行进程&#xff1a;& , nohup-腾讯云开发者社区-腾讯云 进程 &&#xff0c;后台运行&#xff0c;结束终端退出时结束进程。 nohup 进程 &&#xff0c;后台运行&#xff0c;结束终端后依然保持运行。...

webpack配置方式

1. 基本配置文件 (webpack.config.js)&#xff08;导出一个对象&#xff09; 最常见的方式是通过 webpack.config.js 文件来配置 Webpack&#xff0c;导出一个对象。你可以在这个文件中导出一个配置对象&#xff0c;指定入口、输出、加载器、插件等。 // webpack.config.js m…...

123,【7】 buuctf web [极客大挑战 2019]Secret File

进入靶场 太熟悉了&#xff0c;有种回家的感觉 查看源代码&#xff0c;发现一个紫色文件 点下看看 点secret 信息被隐藏了 要么源代码&#xff0c;要么抓包 源代码没有&#xff0c;抓包 自己点击时只能看到1和3处的文件&#xff0c;点击1后直接跳转3&#xff0c;根本不出…...

OSPF基础(2):数据包详解

OSPF数据包(可抓包) OSPF报文直接封装在IP报文中&#xff0c;协议号89 头部数据包内容&#xff1a; 版本(Version):对于OSPFv2&#xff0c;该字段值恒为2(使用在IPV4中)&#xff1b;对于OSPFv3&#xff0c;该字段值恒为3(使用在IPV6中)。类型(Message Type):该OSPF报文的类型。…...

Vue 入门到实战 八

第8章 组合API与响应性 目录 8.1 响应性 8.1.1 什么是响应性 8.1.2 响应性原理 8.2 为什么使用组合API 8.3 setup组件选项 8.3.1 setup函数的参数 8.3.2 setup函数的返回值 8.3.3 使用ref创建响应式引用 8.3.4 setup内部调用生命周期钩子函数 8.4 提供/注入 8.4.1 …...

【学习总结|DAY036】Vue工程化+ElementPlus

引言 在前端开发领域&#xff0c;Vue 作为一款流行的 JavaScript 框架&#xff0c;结合 ElementPlus 组件库&#xff0c;为开发者提供了强大的构建用户界面的能力。本文将结合学习内容&#xff0c;详细介绍 Vue 工程化开发流程以及 ElementPlus 的使用&#xff0c;助力开发者快…...

HTML之CSS三大选择器

HTML之CSS三大选择器 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><st…...

理解链接:加载二进制动态库

理解链接&#xff1a;加载二进制动态库 文章目录 理解链接&#xff1a;加载二进制动态库前情提要基本方式1 - 显式连接 dlopen基本方式 2 - 隐式链接 compile link ld衍生方式 3 - 弱链接 weak linking衍生方式 4 - dlmopen 加载到独立命名空间调试所有符号 补充知识1. 动态库…...

ASP.NET Core中Filter与Middleware的区别

中间件是ASP.NET Core这个基础提供的功能&#xff0c;而Filter是ASP.NET Core MVC中提供的功能。ASP.NET Core MVC是由MVC中间件提供的框架&#xff0c;而Filter属于MVC中间件提供的功能。 区别 中间件可以处理所有的请求&#xff0c;而Filter只能处理对控制器的请求&#x…...

《语义捕捉全解析:从“我爱自然语言处理”到嵌入向量的全过程》

首先讲在前面&#xff0c;介绍一些背景 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 是一种结合了信息检索与语言生成模型的技术&#xff0c;通过从外部知识库中检索相关信息&#xff0c;并将其作为提示输入给大型语言模型&#xff…...

大规模多准则决策模型构建详细方案

第二阶段&#xff1a;大规模多准则决策模型构建详细方案 目标 基于消费者群体偏好和个体交互数据&#xff0c;构建动态、可扩展的多准则决策模型&#xff0c;实现实时个性化产品排序。 一、技术架构设计 1. 系统架构图 [用户交互层] → (React前端) ↓ [API服务层] → (…...

Rust 语言:变革关键任务软件的新力量

软件无处不在&#xff0c;从手表、烤箱、汽车&#xff0c;甚至可能是牙刷中都有它的身影。更重要的是&#xff0c;软件控制着关乎生死的系统&#xff0c;如飞机、医疗设备、电网系统和银行基础设施等。如果软件工程师稍有疏忽&#xff0c;软件缺陷和漏洞可能导致数十亿美元的损…...

Linux特权组全解析:识别GID带来的权限提升风险

组ID&#xff08;Group ID&#xff0c;简称 GID&#xff09;是Linux系统中用来标识不同用户组的唯一数字标识符。每个用户组都有一个对应的 GID&#xff0c;通过 GID&#xff0c;系统能够区分并管理不同的用户组。 在Linux系统中&#xff0c;系统用户和组的配置文件通常包括以…...

安卓/ios脚本开发按键精灵经验小分享

1. 程序的切换 我们经常碰到这样的需求&#xff1a;打开最近的应用列表&#xff0c;选取我们想要的程序。但是每个手机为了自己的风格&#xff0c;样式都有区别&#xff0c;甚至连列表的滑动方向都不一样&#xff0c;我们很难通过模拟操作来识别点击&#xff0c;那么我们做的只…...

机器学习在癌症分子亚型分类中的应用

学习笔记&#xff1a;机器学习在癌症分子亚型分类中的应用——Cancer Cell 研究解析 1. 文章基本信息 标题&#xff1a;Classification of non-TCGA cancer samples to TCGA molecular subtypes using machine learning发表期刊&#xff1a;Cancer Cell发表时间&#xff1a;20…...

DeepSeek本地部署保姆级教程

由于DeepSeek近期遭受攻击&#xff0c;又加上用户访问量较大&#xff0c;导致总是服务不可用&#xff0c;让人十分窝火。有没有好的解决办法呢&#xff1f;答案是自己在电脑端部署一套&#xff0c;这样就不用和别人抢着用了。另外本地部署的好处还有保护隐私与减少延迟。 如果…...

无惧户外复杂环境,安科瑞 AKH-0.66/K-HW 开口式互感器准确测流

​安科瑞 吕梦怡 18706162527 1.产品特点 AKH-0.66/K-HW 系列互感器具有防水功能&#xff0c;可在户外使用&#xff0c;切面端口采用橡胶垫环绕可有效阻止雨水进入。互感器采用注塑技术&#xff0c;将互感器线圈直接在模具中进行注塑&#xff0c;同时二次侧引线采用防水端子…...

玩转Docker | 使用Docker部署httpd服务

玩转Docker | 使用Docker部署httpd服务 前言一、准备工作环境确认检查操作系统准备网站目录和配置文件二、拉取httpd镜像三、运行httpd容器运行容器命令检查容器状态四、验证httpd服务浏览器访问测试错误排查五、容器管理与维护查看容器状态停止和启动容器更新网站内容和配置六…...

MacOS 安装NVM

MacOS 安装NVM 方法一&#xff1a;使用Homebrew安装nvm 打开终端&#xff08;Terminal&#xff09;&#xff0c;输入以下命令安装Homebrew&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装nvm…...

Qt 数据库SQLite 使用【01】基本功能

1.开发背景 Qt 开发过程中难免需要存储数据&#xff0c;可以选择保存到本地文件&#xff0c;但是查找比较麻烦&#xff0c;所以就有了数据库&#xff0c;主要是方便查找数据&#xff0c;增删改查等操作&#xff0c;而 SqLite 属于数据库中轻量级的存在&#xff0c;适合本地数据…...

http状态码:请说说 503 Service Unavailable(服务不可用)的原因以及排查问题的思路

503 Service Unavailable&#xff08;服务不可用&#xff09; 是一种HTTP状态码&#xff0c;表示服务器当前无法处理请求&#xff0c;通常是由于临时性原因导致服务中断。以下是它的常见原因和排查思路&#xff1a; 一、503错误的常见原因 1. 服务器过载 场景&#xff1a;服务…...