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

Kubernetes安全:集群保护的最佳实践

随着容器化技术的广泛应用,Kubernetes已经成为企业IT基础设施的重要组成部分。然而,Kubernetes集群的复杂性也带来了独特的安全挑战。如何在动态变化的云原生环境中保障集群的安全性,成为每一位运维工程师和安全专家关注的焦点。本文将详细探讨Kubernetes安全的核心问题,并分享一些行之有效的安全保护策略,帮助读者构建一个安全可靠的Kubernetes集群环境。


一、Kubernetes安全的基本概念

在深入探讨安全策略之前,我们需要先了解Kubernetes安全的基本概念和架构。

1.1 Kubernetes集群架构

Kubernetes集群主要由以下几个核心组件组成:

  • API Server:Kubernetes集群的入口,负责处理来自客户端的REST API请求。
  • Controller Manager:负责管理Kubernetes的各种控制器,确保集群状态与期望状态一致。
  • Scheduler:负责调度Pod,根据节点的资源情况和Pod的需求,将Pod分配到合适的节点上。
  • Worker Node:运行Pod的工作节点,包含运行时环境(如Docker、containerd)、Kubelet和Kube-proxy。
  • Etcd:Kubernetes的分布式键值存储,用于存储集群的所有状态和配置信息。

这些组件之间的互动关系直接影响了集群的安全性。了解它们的工作原理,有助于我们采取更有针对性的安全措施。

1.2 Kubernetes的安全性挑战

Kubernetes集群的安全性挑战主要体现在以下几个方面:

  • 复杂的组件交互:Kubernetes的架构复杂,各组件之间的交互频繁,存在多个潜在的攻击面。
  • 多租户环境:在共享集群中,多个租户的资源可能共存,如何确保它们之间的隔离性和安全性是一个重大挑战。
  • 动态变化的工作负载:Kubernetes支持动态部署和扩展,工作负载的频繁变化增加了安全管理的难度。

1.3 Kubernetes安全的基本原则

为了应对上述挑战,Kubernetes安全的核心原则包括:

  • 最小权限原则:确保每个组件和用户只能访问其执行任务所需的资源。
  • 防御深度:通过多层次的安全措施,防止单点攻击对整个集群造成损害。
  • 审查和监控:实时监控集群的状态,及时发现和应对潜在的安全威胁。

二、认证与授权:Kubernetes的安全基础

认证与授权是Kubernetes安全的基础,确保只有经过合法身份验证的用户和组件能够访问集群资源。

2.1 认证机制

Kubernetes支持多种认证机制,包括:

  • X.509证书:Kubernetes中的组件可以使用X.509证书进行身份验证,确保通信的安全性。
  • 静态令牌:通过预先生成的令牌进行身份验证,适用于客户端到API Server的认证。
  • OAuth 2.0:支持OAuth 2.0协议,提供基于令牌的认证方式,适用于用户与API Server的交互。
  • OpenID Connect:通过OpenID Connect协议集成外部身份提供商(如Google、GitHub),实现身份联合。

2.2 授权机制

在认证完成后,Kubernetes会根据预定义的策略进行授权,确保用户和组件只能执行其被允许的操作。

2.2.1 Role-Based Access Control(RBAC)

Kubernetes的RBAC机制允许基于角色的访问控制,通过创建角色(Role)和集群角色(ClusterRole)来定义可访问的资源和操作。用户或服务账号(Service Account)可以通过角色绑定(RoleBinding)或集群角色绑定(ClusterRoleBinding)获得相应的权限。

2.2.2 Service Account

Service Account是Kubernetes中用于提供服务身份的机制。每个Service Account都有自己的身份和权限,可以独立于用户帐户进行管理。通过分配最小权限,Service Account可以安全地访问所需的API和资源。


三、网络安全:保护Kubernetes的通信和数据

Kubernetes集群的网络安全是保障集群安全的重要环节,包括Pod之间的通信、Service的暴露以及集群与外部网络的交互。

3.1 网络模型与隔离

Kubernetes默认使用“一至一”的网络模型,每个Pod都可以通过内部IP地址与其他Pod通信。为了增强安全性,可以采用网络策略(Network Policies)来控制Pod之间的通信,仅允许必要的流量,阻止未经授权的访问。

3.2 网络策略的应用

通过定义NetworkPolicy,可以实现以下安全目标:

  • 限制 Pod 之间的通信:防止未经授权的Pod之间的通信,减少攻击面。
  • 保护敏感数据:通过限制网络流量,防止敏感数据泄露或被窃取。
  • 防止 lateral movement:攻击者即使入侵一个Pod,也难以通过网络移动到其他Pod。

3.3 加密通信

Kubernetes支持SSL/TLS协议,加密API Server与客户端之间的通信。确保所有的通信流量都经过加密,可以防止敏感信息在传输过程中被截获。


四、镜像安全:从源头构建可信

Kubernetes中的镜像是应用程序的基础,确保镜像的安全性是保障集群安全的关键。

4.1 镜像仓库的安全管理

  • 私有镜像仓库:使用私有镜像仓库(如Harbor、Artifactory)存储和管理镜像,防止恶意镜像的使用。
  • 镜像扫描:通过工具(如Trivy、Clair)扫描镜像中的已知漏洞和恶意软件,确保镜像的安全性。
  • 镜像签名与验证:通过数字签名验证镜像的来源和完整性,确保镜像是从可信来源获取的。

4.2 保持基础镜像更新

基础镜像(Base Image)往往包含操作系统和常用软件包,如果这些基础镜像出现漏洞,可能会影响整个应用程序的安全性。通过定期更新基础镜像,并使用umnamped的基础镜像,可以减少潜在的安全隐患。


五、日志与审计:实时监控与追溯

日志和审计是Kubernetes安全的重要组成部分,帮助发现潜在的安全威胁和审查异常行为。

5.1 集群日志管理

  • 集中化日志收集:通过工具(如ELK Stack、Fluentd)将集群的日志收集到中心化位置,便于检索和分析。
  • 日志分析:利用日志分析工具(如Splunk、Sumo Logic)识别异常行为和潜在的安全事件。
  • 日志保留策略:根据组织的合规要求,制定日志的保留策略,确保关键日志可供审计需求。

5.2 审计日志

Kubernetes提供审计日志功能,记录所有对API Server的请求和操作。通过分析审计日志,可以追踪用户的操作,识别潜在的安全事件。


六、定期安全审计:确保安全配置的持续有效

定期对Kubernetes集群进行安全审计,可以发现配置错误或安全漏洞,确保集群的安全配置的持续有效。

6.1 使用安全审计工具

Kubernetes生态中有许多安全审计工具可以帮助检查集群的安全配置,如:

  • Kube-bench:由CNCF提供的开源工具,用于检查Kubernetes集群是否符合安全最佳实践。
  • Kube-hunter:通过模拟攻击者,识别Kubernetes集群中的安全漏洞。

6.2 手动审计的关键点

  • 检查API Server配置:确保API Server配置了HTTPS,并限制了不必要的端口暴露。
  • 验证身份认证与授权:检查所有的用户和服务账号是否应用了最小权限原则。
  • 核对Pod安全策略:确保Pod运行在安全的环境中,没有不必要的 привilégios。

七、其他安全最佳实践

除上述措施外,还有一些其他的安全最佳实践可以进一步增强Kubernetes集群的安全性。

7.1 定期备份与恢复

  • 数据备份:定期备份Etcd数据库和重要的应用程序数据,确保在出现故障或安全事件时能够快速恢复。
  • 测试备份恢复流程:定期测试备份恢复流程,确保其有效性和可靠性。

7.2 实时监控与告警

  • 性能监控:通过工具(如Prometheus、Grafana)实时监控集群的性能,发现异常行为。
  • 安全告警:设置合理的告警规则,及时响应潜在的安全事件。

7.3 安全培训与意识提升

  • 员工培训:定期开展Kubernetes安全培训,提升团队的安全意识和技能。
  • 制定安全计划:根据组织的安全策略,制定详细的安全操作计划和应急预案。

八、案例分析:如何通过安全实践保护集群

为了更好地理解这些安全最佳实践,我们来看一个实际案例。

案例背景: 某公司运营一个高流量的电子商务平台,基于Kubernetes集群进行容器化部署。近期,该公司发现集群中存在多个Pod暴露,导致潜在的安全风险。

解决方案

  1. 通过部署Network Policies,限制Pod之间的通信,仅允许必要的服务之间互通。
  2. 对外暴露的Service采用LoadBalancer类型,并在云提供商层面启用防火墙规则,限制外部访问。
  3. 定期进行镜像安全扫描,确保所有运行的镜像都是安全和最新的。

效果: 通过这些措施,公司成功减少了潜在的攻击面,提升了集群的整体安全性。


九、总结

Kubernetes安全是一个复杂而重要的话题,需要综合运用多种安全措施和最佳实践。在实际操作中,建议从以下几个方面入手:

  1. 实施严格的身份验证和授权,确保只有合法用户和组件能够访问集群资源。
  2. 加强网络安全,通过Network Policies和加密通信,保护集群中的数据和流量。
  3. 保持镜像的安全性,定期扫描和更新基础镜像,避免因镜像漏洞导致的安全问题。
  4. 实时监控与审计,及时发现和应对潜在的安全威胁。
  5. 定期进行安全审计,确保集群配置的持续安全性。

通过以上这些最佳实践,结合具体的安全工具和技术,可以有效地保护Kubernetes集群,确保其安全稳定地运行。希望这篇文章能够为Kubernetes集群的安全管理提供实用的参考和启示。

相关文章:

Kubernetes安全:集群保护的最佳实践

随着容器化技术的广泛应用,Kubernetes已经成为企业IT基础设施的重要组成部分。然而,Kubernetes集群的复杂性也带来了独特的安全挑战。如何在动态变化的云原生环境中保障集群的安全性,成为每一位运维工程师和安全专家关注的焦点。本文将详细探…...

R+VIC模型融合实践技术应用及未来气候变化模型预测

在气候变化问题日益严重的今天,水文模型在防洪规划,未来预测等方面发挥着不可替代的重要作用。目前,无论是工程实践或是科学研究中都存在很多著名的水文模型如SWAT/HSPF/HEC-HMS等。虽然,这些软件有各自的优点;但是&am…...

前端开发:混合技术栈的应用

目录 前言 混合技术栈的优势 移动端开发嵌入H5 1、场景描述 2、实现方法 3、源码示例 OC项目嵌入Swift的使用 1、场景描述 2、实现方法 3、源码示例 HarmonyOS开发中嵌入WebView 1、权限配置 2、加载网页 结束语 前言 随着技术的不断进步,软件开发领域…...

Machine Learning: 十大基本机器学习算法

机器学习算法分类:监督学习、无监督学习、强化学习 基本的机器学习算法: 线性回归、支持向量机(SVM)、最近邻居(KNN)、逻辑回归、决策树、k平均、随机森林、朴素贝叶斯、降维、梯度增强。 机器学习算法大致可以分为三类: 监督学习算法 (Sup…...

react实现一个列表的拖拽排序(react实现拖拽)

需求场景: 我的项目里需要实现一个垂直列表的拖拽排序,效果图如下图: 技术调研: 借用antd Table实现: 我的项目里使用了antd,antd表格有一个示例还是挺像的,本来我想用Table实现&#xff0…...

通过mybatis的拦截器对SQL进行打标

1、背景 在我们开发的过程中,一般需要编写各种SQL语句,万一生产环境出现了慢查询,那么我们如何快速定位到底是程序中的那个SQL出现的问题呢? 2、解决方案 如果我们的数据访问层使用的是mybatis的话,那么我们可以通过…...

【MySQL】MySQL服务器——mysqld

1.MySQL服务器 是名为 mysqld 的数据库服务器程序,和“主机”(host)不一样是一个多线程的单进程管理对磁盘和内存中数据库的访问支持并发的客户端连接支持多个存储引擎,常见的存储引擎包括InnoDB、MyISAM、Memory、Archive支持事…...

JAVA面试_进阶部分_Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)

在什么时候: 首先需要知道,GC又分为minor GC 和 Full GC(major GC)。Java堆内存分为新生代和老年代,新生代 中又分为1个eden区和两个Survior区域。 一般情况下,新创建的对象都会被分配到eden区&#xff…...

【探秘海洋伤痕】海洋环境污染损害的警世启示

在地球这个蓝色星球上,广袤无垠的海洋孕育了无数生命,支撑着地球的生态平衡与人类的生存发展。然而,随着工业化和现代化的加速,海洋环境遭受的伤害日益严重,海洋环境污染损害成为了我们必须直面的严峻问题。本文将带您…...

过滤器(Filter)与拦截器(Interceptor)

在Java Web开发中,**拦截器(Interceptor)和过滤器(Filter)**都用于在请求处理过程中拦截和处理HTTP请求或响应,但它们有不同的应用场景和工作原理。下面将详细解释它们的区别,并提供代码演示。 …...

智慧城市运行管理服务平台建设方案

随着城市化的快速发展,城市运行管理面临着前所未有的挑战。智慧城市的概念应运而生,旨在通过信息技术手段提升城市管理效率和居民生活质量。智慧城市运行管理服务平台作为智慧城市建设的核心组成部分,其建设方案的科学性和前瞻性至关重要。 …...

Java是怎么解决并发问题的?

Happens-Before规则(前言) Happens-Before规则 是 Java 内存模型(JMM)中用于定义线程间操作可见性和有序性的一种规范。它的核心目的是:确保一个线程的某些操作结果对其他线程是可见的,并且这些操作在时间上的顺序不会被重排序破…...

使用 Chrome Flags 设置(适用于 HTTP 站点开发)

使用 Chrome Flags 设置(适用于 HTTP 站点开发) 在 Chrome 地址栏输入:chrome://flags/在搜索框输入 “Insecure origins” 或 “Allow invalid certificates”。找到 “Insecure origins treated as secure” 选项(或者 #allow-…...

解锁 AI 开发的无限可能:邀请您加入 coze-sharp 开源项目

大家好!今天我要向大家介绍一个充满潜力的开源项目——coze-sharp!这是一个基于 C# 开发的 Coze 客户端,旨在帮助开发者轻松接入 Coze AI 平台,打造智能应用。项目地址在这里:https://github.com/zhulige/coze-sharp&a…...

【Swift】面向协议编程之HelloWorld

定义一个协议(protocol),swift 中可以对protocol 进行扩展(extension)通过协议的扩展可以对函数有默认的实现 protocol Sleepable {func sleep() } protocol Eatable {func eat() } extension Eatable {func eat() {print("eat food")} }在类(class)或结…...

图神经网络学习笔记—纯 PyTorch 中的多 GPU 训练(专题十二)

对于许多大规模的真实数据集,可能需要在多个 GPU 上进行扩展训练。本教程将介绍如何通过 torch.nn.parallel.DistributedDataParallel 在 PyG 和 PyTorch 中设置多 GPU 训练管道,而无需任何其他第三方库(如 PyTorch Lightning)。请注意,此方法基于数据并行。这意味着每个 …...

Linux云计算SRE-第二十周

完成ELK综合案例里面的实验,搭建完整的环境 一、 1、安装nginx和filebeat,配置node0(10.0.0.100),node1(10.0.0.110),node2(10.0.0.120),采用filebeat收集nignx日志。 #node0、node1、node2采用以下相同方式收集ngin…...

springcloud gateway搭建及动态获取nacos注册的服务信息信息

前言 Spring Cloud Gateway 通过集成 Nacos 服务发现,可以动态获取注册到 Nacos 的微服务实例信息,并根据服务名(Service Name)自动生成路由规则或手动配置路由规则,实现请求的动态路由和负载均衡。 一个最简单的网关就…...

SSM基础专项复习6——Spring框架AOP(3)

系列文章 1、SSM基础专项复习1——SSM项目整合-CSDN博客 2、SSM基础专项复习2——Spring 框架(1)-CSDN博客 3、SSM基础专项复习3——Spring框架(2)-CSDN博客 4、SSM基础专项复习4——Maven项目管理工具(1&#xff…...

【嵌入式linux】网口和USB热插拔检测

在Linux常常需要对网口和USB等外设接口进行插拔检测,从而执行部分初始化操作。下面简要介绍Linux的Netlink机制,并在C程序中使用Linux的Netlink机制完成网口和USB口插拔检测。 Netlink 是 Linux 内核与用户空间进程通信的一种机制,主要用于内…...

C++(13)—类和对象(中) ③拷贝构造函数

文章目录 一、拷贝构造函数的基本概念1.1 什么是拷贝构造函数?1.2 拷贝构造函数的调用场景 二、拷贝构造函数的核心特性2.1 拷贝构造函数的参数2.2 默认拷贝构造函数 三、深拷贝与浅拷贝3.1 浅拷贝的问题 四、拷贝构造函数的实际应用4.1 何时需要显式定义拷贝构造函…...

【GPT入门】第17课 RAG向量检索分类、原理与优化

【GPT入门】第16课 RAG向量检索分类、原理与优化 1.向量检索概念1.1 文本检索的两类方式1.2 向量的定义1.3 文本向量(Text Embeddings)1.4 文本向量如何得到1.5 向量间相似度计算1.6 向量数据库功能对比1.7 open ai发布的两个向量模型2.向量数据库1.8 向量检索的优化3.检索后…...

Operator <=> (spaceship operator)

operator <>动机 在C20以前定义比较运算符&#xff1a;其他比较运算符基于<和实现 struct Type {int value;// 相等运算符friend bool operator(const Type& a, const Type& b) {return a.value b.value;}// 不等运算符friend bool operator!(const Type&a…...

队列的简单例题

题目如下 模拟队列 首先你要明白队列的话 只有队尾才能进行新增&#xff0c;也就是入队 只有队首才能出队&#xff0c;也就是删除 队首队尾指针一开始默认都是0 相当于队列中一开始是有一个元素的就是 0的位置 队首指针head0 队尾指针tail0 1.入队也就是队尾要先赋值&#xf…...

Calibre-Web-Automated:打造你的私人图书馆

有没有小伙伴在工作、学习或生活中喜欢保存一些书籍或PDF文件&#xff0c;结果过一段时间想找的时候却怎么也找不到&#xff0c;最后只能无奈放弃&#xff1f;你是否已经厌倦了手动管理电子书的繁琐&#xff1f;是否梦想拥有一个私人图书馆&#xff0c;随时随地都能轻松访问自己…...

第27周JavaSpringboot 前后端联调

电商前后端联调课程笔记 一、项目启动与环境搭建 1.1 项目启动 在学习电商项目的前后端联调之前&#xff0c;需要先掌握如何启动项目。项目启动是整个开发流程的基础&#xff0c;只有成功启动项目&#xff0c;才能进行后续的开发与调试工作。 1.1.1 环境安装 环境安装是项…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 8.2.1AWS OpenSearch 无服务器方案深度解析与实践指南1. Serverless架构的核心价值与行业趋势1.1 传统Elasticsearch集群的运维挑战1.2 Serverless技术演进路线技术特性对比…...

鸿蒙开发者社区资源的重要性

鸿蒙系统&#xff0c;作为华为公司自主研发的操作系统&#xff0c;旨在为各类智能设备提供统一的平台。它不仅支持手机、平板电脑等移动设备&#xff0c;还涵盖了物联网&#xff08;IoT&#xff09;设备和其他智能家居产品。鸿蒙系统的开发环境和工具链对于开发者来说至关重要&…...

【QT】事件系统入门——QEvent 基础与示例

一、事件介绍 事件是 应用程序内部或者外部产生的事情或者动作的统称 在 Qt 中使用一个对象来表示一个事件。所有的 Qt 事件均继承于抽象类 QEvent。事件是由系统或者 Qt 平台本身在不同的时刻发出的。当用户按下鼠标、敲下键盘&#xff0c;或者是窗口需要重新绘制的时候&…...

⚡️Jolt -- 通过JSON配置来处理复杂数据转换的工具

简介&#xff1a;一个能够通过JSON配置&#xff08;特定的语法&#xff09;来处理复杂数据转换的工具。 比如将API响应转换为内部系统所需的格式&#xff0c;或者处理来自不同来源的数据结构差异。例如&#xff0c;将嵌套的JSON结构扁平化&#xff0c;或者重命名字段&#xff0…...

2025-03-13 禅修-错误的做法

摘要: 2025-03-13 禅修-错误的做法 禅修-错误的做法 我们今天的课程是这个禅修防误。主要是有一些我们所明令禁止的。在整个禅修过程中&#xff0c;会对我们禅修出现一些弊端的这部分&#xff0c;我们会给大家介绍。第一&#xff0c;在禅修中要防止自由联想&#xff0c;防止幻…...

uni-app学习笔记——自定义模板

一、流程 1.这是一个硬性的流程&#xff0c;只要按照如此程序化就可以实现 二、步骤 1.第一步 2.第二步 3.第三步 4.每一次新建页面&#xff0c;都如第二步一样&#xff1b;可以选择自定义的模版&#xff08;vue3Setup——这是我自己的模版&#xff09;&#xff0c;第二步的…...

【医院绩效管理专题】8.医院绩效数据的收集与整理方法:洞察现状,引领未来

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、引言 在当今医疗行业竞争日益激烈的背景下,医院绩效管理已成为提升医疗服务质量、优化运营效率、增强综合竞争力的关键因素。而绩效数据的收集与整理作为绩效管理的基础环节,其科学性、准确性和完整性直…...

麒麟系统如何安装Anaconda

在银河麒麟操作系统&#xff08;Kylin OS&#xff09;中安装 Anaconda 的步骤相对简单&#xff0c;以下是基于搜索结果整理的详细安装指南&#xff1a; 步骤 1&#xff1a;下载 Anaconda 安装脚本 打开浏览器&#xff0c;访问 Anaconda 官方下载页面。选择适合 Linux 系统的安…...

Linux网络套接字编程——UDP服务器

Linux网络套接字编程——创建并绑定-CSDN博客 前面已经介绍了网络套接字的创建和绑定&#xff0c;这篇文章会通过UDP套接字实现一个UDP服务器。 先介绍将使用的接口。 recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr,…...

deepseek+kimi做ppt教程记录

1.首先注册deepseek和kimi deepseek官网&#xff1a;https://chat.deepseek.com/ kimi官网&#xff1a;https://kimi.moonshot.cn/ 以下以一篇工作总结报告为例 2.使用deepseek生成ppt大纲 让deepseek生成kimi生成ppt所需要的内容时&#xff0c;需要注意提示词内容&#xff0c;…...

Cursor 终极使用指南:从零开始走向AI编程

Cursor 终极使用指南&#xff1a;从零开始走向AI编程 问什么是cursor? mindmaproot(Cursor核心功能)智能编码代码生成自动补全错误修复项目管理多窗口布局版本控制终端集成个性设置主题定制快捷键配置插件扩展AI协作对话编程知识检索文档生成前些天发现了一个巨牛的人工智能学…...

TiDB 观测性解读(一)丨索引观测:快速识别无用索引与低效索

导读 可观测性已经成为分布式系统成功运行的关键组成部分。如何借助多样、全面的数据&#xff0c;让架构师更简单、高效地定位问题、分析问题、解决问题&#xff0c;已经成为业内的一个技术焦点。本系列文章将深入解读 TiDB 的关键参数&#xff0c;帮助大家更好地观测系统的状…...

批量将 Excel 文档中的图片提取到文件夹

前面我们介绍过如何批量删除 Excel 文档中的所有图片或者指定的图片&#xff0c;其中就需要用到批量提取 Excel 文档中图片的操作。我们如何才能够将 Excel 文档中的图片快速的提取出来呢&#xff1f;其实单个 Excel 文档中的图片提取到文件夹中是有多种方法可以完成的&#xf…...

postgresql 数据库使用

目录 索引 查看索引 创建 删除索引 修改数据库时区 索引 查看索引 select * from pg_indexes where tablenamet_table_data; 或者 select * from pg_statio_all_indexes where relnamet_table_data; 创建 CREATE INDEX ix_table_data_time ON t_table_data (id, crea…...

怎样进行相关论文的调研——How to conduct research on relevant papers?

怎样进行相关论文的调研 写在前面1.打开Web of Science2.检索同类表达3.构建“检索式”什么是“检索式” 参考内容 写在前面 偶然间刷到一篇知乎文章&#xff0c;顺着文章的推荐看了钟澄老师的科研论和在B站上的教学视频&#xff0c;深入了解后发现读文章还有这么多讲究&#…...

蓝桥杯备赛-基础练习 day1

1、闰年判断 问题描述 给定一个年份&#xff0c;判断这一年是不是闰年。 当以下情况之一满足时&#xff0c;这一年是闰年:1.年份是4的倍数而不是100的倍数 2&#xff0e;年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个…...

本地算力部署大模型详细流程(一)

1、版本选择 本地部署就是自己部署deepseek模型&#xff0c;使用本地的算力。 主要瓶颈&#xff1a;内存显存的大小。特点&#xff1a;此方案不用联网。适合&#xff1a;有数据隐私方面担忧的或者保密单位根本就不能上网的。 2、部署过程 比较流行的是使用ollama&#xff1a;ht…...

便利店商品推荐数字大屏:基于python和streamlit

基于python和streamlit实现的便利店商品推荐大屏&#xff0c;针对选择困难症消费者。 import streamlit as st import pandas as pd import numpy as np import altair as alt from datetime import datetime, timedelta import time# 模拟数据生成 def generate_data():np.ra…...

机器视觉工程师红外相机的选择:红外长波工业相机和短波红外工业相机玄机大总结

红外长波(LWIR)和短波(SWIR)工业相机在原理、应用场景和技术特点上有显著差异。以下是它们的对比分析: 1. 波长范围与成像原理 2. 技术特点 3. 典型应用场景 4. 优缺点对比 LWIR优势: 无需光照,适用于完全黑暗环境。 直接反映物体温度分布。 对烟雾、灰尘穿透能力强。…...

AI重构SEO关键词布局

内容概要 在搜索引擎优化&#xff08;SEO&#xff09;领域&#xff0c;AI技术的深度应用正在颠覆传统关键词布局逻辑。通过机器学习算法与语义分析模型&#xff0c;智能系统能够实时解析海量搜索数据&#xff0c;构建动态词库并精准捕捉用户意图。相较于依赖人工经验的关键词筛…...

c语言经典基础编程题

c语言经典基础编程题 一、输出输出1.1温度输出1.2排齐数据1.3进制转换 二、选择分支2.1求最大值2.2成绩评定2.3分段函数求值2.4 利润计算2.5判断闰年2.6二次方程根 三、循环结构3.1倒数求和3.2最大数3.3判断素数3.4判断完全数3.5打印菱形&#x1f680;&#x1f680;&#x1f68…...

【每日学点HarmonyOS Next知识】防截屏、作用域问题、观察器问题、对话框关闭、判断对象包含某个字段

1、HarmonyOS 防截屏功能如何实现&#xff1f; 防截屏功能如何实现 参考demo&#xff1a; aboutToDisappear(): void {let windowClass: window.Window | undefined undefined;window.getLastWindow(getContext(this)).then((win) > {this.window win }) window.getLas…...

linux操作系统实战

第一题 创建根目录结构中的所有的普通文件 [rootlocalhost ~]# cd /[rootlocalhost /]# mkdir /text[rootlocalhost /]# cd /text[rootlocalhost text]# mkdir /text/boot /text/root /text/home /text/bin /text/sbin /text/lib /text/lib64 /text/usr /text/opt /text/etc /…...

MKS HA-MFV:半导体制造中的高精度流量验证技术解析

引言 在半导体先进制程&#xff08;如3nm节点&#xff09;中&#xff0c;工艺气体流量的精准控制直接决定刻蚀、沉积等关键步骤的均匀性和良率。MKS Instruments推出的 HA-MFV&#xff08;High Accuracy Mass Flow Verifier&#xff09; 通过创新设计解决了传统流量验证技术的…...