k8s kubernetes 1.23.6 + flannel公网环境安装
准备环境,必须是同一个云服务厂商,如:华为,阿里、腾讯等,不要存在跨平台安装K8S,跨平台安装需要处理网络隧道才能实现所有节点在一个网络集群中,这里推荐使用同一家云服务厂商安装即可 这里使用centos7进行安装:
必须先开通端口 2380 2379 10250 10257 10259 6443 否则会网络卡死(主节点主机安装即可)
开通安全组端口:
2376/tcp、2379/tcp、2380/tcp、6443/tcp、8472/udp、9099/tcp、10250/tcp、10254/tcp、30000-32767/tcp、udp
1、升级linux内核版本,提高性能:
CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。
在 CentOS 7 上启用 ELRepo 仓库,运行如下命令:
# 导入该源的秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 启用该源仓库 如果失败用下方
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 查看有哪些内核版本可供安装
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
[root@VM-12-2-centos ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrors.elrepo.org/mirrors-elrepo-kernel.el7 error was
12: Timeout on http://mirrors.elrepo.org/mirrors-elrepo-kernel.el7: (28, 'Connection timed out after 30001 milliseconds')* elrepo-kernel: elrepo.org
可安装的软件包
kernel-lt-devel.x86_64 5.4.258-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.258-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.258-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.258-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.258-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.258-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 6.5.7-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 6.5.7-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 6.5.7-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 6.5.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 6.5.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 6.5.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 6.5.7-1.el7.elrepo elrepo-kernel
perf.x86_64 5.4.258-1.el7.elrepo elrepo-kernel
python-perf.x86_64 5.4.258-1.el7.elrepo elrepo-kernel
选择版本安装,推荐使用 安装的长期稳定版本
# 安装的是主线版本,该版本比较激进,慎重选择
yum --enablerepo=elrepo-kernel install kernel-ml -y
# 安装的长期稳定版本,稳定可靠
yum --enablerepo=elrepo-kernel install kernel-lt -y
设置 GRUB 默认升级的内核版本
vi /etc/default/grubGRUB_TIMEOUT=0 #设置为0
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0 #这里的saved改为0即可,重启后,默认就是你上次所选的版本了。
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
执行命令让配置生效:
# 配置项生效
grub2-mkconfig -o /boot/grub2/grub.cfg
# 重启主机
reboot
测试是否升级完成
uname -r
调整系统临时区 — 如果已经设置时区,所有机器都要配置
1)设置系统时区为中国/上海
timedatectl set-timezone Asia/Shanghai
2)将当前的 UTC 时间写入硬件时钟
timedatectl set-local-rtc 0
3)重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
安装必要依赖
yum update
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree bridge-utils unzip bind-utils gcc
关闭firewalld和selinux(在k8s集群master和node上都进行操作)
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux防火墙
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
getenforce
关闭交换分区
swapoff -a
cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab
修改内核参数 网络转发
cat <<EOF >> /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF
sysctl -p 让参数生效到内核里面
sysctl -p
可能出现异常
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: 没有那个文件或目录
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: 没有那个文件或目录
解决 加载相关模块:
modprobe br_netfilter
再执行使其生效
sysctl -p
安装docker
#卸载podman软件(可以使用rpm -qa|grep docker)
yum remove docker
#下载docker-ce源(国外可使用阿里源)
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# 直接使用阿里deocker-ce源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
注意k8s同docker有版本对应:以下版本匹配
docker官网指定版本安装格式
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
# 指定docker版本 20.10.12 这里安装k8s 1.23.6
yum install docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io docker-compose-plugin
配置docker这里使用阿里镜像源,拉取镜像快
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://yxt.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# 配置生效
systemctl daemon-reload
# 重启docker
systemctl restart docker
公网环境安装,k8s需要构建内部的局域网环境,可以使用配置主机虚拟网卡实现
#注意替换你的公网IP进去 IPADDR=公网IP
cat > /etc/sysconfig/network-scripts/ifcfg-eth0:1 <<EOF
NAME=eth0:1
DEVICE=eth0:1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=1.2.3.4
EOF
或者直接使用ifconfig配置
ifconfig eth0:1 1.2.3.4 netmask 255.255.255.0 promisc
使用ifconfig查询网卡是否生效,如没有生效可以重新网卡
systemctl restart network.service
systemctl restart network
安装kubadm,kubctl,kublet软件 添加kubernetes yum软件阿里镜像源
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
安装kubeadm,kubelet,kubectl,并且指定版本,因为1.23的版本默认运行时环境不是docker了
yum install -y kubeadm-1.23.6 kubelet-1.23.6 kubectl-1.23.6
公网环境安装完成后修改kubelet将公网IP配置
vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# 在末尾添加参数 --node-ip=node节点的公网IP --node-ip=1.2.3.4
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS --node-ip=1.2.3.4
# 让配置生效
systemctl daemon-reload#启动 kubelet / 重启 kubelet
systemctl enable kubelet && systemctl start kubelet
#systemctl restart kubelet
安装完成后这里必须先加载k8s初始化数据(重要):
kubelet :运行在cluster,负责启动pod管理容器
kubeadm :k8s快速构建工具,用于初始化cluster
kubectl :k8s命令工具,部署和管理应用,维护组件
# 查看是否都正常安装成功
kubelet --version
kubectl version
kubeadm version
启动kube
systemctl daemon-reload
systemctl enable kubelet && systemctl start kubelet
安装完之后主节点需要往下配置,而子节点部需要再往下执行配置
以下是主节点配置
拉取init-config配置 并修改配置 init-config 主要是由 api server、etcd、scheduler、controller-manager、coredns等镜像构成
mkdir k8s-config
cd ./k8s-config
kubeadm config print init-defaults > init-config.yaml
配置初始化脚本init-config.yaml
修改 master节点ip localAPIEndpoint > advertiseAddress 公网IP
advertiseAddress: 1.2.3.4.5
修改master主机名 nodeRegistration > name
name: k8s-master
修改镜像仓库
imageRepository: registry.aliyuncs.com/google_containers
增加网卡 这里使用flannel网络插件需要保持flannel网卡配置
podSubnet: 10.244.0.0/16
完成修改
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 101.34.112.190 # 指定master节点的IP地址(公网)
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
imagePullPolicy: IfNotPresent
name: master01 # 改成master的主机名
taints: null
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers # 默认为k8s.gcr.io,但是网络不通,所以要替换为阿里云镜像
kind: ClusterConfiguration
kubernetesVersion: 1.23.6 # 指定kubernetes版本号,使用kubeadm config print init-defaults生成的即可
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12
podSubnet: 10.244.0.0/16 # 指定pod网段,10.244.0.0/16用于匹配flannel默认网段
scheduler: {}
# 启动k8s服务,等等dockers自动拉取镜像
kubeadm init --config=init-config.yaml
正常启动 记录好生成token 和 sha256,字节点加入主节点命令
kubeadm join 101.34.112.190:6443 --token d1lqeo.7nksmtc43cq74ma3 --discovery-token-ca-cert-hash sha256:eba86afe4c9e50f6ede0880bd2b74ff340e5319f7eb4517ffc6b8101c9fea6b8
主节点重新获取加入命令
kubeadm token create --print-join-command --ttl 0
# 完成初始化的新建文件和目录的操作,在master上完成
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
配置网络 使用flannl
# 拉取脚本
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
公网环境配置kube-flannel.yml
# 篇幅较长只提供必要修改点
containers:
- name: kube-flannel
image: docker.io/flannel/flannel:v0.22.3
command:
- /opt/bin/flanneld
args:
- --public-ip=$(PUBLIC_IP) # 启用公网IP
- --iface=eth0 # 启用eth0上面已经配置虚拟的一张公网网卡
- --ip-masq
- --kube-subnet-mgr
resources:requests:cpu: "100m"memory: "50Mi"
securityContext:privileged: falsecapabilities:add: ["NET_ADMIN", "NET_RAW"]
env:
- name: PUBLIC_IP # 配置公网IP环境变量valueFrom:fieldRef:fieldPath: status.podIP
- name: POD_NAME
将配置文件kube-flannel.yml启用
kubectl apply -f kube-flannel.yml
等待k8s依赖镜像拉取和容器启动即可
子节点使用:
kubeadm join [主节点ip]:6443 --token [主节点启动后生成] --discovery-token-ca-cert-hash sha256:[主节点启动后生成]
加入到主节点中。
查看pod执行情况
kubectl get pod -A

如果coredns-*一直处于非 Running状态时候直接删除coredns-*的pod,kubectl重新建立即可
查看各个节点接入情况Ready-正常接入完成
kubectl get nodes

公网环境搭建关键点:
k8s集群是建立在一个互通的内网(局域网)中,需要flannel网络插件实现内网IP和公网IP的自动转换并流入指定的主机,各个节点保证集群内部IP互通。
简单部署nginx验证各个节点内网IP是否能正常通信
kubectl create deployment nginx --image=ginx:latest --port=80 --replicas=3
查看部署nginx pod实列情况
kubectl get pods -A -o wide

ping各个节点集群内部IP数据包部丢失则公网环境搭建成功。
如果安装失败需要卸载重装执行:
sudo kubeadm reset -f
yum -y remove kubelet kubeadm kubectl
sudo rm -rvf $HOME/.kube
sudo rm -rvf ~/.kube/
sudo rm -rvf /etc/kubernetes/
sudo rm -rvf /etc/systemd/system/kubelet.service.d
sudo rm -rvf /etc/systemd/system/kubelet.service
sudo rm -rvf /usr/bin/kube*
sudo rm -rvf /etc/cni
sudo rm -rvf /opt/cni
sudo rm -rvf /var/lib/etcd
sudo rm -rvf /var/etcd
再重新安装即可
相关文章:
k8s kubernetes 1.23.6 + flannel公网环境安装
准备环境,必须是同一个云服务厂商,如:华为,阿里、腾讯等,不要存在跨平台安装K8S,跨平台安装需要处理网络隧道才能实现所有节点在一个网络集群中,这里推荐使用同一家云服务厂商安装即可 这里使用…...
博客系统中的加盐算法
目录 一、为什么要对密码进行加盐加密? 1、明文 2、传统的 MD5 二、加盐加密 1、加盐算法实现思路 2、加盐算法解密思路 3、加盐算法代码实现 三、使用 Spring Security 加盐 1、引入 Spring Security 框架 2、排除 Spring Security 的自动加载 3、调用 S…...
同花顺动态Cookie反爬JS逆向分析
文章目录 1. 写在前面2. 请求分析3. Hook Cookie4. 补环境 1. 写在前面 最近有位朋友在大A失意,突发奇想自己闲来无事想要做一个小工具,监测一下市场行情的数据。自己再分析分析,虽是一名程序员但苦于对爬虫领域相关的技术不是特别熟悉。最后…...
异步加载JS的方法
异步加载 JavaScript (JS) 文件是提高网页性能的一种常用技术,这样可以使页面在等待 JS 文件加载和执行时不会阻塞。以下是一些异步加载 JS 的方法: 使用 <script> 标签的 async 属性 通过将 <script> 标签的 async 属性设为 true…...
IO/NIO交互模拟及渐进式实现
IO IO Server public class SocketServer {public static void main(String[] args) {//server编号和client编号对应,优缺点注释在server端//server1();//server2();server3();}/*** server1的缺点:* 1、accept()方法阻塞了线程,要等客户端…...
springboot+html实现密码重置功能
目录 登录注册: 前端: chnangePssword.html 后端: controller: Mapper层: 逻辑: 登录注册: https://blog.csdn.net/m0_67930426/article/details/133849132 前端: 通过点击忘记密码跳转…...
LeetCode 2525. 根据规则将箱子分类【模拟】1301
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
atcoder [Road of the King] 题解(DP好题)
题面 简要题意:有一个 n n n 个点的图,目前一条边都没有。有一个人在 1 1 1 号点要进行 m m m 次移动, 终点不必是 1 1 1 号点。加入第 i i i 次的从 u u u 移动到了 v v v, 那么 u u u 到 v v v 之间出现一条有向边。问…...
CImageList 图像列表
一、CImageList类Create函数参数解析 BOOL Create(int cx,int cy,UINT nFlags,int nInitial,int nGrow ); 1.1) cx,cy:图片的实际像素宽与高; nFlags:创建图像列表的类型,包括4/8/16/24/32/位色; nFlags确定建立图…...
【OpenGL】四、坐标系统和摄像机
坐标转换 文章目录 坐标转换坐标系统的转换局部空间(Local Space)->世界空间(World Space)世界空间(World Space)->观察空间(View Space/View Space)裁剪空间(Clip Space)MVP矩阵 坐标系统的转换 了解坐标系统和空间变换之前需要先了解…...
使用vcpkg管理依赖第三库
文章目录 使用vcpkg管理依赖第三库vcpkg安装vcpkg经典模式使用从仓库列表搜索依赖项从某个基线版本的列表中查询某个依赖项信息安装依赖库 vcpkg清单模式的使用vcpkg清单模式的使用例子说明 使用vcpkg管理依赖第三库 vcpkg 有两种操作模式:经典模式和清单模式。 在…...
Android渲染一个列表的过程,并提供动态改变样式
1、index.xml 布局文件,我省略了其他代码,我们需要recyclerview保证在规定范围内,如果列表元素过多可以滑动 <LinearLayoutandroid:layout_width"match_parent"android:layout_height"match_parent"android:layout_…...
Leetcode—260.只出现一次的数字III【中等】
2023每日刷题(三) Leetcode—260.只出现一次的数字III 借助lowbit的解题思想 参考的灵茶山艾府大神的题解 实现代码 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* singleNumber(int* nums, int numsSize, in…...
Mysql 约束,基本查询,复合查询与函数
文章目录 约束空属性约束默认值约束zerofill主键约束自增长约束唯一键约束外键约束 查询select的执行顺序单表查询排序 updatedelete整张表的拷贝复合语句group by分组查询 函数日期函数字符串函数数学函数其他函数 复合查询合并查询union 约束 空属性约束 两个值:…...
web前端基础CSS------美化页面“footer”部分
一,实验代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>关于我们</title><style type"text/css">#footer{margin: 10px 0px;background: #f5f5f5;border: top 1px solid #eee ;}#f…...
在中国,技术到底有多有用?
🙌秋名山码民的主页 😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 获取源码,添加WX 目录 前言1.…...
《动手学深度学习 Pytorch版》 9.2 长短期记忆网络(LSTM)
解决隐变量模型长期信息保存和短期输入缺失问题的最早方法之一是长短期存储器(long short-term memory,LSTM)。它与门控循环单元有许多一样的属性。长短期记忆网络的设计比门控循环单元稍微复杂一些,却比门控循环单元早诞生了近 2…...
计算机操作系统-第十一天
目录 1、进程的状态 创建态与就绪态 运行态 终止态 新建态 结束态 进程状态的转换 进程的组织方式 链接方式(常见) 索引方式(少见) 本节思维导图 1、进程的状态 创建态与就绪态 1、进程正在被创建时,处于…...
Flutter视图原理之StatefulWidget,InheritedWidget
目录 StatefulElement1. 构造函数2. build3. _firstBuild3. didChangeDependencies4. setState InheritedElement1. Element类2. _updateInheritance3. InheritedWidget数据向下传递3.1 dependOnInheritedWidgetOfExactType 4. InheritedWidget的状态绑定4.1. ProxyElement 在f…...
观察者模式-对象间的联动
有个商城小程序,用户希望当有新品上市的时候能通知他们。这样用户就可以不要时刻盯着小程序了。在这个场景中,用户向小程序订阅了一个服务——发送新品短信。小程序在有新品上线时负责向订阅客户发出这个消息。 这就是发布-订阅模式,也称观察…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
