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

[云原生案例2.4 ] Kubernetes的部署安装 【通过Kubeadm部署Kubernetes高可用集群】

文章目录

  • 1. 基本架构及前置准备
    • 1.1 基本架构
    • 1.2 前置准备
  • 2. 系统初始化操作 ---- 所有节点
    • 2.1 关闭防火墙、selinux和swap分区
      • 2.1.1 关闭防火墙和selinux
      • 2.1.2 关闭交换分区
    • 2.2 修改主机名,添加域名映射
      • 2.2.1 修改主机名
      • 2.2.2 修改本地hosts文件
    • 2.3 内核升级
    • 2.4 调整内核参数
    • 2.5 所有节点实现Linux的资源限制
    • 2.6 加载ip_vs模块
    • 2.7 时间同步
    • 2.8 内核升级(可选项)
  • 3. 部署Docker
    • 3.1 通过yum安装docker ---- 所有节点
    • 3.2 修改相关配置并启动docker
  • 4. 部署Kurbernetes的相关工具
    • 4.1 安装kubeadm,kubelet和kubectl ---- 所有节点
  • 5. 高可用组件安装、配置
    • 5.1 部署 Haproxy ---- 所有 master 节点
    • 5.2 部署Keepalived ---- 所有 master 节点
    • 5.3 编写状态监控脚本,启动haproxy和keepalived
  • 6. 部署Kurbernetes集群
    • 6.1 设置集群初始化配置文件 ---- master01 节点
    • 6.2 所有节点拉取镜像
    • 6.3 master01 节点进行初始化
    • 6.4 环境配置 ---- master01节点
    • 6.5 部署网络插件flannel
    • 6.6 所有节点加入集群
      • 6.6.1 master节点加入集群
      • 6.6.1 node 节点加入集群
    • 6.7 查看当前集群信息

1. 基本架构及前置准备

1.1 基本架构

在这里插入图片描述

1.2 前置准备

Master01	192.168.67.100	
Master02	192.168.67.101	
Master03	192.168.67.102	Node01	192.168.67.103	
Node02	192.168.67.104	Harbor	192.168.67.105
注意事项:
- master节点cpu核心数要求大于2
- 最新的版本不一定好,但相对于旧版本,核心功能稳定,但新增功能、接口相对不稳
- 学会一个版本的 高可用部署,其他版本操作都差不多
- 宿主机尽量升级到CentOS 7.9
- 内核kernel升级到 4.19+ 这种稳定的内核
- 部署k8s版本时,尽量找 1.xx.5 这种大于5的小版本(这种一般是比较稳定的版本)

2. 系统初始化操作 ---- 所有节点

2.1 关闭防火墙、selinux和swap分区

2.1.1 关闭防火墙和selinux

#关闭防火墙
systemctl disable firewalld --now#关闭selinux 
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/configiptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

2.1.2 关闭交换分区

#交换分区必须要关闭。#K8s的各个组件和容器都需要足够的内存来运行,而Swap的使用可能导致性能下降,甚至是应用程序的奔溃。#关闭Swap可以确保集群的可预测性和稳定性,避免不必要的磁盘交换。swapoff -a						
sed -ri 's/.*swap.*/#&/' /etc/fstab		
#永久关闭swap分区,&符号在sed命令中代表上次匹配的结果

2.2 修改主机名,添加域名映射

2.2.1 修改主机名

hostnamectl set-hostname master01
hostnamectl set-hostname master02
hostnamectl set-hostname master03
hostnamectl set-hostname node01
hostnamectl set-hostname node02

2.2.2 修改本地hosts文件

vim /etc/hosts
192.168.67.100 master01
192.168.67.101 master02
192.168.67.102 master03
192.168.67.103 node01
192.168.67.104 node02

2.3 内核升级

wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpm -O /opt/kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpmwget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm -O /opt/kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpmcd /opt/
yum localinstall -y kernel-ml*#更改内核启动方式
grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
grubby --default-kernelreboot

2.4 调整内核参数

cat > /etc/sysctl.d/k8s.conf <<EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
fs.may_detach_mounts = 1
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_watches=89100
fs.file-max=52706963
fs.nr_open=52706963
net.netfilter.nf_conntrack_max=2310720net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 327680
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.ip_conntrack_max = 65536
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_timestamps = 0
net.core.somaxconn = 16384
EOF#生效参数
sysctl --system  

在这里插入图片描述

2.5 所有节点实现Linux的资源限制

vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 65535
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited

在这里插入图片描述

2.6 加载ip_vs模块

#加载 ip_vs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

在这里插入图片描述

2.7 时间同步

#通过ntp
yum -y install ntpdateln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#修改时区
echo 'Asia/Shanghai' >/etc/timezone#时间同步
ntpdate time2.aliyun.com

在这里插入图片描述

systemctl enable --now crondcrontab -e
*/30 * * * * /usr/sbin/ntpdate time2.aliyun.com

2.8 内核升级(可选项)

wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpm -O /opt/kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm -O /opt/kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpmcd /opt/
yum localinstall -y kernel-ml*#更改内核启动方式
grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
grubby --default-kernel
reboot

3. 部署Docker

3.1 通过yum安装docker ---- 所有节点

yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io

在这里插入图片描述

3.2 修改相关配置并启动docker

配置镜像加速,修改默认Cgroupdriver,修改日志存储格式

  1. 使用Systemd管理的Cgroup来进行资源控制与管理,因为相对Cgroupfs而言,Systemd限制CPU、内存等资源更加简单和成熟稳定。

  2. 日志使用json-file格式类型存储,大小为100M,保存在/var/log/containers目录下,方便ELK等日志系统收集和管理日志

cat > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://k2anw3oh.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "500m", "max-file": "3"}
}
EOF

在这里插入图片描述

systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service --now
docker info | grep "Cgroup Driver"

在这里插入图片描述

4. 部署Kurbernetes的相关工具

4.1 安装kubeadm,kubelet和kubectl ---- 所有节点

#定义kubernetes源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF#安装
yum install -y kubelet-1.20.15 kubeadm-1.20.15 kubectl-1.20.15

在这里插入图片描述

#配置Kubelet使用阿里云的pause镜像
cat > /etc/sysconfig/kubelet <<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2"
EOF#开机自启kubelet
systemctl enable kubelet.service --now
#K8S通过kubeadm安装出来以后都是以Pod方式存在,即底层是以容器方式运行,所以kubelet必须设置开机自启

5. 高可用组件安装、配置

5.1 部署 Haproxy ---- 所有 master 节点

#yum安装haproxy
yum -y install haproxy

在这里插入图片描述

#修改配置文件
cat > /etc/haproxy/haproxy.cfg << EOF
globallog         127.0.0.1 local0 infolog         127.0.0.1 local1 warningchroot      /var/lib/haproxypidfile     /var/run/haproxy.pidmaxconn     4000user        haproxygroup       haproxydaemonstats socket /var/lib/haproxy/statsdefaultsmode                    tcplog                     globaloption                  tcplogoption                  dontlognulloption                  redispatchretries                 3timeout queue           1mtimeout connect         10stimeout client          1mtimeout server          1mtimeout check           10smaxconn                 3000frontend monitor-inbind *:33305mode httpoption httplogmonitor-uri /monitorfrontend k8s-masterbind *:6444mode tcpoption tcplogdefault_backend k8s-masterbackend k8s-mastermode tcpoption tcplogoption tcp-checkbalance roundrobinserver k8s-master1 192.168.67.100:6443  check inter 10000 fall 2 rise 2 weight 1server k8s-master2 192.168.67.101:6443  check inter 10000 fall 2 rise 2 weight 1server k8s-master3 192.168.67.102:6443  check inter 10000 fall 2 rise 2 weight 1
EOF

在这里插入图片描述

5.2 部署Keepalived ---- 所有 master 节点

yum -y install keepalived

在这里插入图片描述

cd /etc/keepalived/
vim keepalived.conf
! Configuration File for keepalived
global_defs {router_id LVS_HA1			#路由标识符,每个节点配置不同
}vrrp_script chk_haproxy {script "/etc/keepalived/check_haproxy.sh"interval 2weight 2
}vrrp_instance VI_1 {state MASTER				#本机实例状态,MASTER/BACKUP,备机配置文件中设置BACKUPinterface ens33virtual_router_id 51priority 100				#本机初始权重,备机设置小于主机的值advert_int 1virtual_ipaddress {192.168.67.200          #设置VIP地址}track_script {chk_haproxy}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 编写状态监控脚本,启动haproxy和keepalived

vim /etc/keepalived/check_haproxy.sh
#!/bin/bash
if ! killall -0 haproxy; thensystemctl stop keepalived
fi
systemctl enable --now haproxy
systemctl enable --now keepalived

在这里插入图片描述

#观察VIP漂移情况
ip a

在这里插入图片描述

6. 部署Kurbernetes集群

6.1 设置集群初始化配置文件 ---- master01 节点

#生成配置模板,包含默认的 Kubernetes 集群配置
kubeadm config print init-defaults > /opt/kubeadm-config.yaml
cd /opt/
#修改配置文件
vim kubeadm-config.yaml
......
11 localAPIEndpoint:
12   advertiseAddress: 192.168.67.100		#指定当前master节点的IP地址
13   bindPort: 644321 apiServer:
22   certSANs:								#在apiServer属性下面添加一个certsSANs的列表,添加所有master节点的IP地址和集群VIP地址
23   - 192.168.67.200
24   - 192.168.67.100
25   - 192.168.67.101
26   - 192.168.67.10230 clusterName: kubernetes
31 controlPlaneEndpoint: "192.168.67.200:6444"		#指定集群VIP地址
32 controllerManager: {}38 imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers			#指定镜像下载地址
39 kind: ClusterConfiguration
40 kubernetesVersion: v1.20.15				#指定kubernetes版本号
41 networking:
42   dnsDomain: cluster.local
43   podSubnet: "10.244.0.0/16"				#指定pod网段,10.244.0.0/16用于匹配flannel默认网段,指定service网段
44   serviceSubnet: 10.96.0.0/16			#指定service网段
45 scheduler: {}
#末尾再添加以下内容
--- 
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs									#把默认的kube-proxy调度方式改为ipvs模式#尽量手打不要拷贝

在这里插入图片描述

#更新集群初始化配置文件
kubeadm config migrate --old-config kubeadm-config.yaml --new-config new.yaml

在这里插入图片描述

6.2 所有节点拉取镜像

#查看初始化需要的镜像
kubeadm config images list --kubernetes-version 1.25.4

在这里插入图片描述

#拷贝yaml配置文件给其他主机,通过配置文件进行拉取镜像
for i in master02 master03 node01 node02; do scp /opt/new.yaml $i:/opt/; done

在这里插入图片描述

kubeadm config images pull --config /opt/new.yaml
#进行拉取镜像

在这里插入图片描述

6.3 master01 节点进行初始化

kubeadm init --config new.yaml --upload-certs | tee kubeadm-init.log
#会初始化一个 Kubernetes 集群并生成相应的证书和密钥,并将相关信息保存在指定的配置文件中

在这里插入图片描述

#若初始化失败,进行的操作
kubeadm reset -f
ipvsadm --clear 
rm -rf ~/.kube
再次进行初始化

6.4 环境配置 ---- master01节点

#配置 kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
#修改controller-manager和scheduler配置文件
vim /etc/kubernetes/manifests/kube-scheduler.yaml 
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
......#- --port=0					#搜索port=0,把这一行注释掉

在这里插入图片描述
在这里插入图片描述

systemctl restart kubelet

6.5 部署网络插件flannel

所有节点上传 flannel 镜像 flannel.tar 和网络插件 cni-plugins-linux-amd64-v1.3.0.tgz 到 /opt 目录

cd /opt
docker load < flannel.tar

在这里插入图片描述

mv /opt/cni /opt/cni_bak
mkdir -p /opt/cni/bin
tar zxvf cni-plugins-linux-amd64-v1.3.0.tgz -C /opt/cni/bin

在这里插入图片描述

#master节点上传 kube-flannel.yml 文件
kubectl apply -f kube-flannel.yml 

在这里插入图片描述

6.6 所有节点加入集群

6.6.1 master节点加入集群

kubeadm join 192.168.67.200:6444 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:0edd4bc85bc4ff92c543fe317cc09f072527daa9e35e328fd01a07af3bdd4ca1 \--control-plane --certificate-key e27514724dd576114513144779d7c23c0ebe5e1ae91d93528838afc4d1511ec6mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

在这里插入图片描述
在这里插入图片描述

6.6.1 node 节点加入集群

kubeadm join 192.168.67.200:6444 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:0edd4bc85bc4ff92c543fe317cc09f072527daa9e35e328fd01a07af3bdd4ca1

在这里插入图片描述
在这里插入图片描述

6.7 查看当前集群信息

kubectl get nodes

在这里插入图片描述

kubectl get pod -n kube-system 
#返回所有运行 kube-system 命名空间中的 pod 的列表,以及每个 pod 的状态、运行时间和 IP 地址等信息
#kube-system 命名空间是用于存储 Kubernetes 系统组件和插件的命名空间
#查看这些组件和插件的状态和健康信息

在这里插入图片描述

相关文章:

[云原生案例2.4 ] Kubernetes的部署安装 【通过Kubeadm部署Kubernetes高可用集群】

文章目录 1. 基本架构及前置准备1.1 基本架构1.2 前置准备 2. 系统初始化操作 ---- 所有节点2.1 关闭防火墙、selinux和swap分区2.1.1 关闭防火墙和selinux2.1.2 关闭交换分区 2.2 修改主机名&#xff0c;添加域名映射2.2.1 修改主机名2.2.2 修改本地hosts文件 2.3 内核升级2.4…...

PP-ChatOCRv2、PP-TSv2、大模型半监督学习工具...PaddleX新特性等你来pick!

小A是一名刚刚毕业的算法工程师&#xff0c;有一天&#xff0c;他被老板安排了一个活&#xff0c;要对一批合同扫描件进行自动化信息抽取&#xff0c;输出结构化的分析报表。OCR问题不大&#xff0c;但是怎么进行批量的结构化信息抽取呢&#xff1f;小A陷入了苦苦思索… 小B是…...

HarmonyOS 学习记录

时光荏苒,岁月如梭,韶华不负,未来可期。转眼间已经30岁了&#xff0c;学习的重要性不言而喻&#xff0c;在接下来的日子里记录下自己学习HarmonyOS的过程。增加一下知识储备&#xff0c;防患于未然嘛 不得不说华为的开发文档写的不错&#xff0c;开发工具直接安装后自动配置环境…...

阿里云 业务集群的冗余、备份、监控方案

1. 请解释什么是业务集群的冗余、备份和监控&#xff1f; 一、冗余方案 硬件冗余&#xff1a;在业务集群中&#xff0c;关键设备如服务器、存储设备等应采用双机热备或集群技术&#xff0c;确保在某台设备出现故障时&#xff0c;其他设备能够自动接管工作&#xff0c;保证业务…...

无人驾驶的未来 后疫情时代如何抵达

作者 | 马冀&#xff0c;澳鹏&#xff08;Appen&#xff09;中国区副总裁 自动驾驶—疫情危难中显身手 2020年&#xff0c;一场突如其来的新冠肺炎肆虐全球, 导致不同国家的人们被迫隔离或保持社交距离&#xff0c;人与人之间的接触变得风险极高。一时间&#xff0c;人们对于…...

(论文阅读31/100)Stacked hourglass networks for human pose estimation

31.文献阅读笔记 简介 题目 Stacked hourglass networks for human pose estimation 作者 Alejandro Newell, Kaiyu Yang, and Jia Deng, ECCV, 2016. 原文链接 https://arxiv.org/pdf/1603.06937.pdf 关键词 Human Pose Estimation 研究问题 CNN运用于Human Pose E…...

【第2章 Node.js基础】2.6 Node.js 的Buffer数据类型

Buffer数据类型 文章目录 Buffer数据类型什么是Buffer数据类型Buffer 的特点 创建Buffer实例Buffer用于编码转换将Buffer 实例转换为JSON 对象Buffer实例基本操作1. 写入Buffer实例&#xff1a;2. 从Buffer实例读取数据&#xff1a;3. Buffer实例合并&#xff1a; 4. Buffer实例…...

reactive和effect,依赖收集触发依赖

通过上一篇文章已经初始化项目&#xff0c;集成了ts和jest。本篇实现Vue3中响应式模块里的reactive方法。 前置知识要求 如果你熟练掌握Map, Set, Proxy, Reflect&#xff0c;可直接跳过这部分。 Map Map是一种用于存储键值对的集合&#xff0c;并且能够记住键的原始插入顺…...

【C#学习】backgroundWorker控件

BackgroundWorker 控件的几个实例&#xff08;C# backgroundworker使用方法&#xff09;&#xff1a; 在 WinForms 中&#xff0c;有时要执行耗时的操作&#xff0c;在该操作未完成之前操作用户界面&#xff0c;会导致用户界面停止响应。 解决的方法就是新开一个线程&#xff…...

Istio学习笔记-部署模型

参考&#xff1a;Istioldie 1.18 / 部署模型 当您将 Istio 用于生产环境部署时&#xff0c;需要确定一系列的问题。 网格将被限制在单个集群中还是分布在多个集群中&#xff1f; 是将所有服务都放置在单个完全连接的网络中&#xff0c;还是需要网关来跨多个网络连接服务&#…...

磁盘调度算法

磁盘调度算法是计算机操作系统中用于管理磁盘上的数据访问的重要组成部分。这些算法有助于优化数据的读写操作&#xff0c;以减少磁盘访问时间&#xff0c;提高系统性能。以下是一些常见的磁盘调度算法&#xff1a; 先来先服务&#xff08;FCFS&#xff0c;First-Come-First-Se…...

力扣题库2. 两数相加

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 开…...

【Linux】第十六站:进程地址空间

文章目录 一、程序地址空间1.内存的分布2.static修饰后为什么不会被释放3.一个奇怪的现象 二、进程地址空间1.前面现象的原因2.地址空间究竟是什么&#xff1f;3.为什么要有进程地址空间4.页表5.什么叫进程&#xff1f;6.进程具有独立性。为什么&#xff1f;怎么做到呢&#xf…...

基于Springboot的影城管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的影城管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 项目介绍…...

如何在面试中胜出?接口自动化面试题安排上

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…...

联邦学习研究综述笔记

联邦学习 联邦学习的定义&#xff1a;联邦学习是一种分布式机器学习架构&#xff0c;包含多个客户端&#xff08;参与者&#xff09;和一个聚合服务器。客服端&#xff08;参与方&#xff09;&#xff1a;在本地使用自己的私有数据训练模型&#xff0c;训练完成之后将模型的参…...

RedisTemplate乱码问题

其实这是在解决一个项目问题是发现的&#xff0c;因为原开发者的大意&#xff0c;造成了系统出现严重的逻辑问题。 因为系统系统采用分模块开发&#xff0c;某模块使用Spring提供的RedisTemplate进行值的读写&#xff0c;另一位使用了框架基于Jedis的一套公用方法进行值的读写…...

Java用户和内核交互图

...

2023.11.14使用bootstrap制作一个简洁的前端注册登录页

2023.11.14使用bootstrap制作一个简洁的前端注册登录页 比较简洁的登录页&#xff0c;主要是为自己开发的一些平台页面做测试用&#xff0c;前端具备功能如下&#xff1a; &#xff08;1&#xff09;输入用户名、密码&#xff0c;需补充后端验证代码。 &#xff08;2&#xff…...

Avatar虚拟形象解决方案,趣味化的视频拍摄与直播新体验

企业们正在寻找新的方式来吸引和保持观众的注意力,一种新兴的解决方案就是使用Avatar虚拟形象技术&#xff0c;这种技术可以让用户在视频拍摄或直播场景中&#xff0c;以自定义的数字人形象出现&#xff0c;同时保持所有的表情和脸部驱动。美摄科技正是这个领域的领军者&#x…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...