k8s 集群搭建详细教程
参考: Kubernetes 文档 / 入门 / 生产环境 / 使用部署工具安装 Kubernetes / 使用 kubeadm 引导集群 / 安装 kubeadm
B. 准备开始
- 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令
- 每台机器
2 GB
或更多的 RAM (如果少于这个数字将会影响你应用的运行内存) 2 CPU 核
或更多- 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
- 节点之中
不可以有重复的
主机名、MAC 地址或 product_uuid。请参见这里了解更多详细信息。 - 开启机器上的某些端口。请参见这里 了解更多详细信息。
- 禁用交换分区。为了保证 kubelet 正常工作,你 必须
禁用交换分区
。
U. 确保每个节点上 MAC 地址和 product_uuid 的唯一性
- 你可以使用命令
ip link
或ifconfig -a
来获取网络接口的 MAC 地址 - 可以使用
sudo cat /sys/class/dmi/id/product_uuid
命令对 product_uuid 校验
一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。 Kubernetes 使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装 失败。
V.
虚拟机
新建… / 创建自定虚拟机 /
Linux /Ubuntu 64位
- 设置过程
ID | 『虚拟机』设置 | 建议配置 | 默认值 | 说明 |
---|---|---|---|---|
1 | 处理器 | - | 2 | 最低要求 |
2 | 内存 | - | 4096 MB | 节约内存 |
3 | 显示器 | 取消复选加速 3D 图形 | 复选 | 节约内存 |
4 | 网络适配器 | - | nat | 需上网 |
5 | 硬盘 | 40 GB | 20 GB | 保证练习容量 |
6 | 选择固件类型 | UEFI | 传统 BIOS | VMware Fusion 支持嵌套虚拟化 |

- 设置结果
ID | Your computer’s name | CPU 核 | RAM | DISK | NIC |
---|---|---|---|---|---|
1 | k8s-master | 4 或更多 | 8 GB或更多 | 40 GB | nat |
2 | k8s-worker1 | 同上 | 2 GB或更多 | 同上 | 同上 |
3 | k8s-worker2 | 同上 | 同上 | 同上 | 同上 |
I. 安装 Ubuntu 22.04 LTS
- Willkommen! Bienvenue! Welcome! Welkom!
[
English
]
- Installer update available
[
Continue without updating
]
- Keyboard configuration
[
Done
]
- Choose type of install
(
X
) Ubuntu Server (minimized)
/ [Done
]
- Network connections
[
Done
]
- Configure proxy
[
Done
]
- Configure Ubuntu archive mirror
Mirror address: http://mirror.nju.edu.cn/ubuntu
/ [Done
]
- Guided storage configuration
[
Done
] - Storage configuration
[
Done
]
- Profile setup
Your name:
kiosk
Your server 's name:k8s-master
Pick a username:kiosk
Choose a password:ubuntu
Confirm your password:ubuntu
/ [Done
] - SSH Setup
[
X
] Install OpenSSH server
/ [Done
]
- Featured Server Snaps
[
Done
]
- Install complete!
🅰️ [
Cancel update and reboot
]🅱️ [
Reboot Now
] -
建议(可选)
关机后,做个快照
P. 准备工作
[kiosk@k8s-master|k8s-worker1|k8s-worker2]$
-
设置当前用户sudo免密
sudo tee /etc/sudoers.d/$USER >/dev/null <<EOF $USER ALL=(ALL) NOPASSWD:ALL EOF
-
使用国内镜像仓库
# 国内镜像仓库 MIRROR_URL=http://mirror.nju.edu.cn/ubuntu# 生成软件仓库源 sudo tee /etc/apt/sources.list >/dev/null <<EOF deb $MIRROR_URL jammy main restricted universe multiverse deb $MIRROR_URL jammy-updates main restricted universe multiverse deb $MIRROR_URL jammy-backports main restricted universe multiverse deb $MIRROR_URL jammy-security main restricted universe multiverse EOF
-
安装相关软件
# 更新 sudo apt -y update# 安装 sudo apt install -y openssh-server \vim sshpass nfs-common \bash-completion netcat-openbsd \open-vm-tools
[kiosk@k8s-master]$
-
设置静态IP
# 配置IP sudo tee /etc/netplan/00-installer-config.yaml >/dev/null <<EOF network:ethernets:ens33:dhcp4: falseaddresses: [192.168.147.128/24]gateway4: 192.168.147.2nameservers:addresses: [8.8.8.8]version: 2 EOF# dns sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf# active sudo netplan apply
[kiosk@k8s-worker1]$
-
设置静态IP
# 配置IP sudo tee /etc/netplan/00-installer-config.yaml >/dev/null <<EOF network:ethernets:ens33:dhcp4: falseaddresses: [192.168.147.129/24]gateway4: 192.168.147.2nameservers:addresses: [8.8.8.8]version: 2 EOF# dns sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf# active sudo netplan apply
[kiosk@k8s-worker2]$
-
设置静态IP
# 配置IP sudo tee /etc/netplan/00-installer-config.yaml >/dev/null <<EOF network:ethernets:ens33:dhcp4: falseaddresses: [192.168.147.130/24]gateway4: 192.168.147.2nameservers:addresses: [8.8.8.8]version: 2 EOF# dns sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf# active sudo netplan apply
[kiosk@k8s-master|k8s-worker1|k8s-worker2]$
-
编辑 hosts
sudo tee -a /etc/hosts >/dev/null <<EOF 192.168.147.128 k8s-master 192.168.147.129 k8s-worker1 192.168.147.130 k8s-worker2 EOF# 设置 root 密码 (echo ubuntu; echo ubuntu) | sudo passwd root echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config sudo systemctl restart sshd
[kiosk@k8s-master]$
-
ssh免密
# 生成 keypair ssh-keygen -f ~/.ssh/id_rsa -N ''# 拷贝公钥 for i in k8s-master k8s-worker1 k8s-worker2; dosshpass -pubuntu ssh-copy-id -o StrictHostKeyChecking=no kiosk@$isshpass -pubuntu ssh-copy-id -o StrictHostKeyChecking=no root@$i done
[kiosk@k8s-master|k8s-worker1|k8s-worker2]$
-
禁用swap
# 交换文件 SWAPF=$(awk '/swap/ {print $1}' /etc/fstab)# 立即禁用 sudo swapoff $SWAPF# 永久禁用 sudo sed -i '/swap/d' /etc/fstab# 删除交换文件 sudo rm $SWAPF
-
扩容
# 逻辑卷名 export LVN=$(sudo lvdisplay | awk '/Path/ {print $3}')# 扩容 sudo lvextend -l 100%PVS $LVN# 立即生效 sudo resize2fs $LVN# 验证 df -h /
-
模块支持
# 安装 sudo apt -y install bridge-utils# 立即生效 sudo modprobe br_netfilter# 内核支持 sudo tee /etc/sysctl.d/k8s.conf >/dev/null <<EOF net.ipv4.ip_forward=1 vm.swappiness=0 vm.overcommit_memory=1 vm.panic_on_oom=0 EOF# 立即生效 sudo sysctl -p /etc/sysctl.d/k8s.conf
- docker: k8s-master, k8s-worker1
- containerd: k8s-worker2
[kiosk@k8s-master|k8s-worker1]$
-
安装运行时
# 创建文件夹 sudo mkdir -p /etc/docker# 生成配置文件 sudo tee /etc/docker/daemon.json >/dev/null <<EOF {"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "10"},"registry-mirrors": ["https://docker.nju.edu.cn/"] } EOF# 安装 runtime sudo apt -y install docker.io# 开机自启 sudo systemctl enable docker# 立即重启 sudo systemctl restart docker
# 安装命令 cri-dockerd curl -# https://vmcc.xyz:8443/k8s/cri-docker/cri-dockerd-0.2.5.amd64.tgz \-o cri-dockerd-0.2.5.amd64.tgz tar -xf cri-dockerd-0.2.5.amd64.tgz sudo cp cri-dockerd/cri-dockerd /usr/bin/# 安装服务 cri-docker.service sudo curl -s https://vmcc.xyz:8443/k8s/cri-docker/cri-docker.service \-o /usr/lib/systemd/system/cri-docker.service sudo sed -i '/ExecStart/s+$+ --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8+' /usr/lib/systemd/system/cri-docker.service# 安装 cri-docker.socket sudo curl -s https://vmcc.xyz:8443/k8s/cri-docker/cri-docker.socket \-o /usr/lib/systemd/system/cri-docker.socket# 启动服务 cri-dockerd sudo systemctl daemon-reload sudo systemctl enable cri-docker sudo systemctl restart cri-docker# 安装 crictl 命令 curl -# https://vmcc.xyz:8443/k8s/crictl-v1.24.2-linux-amd64.tar.gz \-o crictl-v1.24.2-linux-amd64.tar.gz tar -xf crictl-v1.24.2-linux-amd64.tar.gz sudo cp crictl /usr/bin/ # crictl 配置文件 sudo tee /etc/crictl.yaml >/dev/null <<EOF runtime-endpoint: unix:///var/run/cri-dockerd.sock image-endpoint: unix:///var/run/cri-dockerd.sock timeout: 10 debug: false pull-image-on-create: true EOF
[kiosk@k8s-worker2]$
-
安装运行时
# 安装 containerd sudo apt install -y containerd# 创建目录 sudo mkdir /etc/containerd# 生成默认配置文件 containerd config default | \ sudo tee /etc/containerd/config.toml >/dev/null# 修改配置文件 sudo sed -i \ -e '/sandbox_image/s?k8s.gcr.io?registry.aliyuncs.com/google_containers?' \ -e '/SystemdCgroup/s?false?true?' \ -e '/registry.mirrors/a\ [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]' \ -e '/registry.mirrors/a\ endpoint = ["https://docker.nju.edu.cn/"]' /etc/containerd/config.toml# 服务重启 sudo systemctl restart containerd# 安装 crictl 命令 curl -# https://vmcc.xyz:8443/k8s/crictl-v1.24.2-linux-amd64.tar.gz \-o crictl-v1.24.2-linux-amd64.tar.gz tar -xf crictl-v1.24.2-linux-amd64.tar.gz sudo cp crictl /usr/bin/ # crictl 配置文件 sudo tee /etc/crictl.yaml >/dev/null <<EOF runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 10 debug: false pull-image-on-create: true EOF
K. 安装 k8s
[kiosk@k8s-master|k8s-worker1|k8s-worker2]$
-
安装 kubeadm、kubelet 和 kubectl
# 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包 sudo apt -y install apt-transport-https ca-certificates curl# 下载 Google Cloud 公开签名秘钥 curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -# 添加 Kubernetes apt 仓库 MIRROR_URL=https://mirror.nju.edu.cn/kubernetes/apt/ sudo tee /etc/apt/sources.list.d/kubernetes.list >/dev/null <<EOF deb $MIRROR_URL kubernetes-xenial main EOF# 更新 apt 包索引 sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d sudo apt update -y sudo apt-cache madison kubelet | grep 1.24# 安装 kubelet、kubeadm 和 kubectl 考试版本 sudo apt install -y kubelet=1.24.1-00 kubeadm=1.24.1-00 kubectl=1.24.1-00# 锁定版本 sudo apt-mark hold kubelet kubeadm kubectl
[kiosk@k8s-worker2]$
# 增加 k8s 支持sudo sed -i '/ExecStart=\//s|$| --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --cgroup-driver=systemd|' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# 重启 kubelet 服务
sudo systemctl daemon-reload
sudo systemctl restart kubelet
[kiosk@k8s-master]$
-
初始化
# 生成初始文件 sudo kubeadm config print init-defaults > kubeadm-config.yaml# 修改文件 sudo sed -i \-e "/advertiseAddress/s?:.*?: 192.168.147.128?" \-e "/name/s?:.*?: k8s-master?" \-e "/clusterName/s?:.*?: ck8s?" \-e "/imageRepository/s?:.*?: registry.aliyuncs.com/google_containers?" \-e "/criSocket/s+containerd/containerd+cri-dockerd+" kubeadm-config.yaml# 使用初始文件,初始化集群 sudo kubeadm init --config kubeadm-config.yaml
…输出省略…
Your Kubernetes control-plane has initializedsuccessfully
!To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run “kubectl apply -f [podnetwork].yaml
” with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.147.128:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:c4781194de65ebb47984fc5e7e64d4897875410825ce4d18df81da1a298afa1f
-
配置文件
# 创建目录 mkdir -p $HOME/.kube# user 复制配置文件 sudo \cp /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config# root 变量 sudo tee -a ~root/.bashrc >/dev/null <<EOF export KUBECONFIG=/etc/kubernetes/admin.conf EOF
-
创建网络
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
-
命令补全
# 立即生效 source <(kubectl completion bash)# 永久生效 mkdir ~/.kube kubectl completion bash > ~/.kube/completion.bash.inc printf " # Kubectl shell completion source '$HOME/.kube/completion.bash.inc' " >> $HOME/.bash_profile source $HOME/.bash_profile
-
命令别名
# 永久生效 tee -a $HOME/.bashrc >/dev/null <<EOF alias k='kubectl' complete -F __start_kubectl k EOF# 立即生效 source $HOME/.bashrc
[kiosk@k8s-worker1]$
-
加入集群
sudo kubeadm join 192.168.147.128:6443 \--token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:c4781194de65ebb47984fc5e7e64d4897875410825ce4d18df81da1a298afa1f \--cri-socket unix://var/run/cri-dockerd.sock
[kiosk@k8s-worker2]$
-
加入集群
sudo kubeadm join 192.168.147.128:6443 \--token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:c4781194de65ebb47984fc5e7e64d4897875410825ce4d18df81da1a298afa1f
C. 确认环境正常
[kiosk@k8s-master]
$ kubectl get componentstatuses
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler `Healthy` ok
controller-manager `Healthy` ok
etcd-0 `Healthy` {"health":"true","reason":""}$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-worker1 `Ready` <none> 4m4s `v1.24.1`
k8s-worker2 `Ready` <none> 4m44s `v1.24.1`
k8s-master `Ready` control-plane,master 13m `v1.24.1`$ kubectl -n kube-system get pod -w
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-555bc4b957-8ccgh 1/1 Running 0 27m
calico-node-5qqcq 1/1 Running 0 9m29s
calico-node-7qclz 1/1 Running 0 27m
calico-node-kcvt5 1/1 Running 0 9m29s
coredns-74586cf9b6-69fn7 1/1 Running 0 156m
coredns-74586cf9b6-8mgl9 1/1 Running 0 156m
etcd-k8s-master 1/1 Running 0 156m
kube-apiserver-k8s-master 1/1 Running 0 156m
kube-controller-manager-k8s-master 1/1 Running 0 156m
kube-proxy-8j248 1/1 Running 0 9m29s
kube-proxy-g7r55 1/1 Running 0 9m29s
kube-proxy-rbdcp 1/1 Running 0 156m
kube-scheduler-k8s-master 1/1 Running 0 156m
<Ctrl-C>
相关文章:

k8s 集群搭建详细教程
参考: Kubernetes 文档 / 入门 / 生产环境 / 使用部署工具安装 Kubernetes / 使用 kubeadm 引导集群 / 安装 kubeadm B. 准备开始 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令每…...
国有行面试:掌握这11个测评要素
银行笔试期一结束,面试也接连不断。大家做好拿下offer的准备了吗?回顾过往银行面试,半结构化和无领导题型备受考官喜爱,“有备无患,方能走向远方”,银行面试备考,了解掌握面试本质测评要素&…...

云视如何实现流量转化
云视如何实现流量转化 大家好我是小鱼 小伙伴很好奇 云视除了直播带货 打赏,广告 还有哪些方式 可以实现流量转化 今天我和大家分享一下这个话题 接下来我们要讲讲 我们要用的工具 优惠券 适用于刺激消费回流,构建闭环消费圈。 课程赠送 趣味推广营销&am…...

Metersphere+jar+beanshell+连接linux
Meterspherejarbeanshell连接linux java编写连接linux代码 使用jsch连接linux,下载jsch包或者使用maven <dependencies><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55<…...
前端开发工程师如何提升个人审美
✨求关注~ 😀博客:www.protaos.com 作为前端开发工程师,提升个人审美能力对于设计和开发出高质量的用户界面至关重要。个人审美是指对于颜色、布局、字体、图形等视觉元素的理解和判断能力。通过提升个人审美,前端开发工程师能够设…...

【软件测试】Python自动化软件测试算是程序员吗?
今天早上一觉醒来,突然萌生一个念头,【软件测试】软件测试算是程序员吗?左思右想,总感觉哪里不对。做了这么久的软件测试,还真没深究过这个问题。 基于,内事问百度的准则: 结果…… 我刚发出软…...
react函数组件常用的几个钩子函数
react框架 react框架包括包括两大类:类组件函数组件。 类组件构成:constructor自定义方法。调用方法通过this.方法名()。constructor(superstate)构造器里面必有super字段。render()方法里面写页面布局。 函数组件构成:各种钩子函数return()方…...
如何进行大数据测试
大数据解决方案 大数据解决方案包括一系列工具和技术,用于收集、存储、处理和分析大量的数据。以下是一些常用的大数据解决方案: Apache Hadoop:Hadoop是一个开源的大数据处理框架,可以在商用硬件上处理大规模数据集。它包括HDFS…...

java版本企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发
一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…...

Redis哨兵集群搭建及其原理
Redis哨兵集群搭建及其原理 1.Redis哨兵1.1.哨兵原理1.1.1.集群结构和作用1.1.2.集群监控原理1.1.3.集群故障恢复原理1.1.4.小结 2.搭建哨兵集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.测试 3.RedisTemplate3.1.引入依赖3.2.配置Redis地址3.3.配置读写分离 1.Redis哨兵 R…...

读书笔记--读数学之美有感
大概是在10年前,无意间读到吴军老师撰写得数学之美,感觉吴老师对数学与信息论的结合讲述的太好了,吴老师结合自身的多年工作经历将信息技术中用到的数学,特别是数学里面的很多概率论、线性代数、模型算法、编解码规则等࿰…...

[PyTorch][chapter 33][卷积神经网络]
前言 参考: 《数字图像处理与机器视觉》 第五章 空间域图像增强, 图像卷积: 空间域图像增强 图像增强是根据特定需要突出一副图像中的某些信息,同时削弱或去除 某些不需要信息的处理方法,其主要目的是是的处理后的图像对某种特定的…...

Lift, Splat, Shoot 论文学习
1. 解决了什么问题? LSS 在工业界具有非常重要的地位。自从 Tesla AI Day 上提出了 BEV 感知后,不少公司都进行了 BEV 工程化的探索。当前 BEV 下的感知方法大致分为两类: 自下而上:利用 transformer 的 query 机制,…...

【密码产品篇】动态口令系统密钥体系结构(SM3、SM4)
【密码产品篇】动态口令系统密钥体系结构(SM3、SM4) 动态口令是一种一次性口令机制,用户无须记忆口令,也无须手工更改口令。口令通过用户持有的客户端器件生成,并基于一定的算法与服务端形成同步,从而作为…...

PDF工具Adobe Arcrobat Pro DC下载安装教程
wx供重浩:创享日记 对话框发送:adobe 免费获取Adobe Arcrobat Pro DC安装包 Acrobat是一款PDF(Portable Document Format,便携式文档格式)编辑软件。借助它,您可以以PDF格式制作和保存你的文档 ,…...
大量从IT培训班出来的程序员们最后都怎样了?
在当今信息时代,IT行业越来越受到人们的关注。越来越多的年轻人选择进入IT行业学习编程技术,而IT培训班也因此应运而生。据统计,在中国,每年约有100万人通过各种途径进入IT行业。其中,通过IT培训班获得技能认证的人数也…...

【论文阅读笔记】Federated Unlearning with Knowledge Distillation
个人阅读笔记,如有错误欢迎指出 Arxiv 2022 [2201.09441] Federated Unlearning with Knowledge Distillation (arxiv.org) 问题: 法律要求客户端有随时要求将其贡献从训练中消除的权利 让全局模型忘记特定客户的贡献的一种简单方法是从头开始对模型进…...

常用MQ介绍与区别
RabbitMQ RabbitMQ是实现AMQP协议(0.9.1) 的消息中间件的一种,由RabbitMQ Technologies Ltd开发并且提供商业支持的,最初起源于金融系统,服务器端用Erlang语言编写,用于在分布式系统中存储转发消息,在易用性、扩展性、…...

今天面试招了个20K的人,从腾讯出来的果然都有两把刷子···
现在找个会自动化测试的人真是难呀,10个里面有8个写了会自动化,但一问就是三不知 公司前段时间缺人,也面了不少测试,前面一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在15-20k,面试的…...

加速度传感器的量程估算
下面推导过程中包含一个重要的错误:sinx/x1没有错,但是这里的x是 t,当x t时,位移并非sin(t),而是n*sin(t),我稍後修訂。 在测震动和噪声的场合,现有的加速度传感器,需要客户提供加…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...