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

2024 年:Kubernetes 包管理的新前沿

🧑 博主简介:CSDN博客专家历代文学网(PC端可以访问:历代文学,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程高并发设计Springboot和微服务,熟悉LinuxESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。
技术合作请加本人wx(注明来自csdn):foreast_sea

在这里插入图片描述

 


2024 年对 Glasskube 来说是充满活力的一年。2 月,我们推出了一个 Kubernetes 管理器,它最初是由我们的团队在产品发布失败后内部开发的,部分原因是当前使用的包管理工具的限制。在这次不冷不热的 Kubernetes 操作员首次亮相后,Glasskube 创始人 Philip 和 Louis 在 Hacker News 上分享了他们的发布事后分析。他们发现,许多其他人对现有的 Kubernetes 包管理解决方案也遇到了类似的挫折。认识到这一共同的痛苦,产品转型变得不可避免,Glasskube 包管理器开始形成。

the-start (开始)

现在,才同年 8 月中旬,我们已经接近 150 万次下载、2.6k 个 GitHub 星和 50+ 贡献者。我们见证了采用、功能和用例的显著增长。随着我们的不断发展,我们想花点时间回顾一下我们迄今为止完成的工作。这篇博文是一次全面的更新,是一面旗帜,旨在分享您需要了解的有关 Glasskube 当前状态、即将发生的事情以及您如何帮助塑造 Kubernetes 包管理的未来的所有信息。

欢迎来到 Kubernetes 包管理的新前沿。

介绍

为什么 Kubernetes 需要更好的包管理

自诞生以来,Kubernetes 作为容器编排系统从未停止过普及,其采用率不断提高。近年来,可用软件包的数量已从大约 100 个增加到 800 多个。这种增长无论如何都非常令人印象深刻,显示了 Kubernetes 生态系统的成熟度,但它也揭示了当前包管理工具的问题。开发人员经常在以下方面苦苦挣扎:

  • 复杂且高度定制的工作流程

  • 耗时且多次手动流程

  • 过度依赖当前的包管理器工具,这还有很多不足之处。

这些问题可能导致:

  • 运营团队的更多工作

  • 不可扩展的工作流程

  • 可能的安全风险

很明显,Kubernetes 需要一种方法来管理以现代 Kubernetes 集群使用方式发展的软件包,即以更加自动化和整体声明的方式。

什么是 Glasskube?

Glasskube 是为 Kubernetes 打造的开源包管理器。它旨在使安装、更新和设置包更容易、更快捷。事实上,它可以比 Helm 或 Kustomize 等工具快 20 倍。

Glasskube 从易于使用的包管理器(如 和 )中汲取了灵感。它提供两种管理包的方法:Homebrewnpm

图形用户界面 (GUI)

Glasskube-用户界面

命令行界面 (CLI)

glasskube serve # to access the Glasskube UI

当前工具:Helm 和 Kustomize

Helm 和 Kustomize 是管理 Kubernetes 包的两个主要工具。它们有助于在 Kubernetes 中设置和运行应用程序,但工作方式不同。

Helm 使用模板创建 Kubernetes yaml 文件。它将应用程序打包到 “图表” 中,这些图表是 YAML 文件的集合。它的一些好处是:

  • 配置复杂应用程序

  • 它在应用程序安装方面大放异彩

  • 回滚更改非常简单

  • 它被广泛采用

Kustomize 采用不同的方法,并且多次与 Helm 结合使用。它允许用户:

  • 设置基本应用程序配置

  • 为不同环境添加更改

  • 避免复杂的模板

现有工具的问题

虽然 Helm Kustomize 很有用,但它们可能会给开发人员带来问题。

Helm 可能很棘手:

  • 由于模板复杂,难以学习

  • 针对不同的设置自定义应用程序可能会令人困惑

  • 无法更新 CRD

  • 更新很笨拙

  • Helm 本质上是片面的,安装后它的工作就完成了。

Kustomize 有它自己的问题:

  • 没有内置的方法来管理包

  • 用户需要其他工具来共享其设置

  • 处理复杂的依赖关系可能很困难

  • 在管理应用程序生命周期方面的自动化程度低于 Helm

这些问题说明了为什么需要一个更简单的 Kubernetes 包管理器。这就是 Glasskube 的用武之地,旨在让整个过程更轻松。

Glasskube 解释

Glasskube 的工作原理

Glasskube 使管理 Kubernetes 软件包变得更加容易。它提供了两种使用方法:

  1. 图形界面 (GUI)

  2. 命令行界面 (CLI)

Glasskube 使用一个名为 Glasskub Hub 的中央软件包存储库,它可以:

  • 了解包依赖项

  • 与 GitOps 配合良好

  • 自动更新包

  • 允许引用多个公共和私有软件包存储库

glasskube-archetecture

可能最重要的是,Glasskube 具有客户端和服务器端组件。服务器端组件会持续跟踪已安装软件包的运行状况和所需状态。服务器端组件包括:

  • PackageController:与 Kubernetes API 通信以部署和协调包。

  • PackageInfoController:从配置的后端包存储库中读取包清单,以确定集群包的真实状态。

主要特点

Glasskube 有几个关键功能:

main-features

解决常见问题

Glasskube 直接解决了其他 Kubernetes 包管理器存在的差距:

  • 它比 Helm 更易于使用,而 Helm 对新用户来说可能很难

  • 它比 Kustomize 更好地处理依赖项,Kustomize 没有内置的包管理

  • 它与 GitOps 配合得很好,可以更轻松地:

    • 回滚更改
    • 升级应用
    • 团队合作
  • 包范围有助于提高包安装和包共享的效率。例如,如果多个包都依赖于 cert-manager,则一个实例足以为多个包提供服务。

  • 轻松访问带有前端的软件包,而无需手动前移

如何设置 Glasskube

您需要安装的内容

在开始之前,请确保您已:

  • 作为一个有效的 Kubernetes 集群,minikube 是快速本地设置的简单选择。

  • kubectl 安装在您的计算机上

分步安装指南

以下是设置 Glasskube 的方法:

安装 Glasskube CLI:打开终端并在 macOS 上运行:

brew install glasskube/tap/glasskube

有关其他安装方法,请单击此处。

通过运行以下命令引导 Glasskube 以安装服务器端组件:

glasskube bootstrap

检查安装跑:

glasskube version

确保 Glasskube 和 package-operator 都已安装并运行相同的版本:

glasskube: v0.17.0
package-operator: v0.17.0

使用 Glasskube:主要功能

访问 GUI

Glasskube 可以轻松地在 Kubernetes 集群中添加和删除软件包:

要添加包:

glasskube serve

安装软件包

Glasskube Hub 中可用的任何软件包都已准备好安装

glasskube install <package-name>

然后,此命令将在安装之前请求确认软件包版本。

要删除包:

glasskube uninstall

管理包依赖项

Glasskube 会为你处理包依赖项:

  • 安装包时,它会自动安装任何必需的依赖项

  • 这样可以节省时间并防止因缺少组件而出错

在下面的示例中,在安装软件包时,如果集群中尚不存在 cert-manager 实例,则还会安装该实例。keptn

keptn-dependency

处理包配置

您可以使用 Glasskube 轻松更改或查看包设置,请注意,并非所有都有自定义值配置:

在下面的示例中,caddy-ingress-controller 具有 exposed 值,您可以在其中添加电子邮件地址以启用 HTTPS 功能。automaticHTTPS

dependency-management

使用 GitOps

Glasskube 在 GitOps 工作流中运行良好,允许用户在 Git 中控制其 Kubernetes 包的所需状态意味着:

  • 您的 Kubernetes 包设置与存储在 Git 中的文件保持同步

  • 您可以使用 ArgoCD 或 Flux 等工具来应用存储在 Git 中的所需包状态

  • 更改易于跟踪,并在需要时撤消

  • 集群设置可以在几分钟内完成,而不是几小时。

我们这里有一个完全可操作的 Glasskube GitOps 模板。按照 README.md 文件中的步骤开始操作。

使用 Renovate 自动更新

Glasskube 将 Glasskube Hub 中的软件包始终更新到最新的稳定版本:

  • 启用新版本或在新版本可用时收到通知auto-updates

  • 显示包信息,包括包的当前版本和使用glasskube list

  • 运行 将安装包的最新可用版本glasskube update <packageName>

  • 此外,通过 GUI 手动更新也是一个选项。

open-button

添加自定义软件包存储库

您现在可以添加多个软件包存储库供 Glasskube 读取,这对于以下应用非常有用:

  • 拥有自己的私有包列表的公司

  • 希望更轻松地管理内部包的团队

  • 它允许对无法公开的私有包遵循合规性规则

通过运行以下命令添加公共仓库:

glasskube repo add <name> <url>

添加私有仓库

glasskube repo add <name> <url> --auth (none|basic|bearer)

multi-repo-diagram

Glasskube 与其他包管理器

它与 Helm 和 Kustomize 的区别

Glasskube 提供了一种管理 Kubernetes 软件包的新方法,解决了 Helm 和 Kustomize 等旧工具中的限制。它提供的功能包括包和包管理器之间的双向通信、增强的自动化以及更具声明性的包管理方法。以下是 Glasskube 的突出之处:

  • 自动通知:Glasskube 会跟踪已安装的版本,并在需要时自动通知用户新的安装。

  • 无缝 CRD 更新:它可以顺利更新自定义资源定义 (CRD),确保所有内容保持同步。

  • 完整的 GitOps 集成:Glasskube 支持完整的 GitOps 工作流,这在以前是不可能的。

  • 高效控制:通过包范围的附加抽象层允许对包配置和使用进行更高效、更精细的控制。

商业服务产品

提供具有自托管选项的商业工具的公司通常会把钱留在桌面上。自定义自托管安装和管理可能不在您公司的专业知识或带宽范围内。Glasskube Native 软件包可能是您需要的解决方案。我们可以与您合作,为各种自托管环境创建标准化、可定制且高度可扩展的软件包,所有这些都使用 Glasskube 打包。这种方法可确保为您的客户提供无缝体验,同时最大限度地提高您的收入潜力。

Business-service-offerings

如果您认为 Glasskube Native 软件包对您的业务有益,请与我们预约免费的演示电话。我们的团队很乐意为您提供帮助。

Glasskube 的下一步

新功能即将推出

Glasskube 正在添加新工具以简化包管理:

new-features

这些新功能将帮助用户更好地管理他们的 Kubernetes 包。

结束语

Kubernetes 软件包管理一直停滞不前,无法跟上通用 Kubernetes 生态系统的快速增长和发展。Glasskube 旨在使 Kubernetes 包管理更容易、更具声明性、灵活性,并且大大减少对需要多种工具才能完成工作的僵化模板流程的依赖。

随着 Glasskube 的发展,我们将需要用户和开发人员的帮助,以便朝着正确的方向进行构建。当前的 Kubernetes 包管理器最让您感到沮丧的是什么?我们如何改进?

对于使用 Kubernetes 的团队,我们希望像 Glasskube 这样的工具能越来越多地被采用和应用于复杂的环境。

相关文章:

2024 年:Kubernetes 包管理的新前沿

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;历代文学&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;高并发设计&#xf…...

SIEMENS PLC 程序 GRAPH 程序解读 车型入库

1、程序载图1 2、程序截图2 3、程序解释 这是一个基于西门子 GRAPH 编程的车型 1 入库顺序控制流程图&#xff0c;通过状态机结构&#xff08;状态框 S 与转移条件 T&#xff09;描述完整工作流程&#xff0c;具体如下&#xff1a; 整体流程概述 初始化&#xff1a;从 S1&am…...

c++11新特性随笔

1.统一初始化特性 c98中不支持花括号进行初始化&#xff0c;编译时会报错&#xff0c;在11当中初始化可以通过{}括号进行统一初始化。 c98编译报错 c11: #include <iostream> #include <set> #include <string> #include <vector>int main() {std:…...

微信小程序文章管理系统开发实现

概述 在内容为王的互联网时代&#xff0c;高效的文章管理系统成为各类平台的刚需。幽络源平台今日分享一款基于SSM框架开发的微信小程序文章管理系统完整解决方案&#xff0c;该系统实现了多角色内容管理、智能分类、互动交流等功能。 主要内容 一、用户端功能模块 ​​多角…...

3种FSC标签你用对了吗?

如果你留意过产品上的FSC小树标识&#xff0c;也许会发现它们很相似但又各不相同。 根据产品使用的FSC认证材料的不同比例&#xff0c;共有三种不同类型的FSC标签&#xff1a; 1、FSC 100% 所有使用的材料均来自负责任管理的FSC认证森林。 标签文本为&#xff1a;“ From well-…...

NLP高频面试题(五十四)——深度学习归一化详解

引言:大模型训练中的归一化需求 随着人工智能技术的快速发展,**大模型(Large Language Models, LLMs)**的规模与能力都呈爆发式增长。诸如GPT-4、BERT、PaLM等模型参数量从最初的百万级到如今的千亿、万亿级别,训练难度和效率问题日益显著。在超大模型的训练过程中,梯度…...

第5.5章:ModelScope-Agent:支持多种API无缝集成的开源框架

5.5.1 ModelScope-Agent概述 ModelScope-Agent&#xff0c;由阿里巴巴旗下ModelScope社区开发&#xff0c;是一个开源的、模块化的框架&#xff0c;旨在帮助开发者基于大型语言模型快速构建功能强大、灵活性高的智能代理。它的核心优势在于支持与多种API和外部系统的无缝集成&…...

筑牢数字防线:商城系统安全的多维守护策略

一、构建网络安全防护屏障​ 网络安全是商城系统安全的第一道防线。企业应采用先进的防火墙技术&#xff0c;实时监控和过滤进出网络的流量&#xff0c;阻止非法访问和恶意攻击。入侵检测与防御系统&#xff08;IDS/IPS&#xff09;也是不可或缺的安全组件&#xff0c;它能够及…...

PTC加热片详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main文件 jdq.h文件 jdq.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 PTC是正温度系数热敏电阻的英文简称&#xff0c;其电阻值随着PTC热敏电阻本体温度的升高呈现阶跃性的增加。温度越高&…...

OpenCV 图形API(64)图像结构分析和形状描述符------在图像中查找轮廓函数findContours()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在二值图像中查找轮廓。 该函数使用[253]中的算法从二值图像检索轮廓。轮廓是形状分析以及对象检测和识别的有用工具。请参阅 OpenCV 示例目录中…...

GIS开发笔记(15)基于osg和osgearth实现三维地图上添加路网数据(矢量shp)

一、实现效果 二、实现原理 准备路网图层数据(.shp、.prj、.dbf、.cpg),设置样式、贴地,添加图层到地球节点。 三、参考代码 {// 获取当前可执行程序所在的目录QString exeDir = QCoreApplication::applicationDirPath();// 构造 Shapefile 文件的完整路径...

Golang日志模块之xlog

基于douyu的xlog 依赖 github.com/douyu/jupiter/pkg/xlog go.uber.org/zap gopkg.in/natefinch/lumberjack.v2log相关结构体 types/log.go type Log struct {Env string toml:"env"InfoLogFileName string toml:"infoLogFileName"Error…...

guvcview-源码记录

guvcview源码记录 一、概述二、项目结构1. guvcview2. gview_audio3. gview_encoder4. gview_render1. render.c2. render_sdl2.c3. render_osd_crosshair.c4. render_osd_vu_meter.c5. render_fx.c 3. gview_v4l2core 三、四、五、六、 一、概述 项目地址&#xff1a;guvcvie…...

对比2款国产远控软件,贝锐向日葵更优

贝锐向日葵和ToDesk是两款国产的远程控制软件&#xff0c;其中贝锐向日葵比较老牌&#xff0c;2009年就推出了最早的版本&#xff0c;而ToDesk则是在前几年疫情期间出现的。如果要在这两款远控软件中进行一个对比和选择&#xff0c;我们可以从功能配置、性能表现、系统支持、使…...

SOC估算:开路电压修正的安时积分法

SOC估算&#xff1a;开路电压修正的安时积分法 基本概念 开路电压修正的安时积分法是一种结合了两种SOC估算方法的混合技术&#xff1a; 安时积分法&#xff08;库仑计数法&#xff09; - 通过电流积分计算SOC变化 开路电压法 - 通过电池电压与SOC的关系曲线进行校准 方法原…...

maxscript根据音频创建动画表情

方案1&#xff1a; Python pydub / Audacity phoneme recognition 来提取语音中的音素&#xff08;phonemes&#xff09;并输出为 JSON 供 3ds Max 使用 方案2: Papagayo输出.pgo 文件&#xff0c;通过 Python 脚本解析&#xff0c;然后转换成 JSON。 下面介绍下方案2&#…...

使用ast解ob混淆时关于types的总结

在AST解OB混淆过程中&#xff0c;babel/types模块&#xff08;简称types&#xff09;是核心操作工具&#xff0c;以下是典型应用场景及具体代码示例&#xff1a; 一、字符串解密场景 场景&#xff1a;OB混淆常将字符串存储为十六进制或Unicode编码&#xff0c;需还原为明文 ty…...

每天学一个 Linux 命令(32):sort

​​可访问网站查看,视觉品味拉满: http://www.616vip.cn/32/index.html sort 是 Linux 中用于对文本文件的行进行排序的命令,支持按字典序、数字、月份等多种方式排序。以下是详细说明和示例: 命令语法 sort [选项]... [文件]...常用选项 -n 或 --numeric-sort 按数值大小…...

解释两个 Django 命令 makemigrations和migrate

python manage.py makemigrations 想象一下&#xff0c;你正在设计一个房子。在开始建造之前&#xff0c;你需要一个详细的蓝图来指导建筑过程。在 Django 中&#xff0c;当你定义或修改模型&#xff08;比如 Employee&#xff09;&#xff0c;你实际上是在设计数据库的“房子…...

tkinter的窗口构建、原生组件放置和监测事件

诸神缄默不语-个人技术博文与视频目录 本文关注用Python3的tkinter包构建GUI窗口&#xff0c;并用tkinter原生组件来进行排版&#xff08;通过pack() / grid() / place()&#xff0c;并监测基础的事件&#xff08;如按钮被点击后获取文本框输入信息、单/多选框选择结果等&…...

Hot100方法及易错点总结2

本文旨在记录做hot100时遇到的问题及易错点 五、234.回文链表141.环形链表 六、142. 环形链表II21.合并两个有序链表2.两数相加19.删除链表的倒数第n个节点 七、24.两两交换链表中的节点25.K个一组翻转链表(坑点很多&#xff0c;必须多做几遍)138.随机链表的复制148.排序链表 N…...

WebUI可视化:第6章:项目实战:智能问答系统开发

第6章:项目实战:智能问答系统开发 学习目标 ✅ 完整实现前后端分离的问答系统 ✅ 掌握本地AI模型的集成方法 ✅ 实现对话历史管理功能 ✅ 完成系统部署与性能优化 6.1 项目整体设计 6.1.1 系统架构 graph TDA[用户界面] -->|输入问题| B(Web服务器)B -->|调用模型| …...

项目质量管理

项目质量管理核心要点与高频考点解析 一、项目质量管理核心框架 三大核心过程&#xff1a; 规划质量管理&#xff1a;制定质量标准和计划&#xff08;预防为主&#xff09;。实施质量保证&#xff1a;审计过程&#xff0c;确保符合标准&#xff08;过程改进&#xff09;。控…...

利用TTP协议 ETag + 路由守卫 实现前端发版后通知用户更新得一个方案

利用 ETag 做提示更新的实现方案 ETag&#xff08;Entity Tag&#xff09;是万维网协议HTTP的一部分&#xff0c;是HTTP协议提供的若干机制中的一种Web缓存验证机制&#xff0c;是一个可以与Web资源关联的记号&#xff08;token&#xff09;&#xff0c;并且允许客户端进行缓存…...

uniapp-商城-36-shop 购物车 选好了 进行订单确认2 支付方式颜色变化和颜色滤镜filter

颜色滤镜&#xff0c;在好多网页都这样使用&#xff0c;滤掉彩色&#xff0c;显示黑白&#xff0c;这在一些关键的日子中都这样使用。 1、依然回到订单确认页面 看到支付的颜色了嘛&#xff1f; <view class"payType"><view class"box" :class&q…...

CSRF请求伪造

该漏洞主要是关乎于用户&#xff0c;告诫用户不可乱点击链接&#xff0c;提升自我防范&#xff0c;才能不落入Hacker布置的陷阱&#xff01; 1. cookie与session 简单理解一下两者作用 1.1. &#x1f36a; Cookie&#xff1a;就像超市的会员卡 存储位置&#xff1a;你钱包里…...

爬虫瑞数6案例:深圳大学总医院,webEnv补环境

爬虫瑞数6案例:深圳大学总医院,webEnv补环境 一、准备工作二、webEnv补环境三、验证cookie四、验证请求结果五、总结声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关 前言: 之前出了一篇深圳大学总医院爬虫教程,那时候…...

运维 vm windows虚拟机nat网络配置

参考 VMWare虚拟机网络配置 - 秋夜雨巷 - 博客园 vm设置虚拟网络段 设置网络段 网关地址 设置DHCP 自动化分配网络段 主机&#xff1a;设置ip 控制面板\所有控制面板项\网络连接 出现设置的虚拟机网卡 设置ip 虚拟机&#xff1a;设置ip...

PPO 强化学习机械臂 IK 训练过程可视化利器 Tensorboard

视频讲解&#xff1a; PPO 强化学习机械臂 IK 训练过程可视化利器 Tensorboard PPO 强化学习过程中&#xff0c;设置了verbose会显示数据&#xff0c;但还是不够直观&#xff0c;这里上一个可视化利器&#xff0c;Tensorboard&#xff0c;实际上stable baselines3中已经有了这部…...

巧记英语四级单词 Unit5-中【晓艳老师版】

ignore v.无视&#xff0c;不理睬 发音“一个闹”&#xff0c;对付一个无理取闹的孩子&#xff0c;最好的方式就是无视 不理睬ignorant a.无知的&#xff0c;不礼貌的 对于什么事都无视&#xff0c;中国第一个不平等条约问也不知道就是无知的neglect n.忽视 negative消极的&a…...

Linux操作系统从入门到实战(三)Linux基础指令(上)

Linux操作系统从入门到实战&#xff08;三&#xff09;Linux基础指令&#xff08;上&#xff09; 前言一、ls 指令二、pwd三、cd四、touch 指令五、mkdir六、rmdir 指令和 rm 指令七、man 指令八、cp九、mv 指令十、cat 指令十一、 more 指令十二、less 指令十四、head 指令十五…...

MDF标准

MDF(Measurement Data Format),测量数据格式,是ASAM(自动化及测量系统标准协会)定义的, 是一种二进制文件,需要使用二进制文件编辑器查看. 作为一种紧凑的二进制格式,ASAM MDF提供了对海量测量数据的高效及高性能存储方案。MDF由松散耦合的二进制块组成,以实现灵活且高…...

如何本地无损放大图片保持高清画质

软件介绍 这款工具能让你轻松放大图片而不失真&#xff0c;最高支持4倍放大&#xff0c;并提供四种AI模型&#xff0c;适配不同风格的图像处理需求&#xff0c;包括普通照片、插画和漫画。它支持JPG、PNG、WEBP三种格式的输出&#xff0c;小巧便携&#xff0c;仅占用54.1MB空…...

【视频时刻检索】Text-Video Retrieval via Multi-Modal Hypergraph Networks 论文阅读

Text-Video Retrieval via Multi-Modal Hypergraph Networks 论文阅读 ABSTRACT1 INTRODUCTION2 PRELIMINARIES3 OUR FRAMEWORK3.1 Multi-Modal Hypergraph Networks3.2 Variational Inference 4 EXPERIMENT6 CONCLUSION 文章信息&#xff1a; 发表于&#xff1a;WSDM 24 原文…...

PowerShell脚本实现|从文件夹动画序列中均匀选取关键帧(保留首尾帧)

文章目录 1. 问题概述2. 两种实现方案方案一&#xff1a;自动计算法&#xff08;推荐&#xff09;方案二&#xff1a;手动列表法 3. 操作流程对比4. 注意事项5. 常见问题解决6. 总结建议 1. 问题概述 我们经常需要从动画序列中选取关键帧&#xff0c;例如&#xff1a; 文件名…...

红黑树——如何靠控制色彩实现平衡的?

目录 引言 一、认识红黑树&#xff08;RBTree&#xff09; 二、为什么有了AVL树&#xff0c;还要红黑树&#xff1f; 1、AVL树 vs 红黑树&#xff0c;两棵树区别 2、如何选择&#xff1f; 三、红黑树的核心操作 3.1、红黑树结构定义 3.2、插入操作 四、红黑树的验证 …...

金仓数据库KingbaseES技术实践类深度剖析与实战指南

一、语法兼容及迁移实战 &#xff08;一&#xff09;语法兼容的多元魅力 在当今多元化的数据库应用环境中&#xff0c;金仓数据库管理系统KingbaseES凭借其卓越的语法兼容能力脱颖而出。它采用的融合数据库架构&#xff0c;通过多语法体系一体化架构&#xff0c;实现了对Orac…...

Estimands与Intercurrent Events:临床试验与统计学核心框架

1. Estimands(估计目标)概述 1.1 定义与作用 1.1.1 定义 Estimand是临床试验中需明确提出的科学问题,即研究者希望通过数据估计的“目标量”,定义“治疗效应”具体含义,确保分析结果与临床问题一致。 例如,在研究某种新药对高血压患者降压效果时,Estimand可定义为“在…...

测试基础笔记第十二天

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、python基础1.认识python2.python环境搭建1.安装Python解释器2.安装PyCharm 3.基础语法1.注释2.变量3.标识符4.数据类型 4.程序的输入和输出1.程序的输入2.程序的…...

0. Selenium工具的安装

目录 前言一、安装Chrome浏览器与驱动1 安装2. 解压驱动包并将其放到Python目录中 二、安装Selenium0 前置条件&#xff1a;已经安装了Python1. 安装2.检查是否安装成功3. 测试用例 前言 提示&#xff1a;本篇介绍selenium工具的安装和使用 一、安装Chrome浏览器与驱动 1 安…...

MySQL元数据库完全指南:探秘数据背后的数据

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

嵌入式鸿蒙系统环境搭建与配置要求实现01

各位开发者大家好,今天主要给大家分享一下,鸿蒙系统的环境配置实现。 第一:鸿蒙配置基本要求 对电脑的要求,虚拟机配置建议 200GB 硬盘大小,10GB 内存,4*2CPU。 安装必要的依赖文件方法: sudo apt-get update && sudo apt-get install binutils git git-lfs g…...

【深度强化学习 DRL 快速实践】逆向强化学习算法 (IRL)

Inverse Reinforcement Learning (IRL) 详解 什么是 Inverse Reinforcement Learning&#xff1f; 在传统的强化学习 (Reinforcement Learning, RL) 中&#xff0c;奖励函数是已知的&#xff0c;智能体的任务是学习一个策略来最大化奖励 而在逆向强化学习 (Inverse Reinforc…...

Coding Practice,48天强训(23)

Topic 1&#xff1a;打怪&#xff08;回合数与刀数、先后手关系&#xff09; 登录—专业IT笔试面试备考平台_牛客网 #include <bits/stdc.h> using namespace std;int main() {int t;cin >> t;while (t--) {int h, a, H, A;cin >> h >> a >> H…...

策略模式(Strategy Pattern)详解

文章目录 1. 什么是策略模式&#xff1f;2. 为什么需要策略模式&#xff1f;3. 策略模式的核心概念3.1 策略&#xff08;Strategy&#xff09;3.2 具体策略&#xff08;Concrete Strategy&#xff09;3.3 上下文&#xff08;Context&#xff09; 4. 策略模式的结构5. 策略模式的…...

websheet 之 table表格

本控件只实现table的基础功能。 {.is-danger} 一、table基本使用 可以通过addTable函数动态增加table&#xff0c;代码如下&#xff1a; let tableColumn [];let col 1;tableColumn.push(测试 (col) 列);tableColumn.push(测试 (col) 列);tableColumn.push(测试 (col) …...

Python Cookbook-6.9 快速复制对象

任务 为了使用 copy.copy&#xff0c;需要实现特殊方法__copy__。而且你的类的__init__比较耗时所以你希望能够绕过它并获得一个“空的”未初始化的类实例。 解决方案 下面的解决方案可同时适用于新风格和经典类: def empty_copy(obj):class Empty(obj.__class__):def __in…...

Linux NIO 原理深度解析:从内核到应用的高性能 I/O 之道

Linux 的 ​非阻塞 I/O&#xff08;Non-blocking I/O&#xff0c;NIO&#xff09;​​ 是构建高性能服务器的核心技术&#xff0c;其核心思想是通过 ​事件驱动模型​ 和 ​零拷贝技术​ 实现高并发、低延迟的网络通信。以下从底层机制到实际应用进行全面剖析。 一、Linux I/O …...

Redis 集群切片全解析:四种常见技术的原理、优劣与应用

Redis 集群切片是将数据分散存储在多个 Redis 节点上的技术&#xff0c;以提高系统的可扩展性和性能。以下是一些常见的 Redis 集群切片方式&#xff1a; 1.哈希切片 原理&#xff1a;通过对数据的键进行哈希运算&#xff0c;将哈希值映射到不同的切片&#xff08;槽&#xf…...

html中margin的用法

在 HTML 页面布局中&#xff0c;margin 是 CSS 中用于设置 元素与元素之间的外边距&#xff08;即元素外部的空白区域&#xff09; 的属性。 它可以单独设置四个方向的边距&#xff1a;上&#xff08;top&#xff09;、右&#xff08;right&#xff09;、下&#xff08;bottom…...