rancher on k3s

本次部署采用3节点的etcd服务+2master节点的k3s+使用helm部署的rancher+vip(keepalived)

一、安装etcd服务

# 准备 3 个节点部署 etcd

cd /hskj/tmp
wget  https://github.com/etcd-io/etcd/releases/download/v3.3.15/etcd-v3.3.15-linux-amd64.tar.gz
tar xzvf etcd-v3.3.15-linux-amd64.tar.gz -C /hskj/
cp /hskj/etcd-v3.3.15-linux-amd64/etc* /usr/local/bin

创建 etcd.service 服务托管于 systemd

 vim /usr/lib/systemd/system/etcd.service

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target[Service]
Type=notify
# 指定环境变量所在 
EnvironmentFile=-/etc/etcd/config
ExecStart=/usr/local/bin/etcd \
--name=${ETCD_NAME} \
--data-dir=${ETCD_DATA_DIR} \
--listen-peer-urls=${ETCD_LISTEN_PEER_URLS} \
--listen-client-urls=${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379 \
--advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS} \
--initial-advertise-peer-urls=${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
--initial-cluster=${ETCD_INITIAL_CLUSTER} \
--initial-cluster-token=${ETCD_INITIAL_CLUSTER} \
--initial-cluster-state=new 
Restart=on-failure
LimitNOFILE=65536[Install]
WantedBy=multi-user.target

创建 etcd 配置文件
mkdir /etc/etcd 
vim /etc/etcd/config 

#[Member]
##节点名字,每个节点都进行修改
ETCD_NAME="etcd01" 
#数据目录
ETCD_DATA_DIR="/hskj/etcd/"
#当前节点的ip地址,每个节点都进行修改
ETCD_LISTEN_PEER_URLS="http://192.168.113.230:2380" 
ETCD_LISTEN_CLIENT_URLS="http://192.168.113.230:2379"#[Clustering]
#每个节点都要修改
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.113.230:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.113.230:2379"
#集群所有的节点的ip地址
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.113.230:2380,etcd02=http://192.168.113.231:2380,etcd03=http://192.168.113.242:2380" 
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

启动 etcd

systemctl daemon-reload
systemctl start etcd
systemctl enable etcd

检查etcd服务是否正常

# ETCDCTL_API=3 etcdctl --endpoints=http://192.168.113.230:2379,http://192.168.113.231:2379,http://192.168.113.242:2379 endpoint health
http://192.168.113.242:2379 is healthy: successfully committed proposal: took = 8.90272ms
http://192.168.113.231:2379 is healthy: successfully committed proposal: took = 9.948766ms
http://192.168.113.230:2379 is healthy: successfully committed proposal: took = 9.792125ms

 

二、安装k3s集群,

1、下载软件,并赋予执行权限

cd /hskj/tmp
wget https://rancher-mirror.rancher.cn/k3s/v1.26.15-k3s1/k3s-airgap-images-amd64.tar.gz
wget https://rancher-mirror.rancher.cn/k3s/v1.26.15-k3s1/k3s
chmod +x k3s

2.然后将k3s的二进制文件复制到/usr/local/bin/

cp k3s /usr/local/bin/

3.然后导入镜像

docker load -i k3s-airgap-images-amd64.tar.gz

4.设置环境遍历,

这里要先禁用k3s自带的traefik,不禁用无法搭建2master。等k3s双master节点搭建成功后在手动部署traefix

export INSTALL_K3S_SKIP_DOWNLOAD=true
export INSTALL_K3S_EXEC='--docker --disable=traefik'
export INSTALL_K3S_VERSION=k3s_v1.26.15-k3s1

5、安装k3s,--token手动指定

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \
--token=5f98ff636dc1b5cad22fedaa46390557 \
--datastore-endpoint="http://192.168.113.231:2379,http://192.168.113.232:2379,http://192.168.113.233:2379"

6、查看k3s服务

[root@jxqzw-kvm-rancher-130-89 tmp]# systemctl status k3s
● k3s.service - Lightweight KubernetesLoaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: disabled)Active: active (running) since 四 2025-02-13 08:46:50 CST; 38min agoDocs: https://k3s.ioMain PID: 3974 (k3s-server)Tasks: 25Memory: 852.4MCGroup: /system.slice/k3s.service└─3974 /usr/local/bin/k3s server

7、查看k3s集群是否ok

[root@jxqzw-kvm-rancher-130-89 tmp]#kubectl get nodes                                                              kubectl get nodes
NAME                       STATUS   ROLES                  AGE   VERSION
jxqzw-kvm-rancher-130-89   Ready    control-plane,master   17h   v1.26.15+k3s1
jxqzw-kvm-rancher-130-90   Ready    control-plane,master   17h   v1.26.15+k3s1
您在 /var/spool/mail/root 中有新邮件

三、安装rancher

1、rancher签证脚本直接复制即可

#!/bin/bash -e
help ()
{echo  ' ================================================================ 'echo  ' --ssl-domain: 生成ssl证书需要的主域名,如不指定则默认为www.rancher.local,如果是ip访问服务,则可忽略;'echo  ' --ssl-trusted-ip: 一般ssl证书只信任域名的访问请求,有时候需要使用ip去访问server,那么需要给ssl证书添加扩展IP,多个IP用逗号隔开;'echo  ' --ssl-trusted-domain: 如果想多个域名访问,则添加扩展域名(SSL_TRUSTED_DOMAIN),多个扩展域名用逗号隔开;'echo  ' --ssl-size: ssl加密位数,默认2048;'echo  ' --ssl-cn: 国家代码(2个字母的代号),默认CN;'echo  ' 使用示例:'echo  ' ./create_self-signed-cert.sh --ssl-domain=www.test.com --ssl-trusted-domain=www.test2.com \ 'echo  ' --ssl-trusted-ip=1.1.1.1,2.2.2.2,3.3.3.3 --ssl-size=2048 --ssl-date=3650'echo  ' ================================================================'
}case "$1" in-h|--help) help; exit;;
esacif [[ $1 == '' ]];thenhelp;exit;
fiCMDOPTS="$*"
for OPTS in $CMDOPTS;
dokey=$(echo ${OPTS} | awk -F"=" '{print $1}' )value=$(echo ${OPTS} | awk -F"=" '{print $2}' )case "$key" in--ssl-domain) SSL_DOMAIN=$value ;;--ssl-trusted-ip) SSL_TRUSTED_IP=$value ;;--ssl-trusted-domain) SSL_TRUSTED_DOMAIN=$value ;;--ssl-size) SSL_SIZE=$value ;;--ssl-date) SSL_DATE=$value ;;--ca-date) CA_DATE=$value ;;--ssl-cn) CN=$value ;;esac
done# CA相关配置
CA_DATE=${CA_DATE:-3650}
CA_KEY=${CA_KEY:-cakey.pem}
CA_CERT=${CA_CERT:-cacerts.pem}
CA_DOMAIN=cattle-ca# ssl相关配置
SSL_CONFIG=${SSL_CONFIG:-$PWD/openssl.cnf}
SSL_DOMAIN=${SSL_DOMAIN:-'www.rancher.local'}
SSL_DATE=${SSL_DATE:-3650}
SSL_SIZE=${SSL_SIZE:-2048}## 国家代码(2个字母的代号),默认CN;
CN=${CN:-CN}SSL_KEY=$SSL_DOMAIN.key
SSL_CSR=$SSL_DOMAIN.csr
SSL_CERT=$SSL_DOMAIN.crtecho -e "\033[32m ---------------------------- \033[0m"
echo -e "\033[32m       | 生成 SSL Cert |       \033[0m"
echo -e "\033[32m ---------------------------- \033[0m"if [[ -e ./${CA_KEY} ]]; thenecho -e "\033[32m ====> 1. 发现已存在CA私钥,备份"${CA_KEY}"为"${CA_KEY}"-bak,然后重新创建 \033[0m"mv ${CA_KEY} "${CA_KEY}"-bakopenssl genrsa -out ${CA_KEY} ${SSL_SIZE}
elseecho -e "\033[32m ====> 1. 生成新的CA私钥 ${CA_KEY} \033[0m"openssl genrsa -out ${CA_KEY} ${SSL_SIZE}
fiif [[ -e ./${CA_CERT} ]]; thenecho -e "\033[32m ====> 2. 发现已存在CA证书,先备份"${CA_CERT}"为"${CA_CERT}"-bak,然后重新创建 \033[0m"mv ${CA_CERT} "${CA_CERT}"-bakopenssl req -x509 -sha256 -new -nodes -key ${CA_KEY} -days ${CA_DATE} -out ${CA_CERT} -subj "/C=${CN}/CN=${CA_DOMAIN}"
elseecho -e "\033[32m ====> 2. 生成新的CA证书 ${CA_CERT} \033[0m"openssl req -x509 -sha256 -new -nodes -key ${CA_KEY} -days ${CA_DATE} -out ${CA_CERT} -subj "/C=${CN}/CN=${CA_DOMAIN}"
fiecho -e "\033[32m ====> 3. 生成Openssl配置文件 ${SSL_CONFIG} \033[0m"
cat > ${SSL_CONFIG} <<EOM
[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth, serverAuth
EOMif [[ -n ${SSL_TRUSTED_IP} || -n ${SSL_TRUSTED_DOMAIN} ]]; thencat >> ${SSL_CONFIG} <<EOM
subjectAltName = @alt_names
[alt_names]
EOMIFS=","dns=(${SSL_TRUSTED_DOMAIN})dns+=(${SSL_DOMAIN})for i in "${!dns[@]}"; doecho DNS.$((i+1)) = ${dns[$i]} >> ${SSL_CONFIG}doneif [[ -n ${SSL_TRUSTED_IP} ]]; thenip=(${SSL_TRUSTED_IP})for i in "${!ip[@]}"; doecho IP.$((i+1)) = ${ip[$i]} >> ${SSL_CONFIG}donefi
fiecho -e "\033[32m ====> 4. 生成服务SSL KEY ${SSL_KEY} \033[0m"
openssl genrsa -out ${SSL_KEY} ${SSL_SIZE}echo -e "\033[32m ====> 5. 生成服务SSL CSR ${SSL_CSR} \033[0m"
openssl req -sha256 -new -key ${SSL_KEY} -out ${SSL_CSR} -subj "/C=${CN}/CN=${SSL_DOMAIN}" -config ${SSL_CONFIG}echo -e "\033[32m ====> 6. 生成服务SSL CERT ${SSL_CERT} \033[0m"
openssl x509 -sha256 -req -in ${SSL_CSR} -CA ${CA_CERT} \-CAkey ${CA_KEY} -CAcreateserial -out ${SSL_CERT} \-days ${SSL_DATE} -extensions v3_req \-extfile ${SSL_CONFIG}echo -e "\033[32m ====> 7. 证书制作完成 \033[0m"
echo
echo -e "\033[32m ====> 8. 以YAML格式输出结果 \033[0m"
echo "----------------------------------------------------------"
echo "ca_key: |"
cat $CA_KEY | sed 's/^/  /'
echo
echo "ca_cert: |"
cat $CA_CERT | sed 's/^/  /'
echo
echo "ssl_key: |"
cat $SSL_KEY | sed 's/^/  /'
echo
echo "ssl_csr: |"
cat $SSL_CSR | sed 's/^/  /'
echo
echo "ssl_cert: |"
cat $SSL_CERT | sed 's/^/  /'
echoecho -e "\033[32m ====> 9. 附加CA证书到Cert文件 \033[0m"
cat ${CA_CERT} >> ${SSL_CERT}
echo "ssl_cert: |"
cat $SSL_CERT | sed 's/^/  /'
echoecho -e "\033[32m ====> 10. 重命名服务证书 \033[0m"
echo "cp ${SSL_DOMAIN}.key tls.key"
cp ${SSL_DOMAIN}.key tls.key
echo "cp ${SSL_DOMAIN}.crt tls.crt"
cp ${SSL_DOMAIN}.crt tls.crt

2、执行自签证脚本,(将vip脚本也加入)

sh key-create.sh --ssl-domain=www.rancher.baidutest.com --ssl-trusted-ip=192.168.113.200,192.168.113.231,192.168.113.230,192.168.113.242 --ssl-date=36500 --ssl-size=2048

3、 验证是否成功

openssl verify -CAfile cacerts.pem tls.cr

openssl x509 -in tls.crt -noout -text

4、安装helm

# 安装 helm 
wget https://rancher-mirror.rancher.cn/helm/v3.17.0/helm-v3.17.0-linux-amd64.tar.gz
tar zxvf helm-v3.17.0-linux-amd64.tar.gz -C /hskj/
cp /hskj/linux-amd64/helm /usr/local/bin/ 
# 创建命名空间
kubectl  create namespace cattle-system
# ca证书密文
kubectl -n cattle-system create secret tls tls-rancher-ingress --cert=tls.crt --key=tls.key 
kubectl -n cattle-system create secret generic tls-ca --from-file=cacerts.pem
kubectl -n cattle-system create secret generic tls-ca-additional --from-file=cacerts.pem
# 添加 chat 仓库,推荐添加 stable 稳定版仓库,如果需要固定版本可以去 http://mirror.cnrancher.com/ 上面下载
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
# helm install rancher 
helm install rancher rancher-stable/rancher \
-n cattle-system \
# 使用自签证
--set ingress.tls.source=secret \
# 是否使用自签证
--set privateCA=true \
--set additionalTrustedCAs=true \
--set hostname=rancher.baidutest.com
#商业证书使用如下语句
#helm upgrade rancher rancher-stable/rancher -n cattle-system --set ingress.tls.source=secret --set hostname=rancher.baitest.com
# 验证是否安装成功
helm list -n cattle-system 
# 检查 rancher 服务运行是否正常
kubectl -n cattle-system get pods
# 查看 ingress 地址
kubectl -n cattle-system get ingress  

选择 Rancher 版本 | Rancher

5、使用helm安装traefik

# 使用helm命令行安装它:
helm repo add traefik https://traefik.github.io/charts
helm repo update
kubectl create ns traefik
helm install -n traefik traefik traefik/traefik
kubectl get all  -n  traefik

6、在2台部署了k3s的节点上,安装keepalived

yum install -y keepalived

vi /etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.130.200}
}

systemctl start keepalived

systemctl enable keepalived

7、配置本地hosts,进行访问设置。高可用验证,可随机关闭一台k3s服务器,rancher也可正常访问

---------------------------------------------------问题集----------------------------------------------------------------

1、使用helm安装报错:

helm安装com Error: INSTALLATION FAILED: Kubernetes cluster unreachable: Get "http://localhost:8080/version": dial tcp [::1]:8080: connect: connection refused

如果文件不存在,可能需要重新生成 Kubeconfig 文件。对于 K3s 集群,Kubeconfig 文件通常位于 /etc/rancher/k3s/k3s.yaml。你可以将其复制到 ~/.kube/config 并设置正确的权限:

mkdir -p ~/.kube

sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config

sudo chown $(id -u):$(id -g) ~/.kube/config

2、安装过程中会缺失一些镜像,需要根据实际缺失的进行导入,由于墙的原因,很多镜像都是一言难尽,

 

 

参考链接:k3s安装指定版本以及离线安装(docker)_k3s离线安装-CSDN博客

Rancher Releases Mirror
Rancher On K3s 高可用架构部署 - 尚墨 - 博客园

单机安装Rancher2.8.5-CSDN博客

k3s 手动安装traefik-张良人技术博客

使用外部数据库实现高可用安装 | Rancher文档

使用k3s高可用部署rancher-CSDN博客

 

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

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

相关文章

NLLB 与 ChatGPT 双向优化:探索翻译模型与语言模型在小语种应用的融合策略

作者&#xff1a;来自 vivo 互联网算法团队- Huang Minghui 本文探讨了 NLLB 翻译模型与 ChatGPT 在小语种应用中的双向优化策略。首先介绍了 NLLB-200 的背景、数据、分词器和模型&#xff0c;以及其与 LLM&#xff08;Large Language Model&#xff09;的异同和协同关系。接着…

无人机图像拼接数据的可视化与制图技术:以植被监测为例

无人机技术在生态环境监测中的应用越来越广泛&#xff0c;尤其是在植被监测领域。通过无人机获取的高分辨率影像数据&#xff0c;结合GIS技术&#xff0c;可以实现对植被覆盖、生长状况等的精确监测与分析。本文将通过一个实际案例&#xff0c;详细讲解无人机图像拼接数据的可视…

ONES 功能上新|ONES Copilot、ONES TestCase、ONES Wiki 新功能一览

ONES Copilot 支持基于当前查看的工作项相关信息&#xff0c;利用 AI 模型&#xff0c;在系统中进行相似工作项的查找&#xff0c;包括基于已关联工作项的相似数据查找。 应用场景&#xff1a; 在查看工作项时&#xff0c;可利用 AI 模型&#xff0c;基于语义相似度&#xff0c…

基于带通滤波的camera脏污检测算法可以完全替代imatest

1.概要 脏污检测算法&#xff0c;基于opencv c实现&#xff0c;便于模组厂快速集成到软件工具中&#xff0c;适用于camera模组厂脏污拦截&#xff0c;特别是对浅脏污具备很好的定位效果&#xff1b;便于画质评价工程师了解camera模组制程的问题提出改善方向。 2.技术介绍 下图…

后勤数据源定制主控室

场景&#xff1a;在学习了解后勤数据源过程中&#xff0c;看到觉得有用的note&#xff0c;分享给大家。 1779063 - 常见问题&#xff1a;关于 LO 数据提取 - 定制主控室&#xff08;事务 LBWE&#xff09; 1.问题&#xff1a; 是否需要为每个应用程序组件下的每个数据源添加池…

云原生AI Agent应用安全防护方案最佳实践(上)

当下&#xff0c;AI Agent代理是一种全新的构建动态和复杂业务场景工作流的方式&#xff0c;利用大语言模型&#xff08;LLM&#xff09;作为推理引擎。这些Agent代理应用能够将复杂的自然语言查询任务分解为多个可执行步骤&#xff0c;并结合迭代反馈循环和自省机制&#xff0…

三格电子——TCP转ProfibusDP网关使用场景

型号&#xff1a; SG-TCP-Profibus(M) 感兴趣可以TB 搜 三格电子 使用场景&#xff1a; ModbusTCP Client 通过 ModbusTCP 控制 Profibus DP 接口设备。 ModbusTCP 侧支持03H、04H、10H 功能码&#xff0c;只支持 1 个client连接&#xff1b; ProfibusDP 侧支持 DP v0。 P…

剑指offer第2版:搜索算法(二分/DFS/BFS)

查找本质就是排除的过程&#xff0c;不外乎顺序查找、二分查找、哈希查找、二叉排序树查找、DFS/BFS查找 一、p39-JZ3 找出数组中重复的数字&#xff08;利用特性&#xff09; 数组中重复的数字_牛客题霸_牛客网 方法1&#xff1a;全部排序再进行逐个扫描找重复。 时间复杂…

小众宝藏分子生物学实验中常用的软件:InSequence

欢迎使用InSequence&#xff0c;正版免费使用&#xff0c;操作友好&#xff0c;小白也能轻松上手哦~ 1. 全新中文界面与更大操作空间 全中文简洁直观的操作界面&#xff0c;常用功能固定至工具栏&#xff0c;随心自定义更改工具栏&#xff0c;让科研人员能够更快速地上手&…

南京观海微电子----整流滤波电路实用

01 变压电路 通常直流稳压电源使用电源变压器来改变输入到后级电路的电压。电源变压器由初级绕组、次级绕组和铁芯组成。初级绕组用来输入电源交流电压&#xff0c;次级绕组输出所需要的交流电压。通俗的说&#xff0c;电源变压器是一种电→磁→电转换器件。即初级的交流电转化…

python 的框架 dash 开发TodoList Web 应用

TodoList Web 应用 项目简介 这是一个基于 Dash 和 SQLAlchemy 的现代化 TodoList Web 应用&#xff0c;提供了简单而强大的待办事项管理功能。 主要特性 添加新的待办事项删除待办事项标记待办事项为已完成/未完成分页展示待办事项列表实时更新和交互 技术栈 PythonDash …

tenda路由器WriteFacMac存在远程命令执行漏洞(CVE-2024-10697)

一、漏洞简介 tenda路由器WriteFacMac存在远程命令执行漏洞 二、漏洞影响 tenda路由器三、网络测绘&#xff1a; fofa: title"Tenda | LOGIN"四、复现过程 POC 1 GET /goform/WriteFacMac?macls%20%3E/webroot/1.txt HTTP/1.1 Accept: text/html,application/…

无需编码5分钟免费部署云上调用满血版DeepSeek

大家好&#xff0c;我是 V 哥。如何自己部署DeepSeek调用满血版。首先&#xff0c;如果你遇到了使用公共服务器时的延迟或限制&#xff0c;想要本地部署以获得更好的性能和稳定性。你是不是也想自己来部署DeepSeek呢&#xff0c;其实除了自己部署本地DeepSeek&#xff0c;还可以…

linux笔记3----防火墙(ubuntu)

防火墙管理工具 ubuntu里使用ufw来管理防火墙。ufw是一个管理防火墙规则的前端工具。本文阐述如何开启、关闭防火墙&#xff0c;放行指定端口。 因为我采用putty远程来使用&#xff0c;需要关闭防火墙或者放行22端口。 核心思维 因为ufw只是一个前端工具&#xff0c;所以一开…

【音视频】RTSP拉流: RTP负载AAC详解(三)

此文为系列文章&#xff0c;此系列主要讲解RTSP客户端的拉流及播放&#xff0c;文章持续更新&#xff0c;会从rtsp的基本协议讲起&#xff0c;如何一步步实现音视频的拉流过程&#xff0c;包括一系列涉及到的协议&#xff0c;rtsp&#xff0c;sdp&#xff0c; rtp&#xff08;本…

若依系统环境搭建记录

开源若依系统网上资料也很全的&#xff0c;本篇博文记录下自己搭建环境过程中遇到的一些问题。 配置Maven和编辑器选择 我懒得配置Eclipse了&#xff0c;直接用vscode作为编辑器&#xff0c;后面构建运行都用命令行。 配置数据库连接 按照mysql5.7按网上教程即可&#xff1…

【MySql】应用系统等保测评MySQL服务器相关策略设置以及最终验证,MySQL安全策略设置以及最终验证

文章目录 一、概要二、环境及实现三、前期准备四、操作步骤1、所有的数据库需要设置三权账户&#xff1a;系统管理员、网络管理员和安全管理员创建系统管理员账户&#xff1a;创建网络管理员账户&#xff1a;创建安全管理员账户&#xff1a; 2、所有数据库密码的负责度策略需要…

bootplus管理系统 file/download 任意文件下载漏洞

bootplus管理系统 file/download 任意文件下载漏洞 漏洞描述 bootplus是基于SpringBoot + Shiro + MyBatisPlus的,拥有接口管理,权限管理,监控组件等功能的一体化权限管理框架。该项目中的file/download接口存在任意文件下载漏洞, 攻击者可以通过该漏洞下载查看目标系统的…

《open3d qt 网格采样成点云》

open3d qt 网格采样成点云 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionMeshUniformSample_triggered();//均匀采样 void MainWindow::

部署 DeepSeek R1各个版本所需硬件配置清单

DeepSeek-R1 通过其卓越的推理性能和灵活的训练机制&#xff0c;在 2025 年的春节期间受到了广泛关注。 DeepSeek-R1 是一款高性能的 AI 推理模型&#xff0c;主要通过强化学习技术来增强模型在复杂任务场景下的推理能力。 在本地部署 DeepSeek-R1 时&#xff0c;尤其是完整的…