咸阳网站建设专业公司/燃灯seo

咸阳网站建设专业公司,燃灯seo,电子商务网站建设合同,做预算查价格的网站是哪个好一、了解argocd ArgoCD是一个基于Kubernetes的GitOps持续交付工具,应用的部署和更新都可以在Git仓库上同步实现,并自带一个可视化界面。本文介绍如何使用GitArgocd方式来实现在k8s中部署和更新应用服务。关于ci这一块这里不多介绍。主要讲解argocd如何实…

一、了解argocd

ArgoCD是一个基于Kubernetes的GitOps持续交付工具,应用的部署和更新都可以在Git仓库上同步实现,并自带一个可视化界面。本文介绍如何使用Git+Argocd方式来实现在k8s中部署和更新应用服务。关于ci这一块这里不多介绍。主要讲解argocd如何实现cd持续部署。在开始前,需要部署一套k8s集群,可参考本文连接:https://blog.csdn.net/m0_69326428/article/details/144375315?spm=1011.2415.3001.5331

在这里插入图片描述

工作原理

ArgoCD 的核心理念是 GitOps,即以 Git 仓库作为单一的真理源,通过自动化的方式将仓库中的应用配置同步到 Kubernetes 集群中。

  1. 定义应用: 用户在 Git 仓库中定义应用的 Kubernetes 资源清单,并将这些清单文件提交到 Git 仓库。
  2. 创建 ArgoCD Application: 在 ArgoCD 中创建一个 Application 资源,该资源描述了应用在 Git 仓库中的位置,以及在 Kubernetes 集群中部署的位置。
  3. 同步状态监控: ArgoCD Controller 持续监控 Git 仓库中的配置,并与当前集群状态进行对比。每次检测到 Git 仓库中的应用配置发生变化时,Controller 会自动更新集群中的资源,保持与 Git 仓库的一致性。
  4. 自动同步与手动同步: ArgoCD 支持自动同步和手动同步。自动同步模式下,一旦检测到 Git 仓库有变化,ArgoCD 会自动更新 Kubernetes 集群中的资源。而在手动同步模式下,用户需要手动触发同步操作。
  5. 回滚功能: 如果应用更新导致问题,ArgoCD 提供了回滚功能,用户可以轻松恢复到先前的状态

CD 流水线有两种模式:Push 和 Pull

Push 模式

目前大多数 CI/CD 工具都使用基于 Push 的部署模式,例如 Jenkins。这种模式一般都会在 CI 流水线运行完成后执行一个命令(比如 kubectl)将应用部署到目标环境中。

这种 CD 模式的缺陷很明显:

需要在环境安装配置额外管理工具(比如 kubectl);
需要 Kubernetes 对其进行授权;
需要云平台授权;
无法感知部署状态。也就无法感知期望状态与实际状态的偏差,需要借助额外的方案来保障一致性。
Kubernetes 集群或者云平台对 CI 系统的授权凭证在集群或云平台的信任域之外,不受集群或云平台的安全策略保护,因此 CI 系统很容易被当成非法攻击的载体。

Pull 模式

Pull 模式会在目标环境中安装一个 Agent,例如在 Kubernetes 集群中就靠 Operator 来充当这个 Agent。Operator 会周期性地监控目标环境的实际状态,并与 Git 仓库中的期望状态进行比较,如果实际状态不符合期望状态,Operator 就会更新基础设施的实际状态以匹配期望状态。

只有 Git 的变更可以作为期望状态的唯一来源,除此之外,任何人都不可以对集群进行任何更改,即使你修改了,也会被 Operator 还原为期望状态,这也就是传说中的不可变基础设施。

目前基于 Pull 模式的 CD 工具有 Argo CD,Flux CD 以及 ks-devops。

二、部署argocd

github地址:https://github.com/argoproj/argo-cd

准备环境

#下载argocd client
wget https://github.com/argoproj/argo-cd/releases/download/v2.12.7/argocd-linux-amd64#权限
chmod u+x argocd-linux-amd64#移动可执行目录
mv ./argocd-linux-amd64 /usr/local/bin/argocd#验证 
argo version#准备yaml文件
wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

修改svc类型

为了方便测试。将svc类型改成NodePort。实际工作中建议使用ingress

[root@master231 ~]# vim install.yaml
...
apiVersion: v1
kind: Service
metadata:labels:app.kubernetes.io/component: serverapp.kubernetes.io/name: argocd-serverapp.kubernetes.io/part-of: argocdname: argocd-server
spec:# 增加 type: NodePorttype: NodePortports:- name: httpport: 80# 该位置增加访问端口 300xxx (30000-32000)任意 我们设置成30080nodePort: 30080protocol: TCPtargetPort: 8080- name: httpsport: 443protocol: TCPtargetPort: 8080selector:app.kubernetes.io/name: argocd-server
...

部署

kubectl create namespace argocd
kubectl apply -n argocd -f install.yaml

查看pod状态

kubectl get all -n argocd

访问

https://10.0.0.231:30080/login

在这里插入图片描述

查看密码

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
密码:****  
账号:admin

argocd客户端命令行工具修改密码

[root@master231 bin]# argocd login 10.0.0.231:30080
WARNING: server certificate had error: tls: failed to verify certificate: x509: cannot validate certificate for 10.0.0.231 because it doesn't contain any IP SANs. Proceed insecurely (y/n)? y
Username: admin
Password: 
'admin:login' logged in successfully
Context '10.0.0.231:30080' updated[root@master231 bin]# argocd account update-password
*** Enter password of currently logged in user (admin): 
*** Enter new password for user admin: 
*** Confirm new password for user admin: 
Password updated
Context '10.0.0.231:30080' updated[root@lc-master-1 ~]# argocd logout  192.168.0.71:8082
Logged out from '192.168.0.71:8082'
[root@master231 bin]# argocd login 10.0.0.231:30080
WARNING: server certificate had error: tls: failed to verify certificate: x509: cannot validate certificate for 10.0.0.231 because it doesn't contain any IP SANs. Proceed insecurely (y/n)? y
Username: admin
Password: 
'admin:login' logged in successfully
Context '10.0.0.231:30080' updated

三、web界面介绍

设置介绍

在这里插入图片描述

添加仓库地址

在这里插入图片描述

在这里插入图片描述

添加成功

在这里插入图片描述

四、创建应用

通过 CLI 来创建应用

在仓库https://gitee.com/ljh00928/test_cherry里有个app目录,里面有个 myapp-deployment.yaml 文件 和 myapp-service.yaml 文件,用来演示我们 argo cd 的功能

myapp-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp
spec:replicas: 1selector:matchLabels:app: myapptemplate:metadata:labels:app: myapptest: c1spec:containers:- image: yankay/dao-2048:latestname: myappports:- containerPort: 8008

myapp-service.yaml

apiVersion: v1
kind: Service
metadata:name: myapp-svc
spec:ports:- port: 8009targetPort: 8009type: NodePortselector:app: myapp

创建应用

#查看帮助手册
argocd app create --help#部署应用
argocd app create app01 --repo https://gitee.com/ljh00928/test_cherry.git --path app --dest-server https://kubernetes.default.svc --dest-namespace demo1

通过 UI 创建应用

同步策略:

自动同步允许 Argo CD 自动将 Git 仓库中的应用程序状态同步到 Kubernetes 集群中。

手动同步要求用户通过 Argo CD UI 或 CLI 手动触发同步操作。

在这里插入图片描述

由于 Argo CD 支持部署应用到多集群,所以如果你要将应用部署到外部集群的时候,需要先将外部集群的认证信息注册到 Argo CD 中,如果是在内部部署(运行 Argo CD 的同一个集群,默认不需要配置),直接使用 https://kubernetes.default.svc 作为应用的 K8S APIServer 地址即可。

首先列出当前 kubeconfig 中的所有集群上下文:

[root@master231 ~]# kubectl config get-contexts 
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin    orbstack

从列表中选择一个上下文名称并将其提供给 argocd cluster add CONTEXTNAME,比如对于 orbstack 上下文,运行:

[root@master231 ~]# argocd cluster list
SERVER                          NAME        VERSION  STATUS      MESSAGE  PROJECT
https://kubernetes.default.svc  in-cluster  1.23     Successf]ulargocd cluster add orbstack

在这里插入图片描述

查看yaml文件

在这里插入图片描述

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:name: app02
spec:destination:name: ''namespace: demo2server: 'https://kubernetes.default.svc'source:path: apprepoURL: 'https://gitee.com/ljh00928/test_cherry.git'targetRevision: HEADproject: defaultsyncPolicy:automated: nullsyncOptions:- CreateNamespace=true

填写完以上信息后,点击页面左上方的 Create 安装,即可创建 app02 应用,创建完成后可以看到当前应用的处于 OutOfSync 状态:

在这里插入图片描述

Argo CD 默认情况下每 3 分钟会检测 Git 仓库一次,用于判断应用实际状态是否和 Git 中声明的期望状态一致,如果不一致,状态就转换为 OutOfSync。默认情况下并不会触发更新,除非通过 syncPolicy 配置了自动同步

SYNC OPTIONS(同步策略)

spec:syncPolicy:syncOptions:- Validate=false- CreateNamespace=true- PruneLast=true- ApplyOutOfSyncOnly=true- Replace=false- SkipDryRunOnMissingResource=true

常见的同步选项包括:

  • Validate=false: 禁用资源的服务器端验证。这在某些自定义资源(CRD)可能尚未完全定义时非常有用。
  • CreateNamespace=true: 如果命名空间不存在,自动创建它。
  • PruneLast=true: 在同步过程中最后执行 prune 操作,以确保所有资源已经创建。
  • ApplyOutOfSyncOnly=true: 仅应用那些状态不同步的资源。
  • Replace=false: 使用 kubectl apply 而不是 kubectl replace 来更新资源。
  • SkipDryRunOnMissingResource=true: 在资源缺失时跳过 dry-run 检查

五、部署应用

上面我们创建好了应用,但还没有部署,所以 namespace、pod、deployment、svc 都没有

使用 CLI 同步

应用创建完成后,我们可以通过如下所示命令查看其状态

[root@master231 ~]# argocd app get app01
Name:               argocd/app01   #应用名称
Project:            default
Server:             https://kubernetes.default.svc  #部署的服务
Namespace:          demo1  #部署的ns
URL:                https://10.0.0.231:30080/applications/app01 
Source:
- Repo:             https://gitee.com/ljh00928/test_cherry.git  #资源仓库Target:           Path:             app   #仓库里的资源路径
SyncWindow:         Sync Allowed
Sync Policy:        Manual
Sync Status:        OutOfSync from  (30c6f26)  #仓库里的资源路径
Health Status:      Missing  #健康状态GROUP  KIND        NAMESPACE  NAME       STATUS     HEALTH   HOOK  MESSAGEService     demo1      myapp-svc  OutOfSync  Missing        
apps   Deployment  demo1      myapp      OutOfSync  Missin

因为 app01 是我们通过命名行创建的,ns 写的是 demo1,没有设置自动创建。如果你集群上没有这个命名空间,需要先手动创建

[root@master231 ~]# kubectl create ns demo1
namespace/demo1 created

应用程序状态为初始 OutOfSync 状态,因为应用程序尚未部署,并且尚未创建任何 Kubernetes 资源。要同步(部署)应用程序,可以执行如下所示命令

#同步应用app01
[root@master231 ~]# argocd app sync app01
TIMESTAMP                  GROUP        KIND   NAMESPACE                  NAME    STATUS    HEALTH        HOOK  MESSAGE
2025-03-25T15:12:33+08:00            Service       demo1             myapp-svc  OutOfSync  Missing              
2025-03-25T15:12:33+08:00   apps  Deployment       demo1                 myapp  OutOfSync  Missing              
2025-03-25T15:12:33+08:00            Service       demo1             myapp-svc    Synced  Healthy              
2025-03-25T15:12:33+08:00            Service       demo1             myapp-svc    Synced   Healthy              service/myapp-svc created
2025-03-25T15:12:33+08:00   apps  Deployment       demo1                 myapp  OutOfSync  Missing              deployment.apps/myapp created
2025-03-25T15:12:33+08:00   apps  Deployment       demo1                 myapp    Synced  Progressing              deployment.apps/myapp createdName:               argocd/app01
Project:            default
Server:             https://kubernetes.default.svc
Namespace:          demo1
URL:                https://10.0.0.231:30080/applications/app01
Source:
- Repo:             https://gitee.com/ljh00928/test_cherry.gitTarget:           Path:             app
SyncWindow:         Sync Allowed
Sync Policy:        Manual
Sync Status:        Synced to  (30c6f26)
Health Status:      ProgressingOperation:          Sync
Sync Revision:      30c6f26bc59ce7f0605caac7c43e5316c55c89ce
Phase:              Succeeded
Start:              2025-03-25 15:12:33 +0800 CST
Finished:           2025-03-25 15:12:33 +0800 CST
Duration:           0s
Message:            successfully synced (all tasks run)GROUP  KIND        NAMESPACE  NAME       STATUS  HEALTH       HOOK  MESSAGEService     demo1      myapp-svc  Synced  Healthy            service/myapp-svc created
apps   Deployment  demo1      myapp      Synced  Progressing        deployment.apps/myapp created

此命令从 Git 仓库中检索资源清单并执行 kubectl apply 部署应用,执行上面命令后 guestbook 应用便会运行在集群中了,现在我们就可以查看其资源组件、日志、事件和评估其健康状态了。

#再次查看app01状态
[root@master231 ~]# argocd app get app01
Name:               argocd/app01
Project:            default
Server:             https://kubernetes.default.svc
Namespace:          demo1
URL:                https://10.0.0.231:30080/applications/app01
Source:
- Repo:             https://gitee.com/ljh00928/test_cherry.gitTarget:           Path:             app
SyncWindow:         Sync Allowed
Sync Policy:        Manual
Sync Status:        Synced to  (30c6f26)
Health Status:      Progressing   #状态为 Progressing(进行中)了GROUP  KIND        NAMESPACE  NAME       STATUS  HEALTH       HOOK  MESSAGEService     demo1      myapp-svc  Synced  Healthy            service/myapp-svc created
apps   Deployment  demo1      myapp      Synced  Progressing        deployment.apps/myapp created

等一会在去查看状态

[root@master231 ~]# argocd app get app01
Name:               argocd/app01
Project:            default
Server:             https://kubernetes.default.svc
Namespace:          demo1
URL:                https://10.0.0.231:30080/applications/app01
Source:
- Repo:             https://gitee.com/ljh00928/test_cherry.gitTarget:           Path:             app
SyncWindow:         Sync Allowed
Sync Policy:        Manual
Sync Status:        Synced to  (8a1ee3f)
Health Status:      Healthy    #状态为 Healthy(健康)的了GROUP  KIND        NAMESPACE  NAME       STATUS  HEALTH   HOOK  MESSAGEService     demo1      myapp-svc  Synced  Healthy        service/myapp-svc unchanged
apps   Deployment  demo1      myapp      Synced  Healthy        deployment.apps/myapp unchanged

然后查看 pod、deploy、svc

[root@master231 ~]# kubectl -n demo1 get all
NAME                         READY   STATUS    RESTARTS   AGE
pod/myapp-6449b755f5-5fkzf   1/1     Running   0          2m26sNAME                TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/myapp-svc   NodePort   10.200.5.218   <none>        8009:31922/TCP   22mNAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/myapp   1/1     1            1           22mNAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/myapp-5f748b96c    0         0         0       22m
replicaset.apps/myapp-6449b755f5   1         1         1       7m18s

使用 UI 界面同步

在这里插入图片描述

查看资源状态

在这里插入图片描述

也可以查看日志、event 等信息

在这里插入图片描述

查看 pod、deploy、svc。都运行正常

[root@master231 ~]# kubectl -n demo2 get all
NAME                         READY   STATUS    RESTARTS   AGE
pod/myapp-6449b755f5-4tl7m   1/1     Running   0          7m20sNAME                TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/myapp-svc   NodePort   10.200.164.64   <none>        8009:31185/TCP   7m20sNAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/myapp   1/1     1            1           7m20sNAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/myapp-6449b755f5   1         1         1       7m20s

六、更新应用

上面我们已经部署好了两个应用 app01 和 app02,现在来更改一下 myapp-deployment.yaml 文件,将镜像改为green

在这里插入图片描述

再次点击sync同步按钮,可以看见有两个rs,一个副本数为 0,一个副本数为 1

在这里插入图片描述

[root@master231 ~]# kubectl -n demo2 get rs
NAME               DESIRED   CURRENT   READY   AGE
myapp-6449b755f5   0         0         0       19m
myapp-65c5d9cf87   1         1         1       4m3s

七、回滚

上面我们的 app02 已经有两个版本了,现在最新的是 geen版本,我们也可以可以回滚到第一个版本

现在是这个版本

在这里插入图片描述

在回滚的时候需要禁用 AUTO-SYNC 自动同步,点击历史和回滚。找到要回滚的版本,点击 Rollback

在这里插入图片描述

在这里插入图片描述

这时候已经回滚到第一个版本了

在这里插入图片描述

#回滚前
[root@master231 ~]# kubectl -n demo2 get rs
NAME               DESIRED   CURRENT   READY   AGE
myapp-6449b755f5   0         0         0       32m
myapp-65c5d9cf87   1         1         1       16m#回滚后
[root@master231 ~]# kubectl -n demo2 get rs
NAME               DESIRED   CURRENT   READY   AGE
myapp-6449b755f5   1         1         1       35m
myapp-65c5d9cf87   0         0         0       19m

查看 pod,svc,deployment

[root@master231 ~]# kubectl -n demo2 get all
NAME                         READY   STATUS    RESTARTS   AGE
pod/myapp-6449b755f5-252l9   1/1     Running   0          3m10sNAME                TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/myapp-svc   NodePort   10.200.164.64   <none>        8009:31185/TCP   36mNAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/myapp   1/1     1            1           36mNAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/myapp-6449b755f5   1         1         1       36m
replicaset.apps/myapp-65c5d9cf87   0         0         0       20m

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

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

相关文章

可视化图解算法:删除有序(排序)链表中重复的元素

1. 题目 描述 删除给出链表中的重复元素&#xff08;链表中元素从小到大有序&#xff09;&#xff0c;使链表中的所有元素都只出现一次 例如&#xff1a; 给出的链表为1→1→2,返回1→2. 给出的链表为1→1→2→3→3返回1→2→3. 数据范围&#xff1a;链表长度满足 0≤n≤100…

ETL:数据清洗、规范化和聚合的重要性

在当今这个数据呈爆炸式增长的时代&#xff0c;数据已成为企业最为宝贵的资产之一。然而&#xff0c;数据的海量增长也伴随着诸多问题&#xff0c;如数据来源多样、结构复杂以及质量问题等&#xff0c;这些问题严重阻碍了数据的有效处理与深度分析。在此背景下&#xff0c;ETL&…

spring boot jwt生成token

1、引入jwt依赖 <!--jwt的依赖--> <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.3</version> </dependency> 2、创建TokenUtils工具类 package com.pn.utils;import com.…

豪越科技:融合低空经济的消防一体化安全管控解决方案

在科技飞速发展的当下&#xff0c;2025 年低空经济正处于规模化商用的关键节点&#xff0c;其在应急救援、物流配送等多领域展现出巨大潜力。豪越科技凭借其先进的消防一体化安全管控方案&#xff0c;与低空经济深度融合&#xff0c;打造出一套更为高效、智能的消防解决方案&am…

清华大学 | DeepSeek第十版!《DeepSeek政务应用场景及解决方案》

清华大学发布的《DeepSeek政务应用场景及解决方案》研究报告&#xff0c;聚焦人工智能技术DeepSeek在政府治理与公共服务中的创新实践&#xff0c;系统阐述了其如何通过智能化技术赋能政务数字化转型&#xff0c;推动治理能力现代化。报告指出&#xff0c;DeepSeek作为融合大数…

R语言双Y轴折线图+相关性注释

目录 包和数据 作图代码及详解 包和数据 rm(list ls()) library(ggpubr) library(scales) library(ggplot2)data <- iris##鸢尾花数据集 data1 <- data[1:30,c(1,2,3)] > head(data1)Sepal.Length Sepal.Width Petal.Length 1 5.1 3.5 …

2024年3月全国计算机等级考试真题(二级C语言)

&#x1f600; 第1题 下列叙述中正确的是 A. 矩阵是非线性结构 B. 数组是长度固定的线性表 C. 对线性表只能作插入与删除运算 D. 线性表中各元素的数据类型可以不同 题目解析&#xff1a; A. 矩阵是非线性结构 错误。矩阵通常是二维数组&#xff0c;属…

基于Ebay拍卖网站成交价格的影响因素分析

摘要:近些年来网上拍卖的不断地发展&#xff0c;网上购物慢慢变成了大家普遍接受的购物方式。因此关于网上拍卖的研究日益成为很多人研究的重点。 影响拍卖网站价格的因素很多&#xff0c;但很少有人分得清楚哪些因素才是比较重要的因素&#xff0c;因此对价格因素分析&#x…

Langchain中的表格解析:RAG 和表格的爱恨情仇

实现 RAG(Retrieval-Augmented Generation)是一个挑战,尤其是在有效解析和理解非结构化文档中的表格时。这在处理扫描文档或图像格式的文档时尤为困难。这些挑战至少包括以下三个方面: 1.表格的“叛逆期”:不准确的解析可能会破坏表格结构: 表格在文档里就像个叛逆的青少…

Solr-搜索引擎-入门到精通

以下是对 Apache Solr 的简介及其常用语法的快速入门指南&#xff1a; 一、Solr 是什么&#xff1f; • 核心定位&#xff1a;Apache Solr 是一个基于 Lucene 的高性能、开源的搜索平台&#xff0c;支持全文检索、分词、高亮、聚合统计等功能。 • 核心功能&#xff1a; • 全…

原生后台GPS位置限制,降低功耗

1.后台 GPS 位置限制的背景 为了控制功耗&#xff0c;Android 平台对后台应用获取位置信息的频率进行了限制。后台的定义与后台执行限制一致&#xff0c;即应用不在前台运行时被视为后台应用。 2.更新间隔限制&#xff1a; 后台应用获取位置信息的更新间隔不能超过一定阈值。…

Docker 搭建 PlantUML 服务:高效生成 UML 图的最佳实践

PlantUML 是一款开源的 UML 图形生成工具&#xff0c;它支持生成类图、时序图、用例图、活动图等多种类型的 UML 图&#xff0c;广泛应用于软件设计、文档编写以及团队沟通中。通过 Docker 安装 PlantUML&#xff0c;开发者可以快速搭建环境&#xff0c;轻松生成 UML 图&#x…

简鹿办公汇总快速打开 Windows 资源管理器的几种方式

无论你是刚开始使用电脑的新手&#xff0c;还是已经有一定经验的用户&#xff0c;了解如何在 Windows 系统中打开资源管理器都是一个非常基本且重要的技能。Windows 资源管理器&#xff08;现在称为“文件资源管理器”&#xff09;是帮助你浏览、查找和管理计算机上所有文件的主…

DNA-PAINT

参考: 【科研教程】NUPACK网页版使用教程 https://www.bilibili.com/video/BV1G94y1W7mN/NUPACK新版网页版教程-模拟部分 https://zhuanlan.zhihu.com/p/678730568NUPACK 4.0 User Guide https://docs.nupack.org/NUPACK网页版使用指南 https://zhuanlan.zhihu.com/p/55024017…

小程序内表格合并功能实现—行合并

功能介绍&#xff1a;支付宝小程序手写表格实现行内合并&#xff0c;依据动态数据自动计算每次需求合并的值&#xff0c;本次记录行内合并&#xff0c;如果列内合并&#xff0c;同理即可实现 前端技术&#xff1a;grid布局 display&#xff1a;grid 先看实现效果: axml&…

计算机视觉cv2入门之角点检测

角点是指图像中两条边缘线的交点&#xff0c;这些交点通常代表了图像中的重要特征。在计算机视觉中&#xff0c;角点检测是一种关键的技术&#xff0c;它可以帮助我们从图像中提取出这些重要的特征点&#xff0c;进而用于图像匹配、物体识别、图像拼接等多种应用。 角点检测示例…

抽奖的诱惑系统注册与登录功能测试报告

目录 一&#xff1a;项目背景 二&#xff1a;项目功能 &#xff08;1&#xff09; 注册功能 &#xff08;2&#xff09; 登录功能 电话 密码登录 电话 短信登录 三&#xff1a;设计测试用例 四&#xff1a;功能测试 五&#xff1a;自动化测试代码 七&#xff1a;遗留风…

【蓝桥杯】每日练习 Day12 贡献法

前言 今天给大家带来两道贡献法的问题&#xff0c;先来讲一下什么是贡献法。 贡献法&#xff0c;与其说是一种算法&#xff0c;不如说是一种数学方法&#xff0c;是一种思维方式。 先来给大家举个例子&#xff0c;假设现在有个问题&#xff0c;需要你在一个只有小写字母的字…

文字也能生成视频?【蓝耘实践】:通义万相2.1文生视频

文字也能生成视频&#xff1f;【蓝耘实践】&#xff1a;通义万相2.1文生视频 上次我们已经介绍了关于在蓝耘云平台实践通义万相的基本玩法&#xff0c;这次将介绍进阶玩法&#xff0c;也就是使用文字来生成视频。 首先我们还是先注册或者登录蓝耘云平台。 通过蓝耘平台进入流…

ASP.NET Web的 Razor Pages应用,配置热重载,解决.NET Core MVC 页面在更改后不刷新

Razor Pages应用&#xff0c;修改页面查看修改效果&#xff0c;如果没有热重载&#xff0c;改一句话跑一次&#xff0c;这个活就没法干了。 1、VS2022中的NuGet中安装RuntimeCompilation Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 需要配套你的.net sdk版本&#x…