【2025新版本】【谷粒商城版】Kubernetes

本文作者: slience_me
文章目录
- 【2025】Kubernetes
- 1. docker安装
- 2. kubernetes安装前
- 3. kubeadm,kubelet,kubectl
- 3.1 简介
- kubeadm
- kubelet
- kubectl
- 常用指令
- 3.2 安装
- 3.3 kubeadm初始化
- 3.4 加入从节点(工作节点)
- 3.5 安装Pod网络插件(CNI)
- 3.6 KubeSphere安装
- 【Q&A】问题汇总
- 01-coredns工作不正常
PS:以后做项目一定要用最新版的东西,太旧版本的内容过一段时间估计就没了
【2025】Kubernetes
官方网站 Kubernetes
在这个教程之前,已经完成了虚拟机集群的构建,如果没有完成,见 基于VMware虚拟机集群搭建教程
1. docker安装
我使用的是ubuntu-20.04.6-live-server-amd64版本 docker安装教程
注意:直接安装最新版即可
2. kubernetes安装前
在安装之前,需要对系统做一些调整,实现更好的性能
关闭防火墙
sudo systemctl stop ufw
sudo systemctl disable ufw
关闭 SELinux
sudo systemctl stop apparmor
sudo systemctl disable apparmor
关闭 Swap
sudo swapoff -a # 临时关闭 swap
sudo sed -i '/swap/d' /etc/fstab # 永久禁用 swapfree -g # Swap 需要为 0 | 验证 Swap 是否关闭
配置主机名和 Hosts 映射
sudo hostnamectl set-hostname <newhostname> # 修改主机名
sudo vim /etc/hosts # 添加 IP 与主机名的映射192.168.137.130 k8s-node1
192.168.137.131 k8s-node2
让 IPv4 流量正确传递到 iptables
# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
EOF# 应用 sysctl 参数而不重新启动
sudo sysctl --system# 使用以下命令验证 net.ipv4.ip_forward 是否设置为 1
sysctl net.ipv4.ip_forwardcat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
处理只读文件系统问题
# 如果遇到 "只读文件系统(read-only filesystem)" 问题,可以尝试重新挂载:
sudo mount -o remount,rw /
同步时间
# 如果时间不同步,可能会影响 Kubernetes 组件的运行,可以使用 ntpdate 进行时间同步:
sudo apt update
sudo apt install -y ntpdate
sudo ntpdate time.windows.comsudo timedatectl set-local-rtc 1 # 修改硬件时钟
sudo timedatectl set-timezone Asia/Shanghai # 修改时钟
3. kubeadm,kubelet,kubectl
3.1 简介
在 Kubernetes(K8s)集群的安装和管理过程中,kubeadm、kubelet 和 kubectl 是三个最重要的组件,它们分别承担不同的职责:
| 组件 | 作用 | 适用对象 |
|---|---|---|
kubeadm | 初始化和管理 Kubernetes 集群 | 集群管理员 |
kubelet | 运行在每个节点上,管理 Pod 和容器 | Kubernetes 节点 |
kubectl | 用于操作 Kubernetes 资源的命令行工具 | 开发者 & 运维 |
kubeadm
Kubernetes 集群初始化工具
kubeadm 是官方提供的 快速部署和管理 Kubernetes 集群 的工具,主要用于:
# 初始化 Kubernetes 控制平面(主节点)
kubeadm init
# 加入新的工作节点(Worker Node)
kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
# 升级 Kubernetes 版本
kubeadm upgrade apply v1.28.0
特点:
✅ 官方推荐方式,简化集群安装
✅ 自动生成证书、配置文件、Pod 网络
✅ 可升级 Kubernetes(但不管理工作负载)
📌 注意:kubeadm 仅用于 集群初始化和管理,不会持续运行,而是一次性命令。
kubelet
运行在每个节点上,管理 Pod 和容器
kubelet 是 Kubernetes 关键组件,在 每个节点(Master & Worker) 上运行,负责:
- 与 API Server 通信,获取调度任务
- 管理节点上的 Pod(创建、监控、重启)
- 与容器运行时(如 Docker, containerd)交互
- 健康检查,自动恢复失败的 Pod
启动 kubelet
在每个节点上,kubelet 作为系统服务运行:
systemctl enable --now kubelet
📌 注意:
kubelet不会自己创建 Pod,它只负责运行 API Server 指定的 Pod。- 如果
kubelet退出或崩溃,节点上的所有 Pod 可能会停止工作。
kubectl
Kubernetes 命令行工具
kubectl 是 Kubernetes 的命令行客户端,用于与 Kubernetes API 交互,管理集群中的资源。
常用指令
kubectl cluster-info # 查看集群信息
kubectl get nodes # 查看集群中的节点信息
kubectl get namespaces # 查看所有命名空间
kubectl get pods # 查看所有 Pod
kubectl get svc # 查看所有服务
kubectl get deployments # 查看所有部署
kubectl get replicasets # 查看所有 ReplicaSets
kubectl get configmaps # 查看所有 ConfigMap
kubectl get secrets # 查看所有 Secretskubectl apply -f <file>.yaml # 使用 YAML 文件创建或更新资源
kubectl create deployment <deployment-name> --image=<image-name> # 创建一个新的 Deploymentkubectl set image deployment/<deployment-name> <container-name>=<new-image> # 更新 Deployment 镜像
kubectl apply -f <updated-file>.yaml # 更新资源配置kubectl delete pod <pod-name> # 删除指定的 Pod
kubectl delete deployment <deployment-name> # 删除指定的 Deployment
kubectl delete svc <service-name> # 删除指定的 Service
kubectl delete pod --all # 删除所有 Pod(例如:已退出的容器)kubectl logs <pod-name> # 查看指定 Pod 的日志
kubectl logs <pod-name> -c <container-name> # 查看指定容器的日志
kubectl logs <pod-name> --previous # 查看最近已删除 Pod 的日志kubectl exec -it <pod-name> -- /bin/bash # 在 Pod 中执行命令(进入容器 shell)
kubectl exec -it <pod-name> -c <container-name> -- /bin/bash # 执行命令到指定容器kubectl describe pod <pod-name> # 查看 Pod 的详细信息
kubectl describe deployment <deployment-name> # 查看 Deployment 的详细信息kubectl top nodes # 查看节点的资源使用情况
kubectl top pods # 查看 Pod 的资源使用情况kubectl port-forward pod/<pod-name> <local-port>:<pod-port> # 本地端口转发到 Pod 内部端口
kubectl port-forward svc/<service-name> <local-port>:<service-port> # 本地端口转发到 Servicekubectl get events # 查看集群中的事件
kubectl get events --field-selector involvedObject.kind=Node # 查看节点的事件kubectl delete pod <pod-name> --force --grace-period=0 # 强制删除未响应的 Podkubectl get pods -o yaml # 获取 Pod 的详细 YAML 输出
kubectl get pods -o json # 获取 Pod 的详细 JSON 输出
kubectl get pods -o wide # 获取 Pod 的详细输出kubectl help # 获取 kubectl 命令帮助信息
kubectl get pod --help # 获取特定命令(如 Pod)帮助信息
kubectl get all -o wide # 获取集群中所有资源的详细信息,包括节点、Pod、Service 等
📌 注意:
kubectl需要配置kubeconfig文件才能连接 Kubernetes API Server。- 常见
kubectl配置文件路径:~/.kube/config。
总结
| 组件 | 作用 | 运行环境 |
|---|---|---|
kubeadm | 初始化 & 管理 Kubernetes 集群 | 仅在主节点(Master)上运行一次 |
kubelet | 运行和管理 Pod | 所有节点(Master & Worker)长期运行 |
kubectl | 操作 Kubernetes 资源 | 运维 & 开发者本地工具 |
👉 kubeadm 负责安装,kubelet 负责运行,kubectl 负责操作。 🚀
3.2 安装
列出已安装的所有软件包apt list --installed | grep kube
查找可用的 Kubernetes 相关包apt search kube
看官网分别安装三个 官方文档
- kubeadm
- kubelet
- kubectl
# 1. 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包
sudo apt-get update
# apt-transport-https 可能是一个虚拟包(dummy package);如果是的话,你可以跳过安装这个包
sudo apt-get install -y apt-transport-https ca-certificates curl gpg# 2. 下载用于 Kubernetes 软件包仓库的公共签名密钥。所有仓库都使用相同的签名密钥,因此你可以忽略URL中的版本
# 如果 `/etc/apt/keyrings` 目录不存在,则应在 curl 命令之前创建它,请阅读下面的注释。
# sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg# 3. 添加 Kubernetes apt 仓库。 请注意,此仓库仅包含适用于 Kubernetes 1.32 的软件包; 对于其他 Kubernetes 次要版本,则需要更改 URL 中的 Kubernetes 次要版本以匹配你所需的次要版本 (你还应该检查正在阅读的安装文档是否为你计划安装的 Kubernetes 版本的文档)
# 此操作会覆盖 /etc/apt/sources.list.d/kubernetes.list 中现存的所有配置。
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list# 4. 更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
3.3 kubeadm初始化
这个指令只在master节点(控制平面节点 (Control Plane Node))执行,就是主节点执行 官方文档
# 确保 containerd 运行正常
systemctl status containerd
sudo systemctl enable --now containerd# 配置 containerd CRI 兼容性
sudo containerd config default | sudo tee /etc/containerd/config.toml # 检查 containerd 配置文件
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml # config.toml 内的 SystemdCgroup = true
sudo systemctl restart containerd# 确保 kubeadm 使用正确的 CRI
sudo crictl --runtime-endpoint unix:///run/containerd/containerd.sock info # 验证 kubeadm 是否能正确检测 containerd
sudo systemctl restart containerd # 如果返回错误,可能 containerd 没有正确监听 CRI,可以尝试# 切换到 cgroups v2
mount | grep cgroup
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1" # 如果仍然是 cgroup v1,请启用 cgroups v2
# apiserver-advertise-address 集群某一个master节点
kubeadm config images pull
kubeadm init --apiserver-advertise-address=192.168.137.130 --pod-network-cidr=10.244.0.0/16
打印的内容为:
# 正常日志
# W0317 21:29:46.144585 79912 validation.go:28] Cannot validate kube-proxy config - no validator is available
# W0317 21:29:46.144788 79912 validation.go:28] Cannot validate kubelet config - no validator is available
# ...............
# Your Kubernetes control-plane has initialized successfully!# 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# 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.137.130:6443 --token nw0bbd.zjoqpprbte6ois80 \--discovery-token-ca-cert-hash sha256:f4c74cb6510c8fec6fb7f3129c08f22931ce6d6077889f7a9802194837f7c142
执行一下这个
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config# 检测所有节点
kubectl get nodes# NAME STATUS ROLES AGE VERSION
# k8s-node1 NotReady master 3m43s v1.17.3
3.4 加入从节点(工作节点)
在从节点(工作节点)执行该指令
kubeadm join 192.168.137.130:6443 --token nw0bbd.zjoqpprbte6ois80 \--discovery-token-ca-cert-hash sha256:f4c74cb6510c8fec6fb7f3129c08f22931ce6d6077889f7a9802194837f7c142kubectl config set-cluster kubernetes --server=https://192.168.137.130:6443
kubectl config set-credentials admin --client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key
kubectl config set-context kubernetes --cluster=kubernetes --user=admin
kubectl config use-context kubernetes# 正常日志
# [preflight] Running pre-flight checks
# [WARNING SystemVerification]: cgroups v1 support is in maintenance mode, please migrate to cgroups v2
# [preflight] Reading configuration from the "kubeadm-config" ConfigMap in namespace "kube-system"...
# [preflight] Use 'kubeadm init phase upload-config --config your-config.yaml' to re-upload it.
# [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
# [kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
# [kubelet-start] Starting the kubelet
# [kubelet-check] Waiting for a healthy kubelet at http://127.0.0.1:10248/healthz. This can take up to 4m0s
# [kubelet-check] The kubelet is healthy after 501.512978ms
# [kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap
#
# This node has joined the cluster:
# * Certificate signing request was sent to apiserver and a response was received.
# * The Kubelet was informed of the new secure connection details.
#
# Run 'kubectl get nodes' on the control-plane to see this node join the cluster.# 如果出问题 重置一下
# 重置 Kubernetes 状态
kubeadm reset -f
rm -rf ~/.kube
systemctl restart kubelet
kubeadm join 192.168.137.130:6443 --token nw0bbd.zjoqpprbte6ois80 \--discovery-token-ca-cert-hash sha256:f4c74cb6510c8fec6fb7f3129c08f22931ce6d6077889f7a9802194837f7c142# 去master节点查一下
kubectl get nodes# 正常日志
# NAME STATUS ROLES AGE VERSION
# k8s-node1 NotReady master 7m4s v1.17.3
# k8s-node2 NotReady <none> 96s v1.17.3
# k8s-node3 NotReady <none> 96s v1.17.3# 查一下全部名称空间的节点情况
kubectl get pods --all-namespaces# 正常日志
# NAMESPACE NAME READY STATUS RESTARTS AGE
# kube-system coredns-7f9c544f75-67njd 0/1 Pending 0 7m46s
# kube-system coredns-7f9c544f75-z82nl 0/1 Pending 0 7m46s
# kube-system etcd-k8s-node1 1/1 Running 0 8m1s
# kube-system kube-apiserver-k8s-node1 1/1 Running 0 8m1s
# kube-system kube-controller-manager-k8s-node1 1/1 Running 0 8m1s
# kube-system kube-proxy-fs2p6 1/1 Running 0 2m37s
# kube-system kube-proxy-x7rkp 1/1 Running 0 2m37s
# kube-system kube-proxy-xpbvt 1/1 Running 0 7m46s
# kube-system kube-scheduler-k8s-node1 1/1 Running 0 8m1s
3.5 安装Pod网络插件(CNI)
kubectl apply -f \https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml# 正常日志
# namespace/kube-flannel created
# clusterrole.rbac.authorization.k8s.io/flannel created
# clusterrolebinding.rbac.authorization.k8s.io/flannel created
# serviceaccount/flannel created
# configmap/kube-flannel-cfg created
# daemonset.apps/kube-flannel-ds created
3.6 KubeSphere安装
官方网站 kubesphere.io
先安装helm(master节点执行) helm官网
Helm是Kubernetes的包管理器。包管理器类似于我们在Ubuntu中使用的apt、Centos 中使用的yum或者Python中的pip一样,能快速查找、下载和安装软件包。Helm由客 户端组件helm和服务端组件Tiller组成,能够将一组K8S资源打包统一管理,是查找、共 享和使用为Kubernetes构建的软件的最佳方式。
# 安装(master执行)
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh# 正常日志
# Downloading https://get.helm.sh/helm-v3.17.2-linux-amd64.tar.gz
# Verifying checksum... Done.
# Preparing to install helm into /usr/local/bin
# helm installed into /usr/local/bin/helm# 验证版本(master执行)
helm version# 正常日志
# version.BuildInfo{Version:"v3.17.2", GitCommit:"cc0bbbd6d6276b83880042c1ecb34087e84d41eb", GitTreeState:"clean", GoVersion:"go1.23.7"}
# 安装kubesphere
# 如果无法访问 charts.kubesphere.io, 可将 charts.kubesphere.io 替换为 charts.kubesphere.com.cn
helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.3.tgz --debug --wait
# 正常日志
# NOTES:
# Thank you for choosing KubeSphere Helm Chart.
#
# Please be patient and wait for several seconds for the KubeSphere deployment to complete.
#
# 1. Wait for Deployment Completion
#
# Confirm that all KubeSphere components are running by executing the following command:
#
# kubectl get pods -n kubesphere-system
# 2. Access the KubeSphere Console
#
# Once the deployment is complete, you can access the KubeSphere console using the following URL:
#
# http://192.168.137.130:30880
#
# 3. Login to KubeSphere Console
#
# Use the following credentials to log in:
#
# Account: admin
# Password: P@88w0rd
#
# NOTE: It is highly recommended to change the default password immediately after the first login.
# For additional information and details, please visit https://kubesphere.io.

轻松安装
【Q&A】问题汇总
01-coredns工作不正常
# 问题描述
# root@k8s-node1:/home/slienceme# kubectl get pods --all-namespaces
# NAMESPACE NAME READY STATUS RESTARTS AGE
# kube-flannel kube-flannel-ds-66bcs 1/1 Running 0 12h
# kube-flannel kube-flannel-ds-ntwwx 1/1 Running 0 12h
# kube-flannel kube-flannel-ds-vb6n9 1/1 Running 5 12h
# kube-system coredns-7f9c544f75-67njd 0/1 CrashLoopBackOff 17 12h // [!code focus:8]
# kube-system coredns-7f9c544f75-z82nl 0/1 CrashLoopBackOff 17 12h
# kube-system etcd-k8s-node1 1/1 Running 4 12h
# kube-system kube-apiserver-k8s-node1 1/1 Running 4 12h
# kube-system kube-controller-manager-k8s-node1 1/1 Running 3 12h
# kube-system kube-proxy-fs2p6 1/1 Running 0 12h
# kube-system kube-proxy-x7rkp 1/1 Running 0 12h
# kube-system kube-proxy-xpbvt 1/1 Running 3 12h
# kube-system kube-scheduler-k8s-node1 1/1 Running 3 12h
# kube-system tiller-deploy-6ffcfbc8df-mzwd7 1/1 Running 0 39m
通过对问题的追踪,在github issue找到 CoreDNS pod goes to CrashLoopBackOff State
解决流程如下:
你需要修改 Kubernetes 中的 CoreDNS 配置,具体操作步骤如下:
步骤 1: 修改 CoreDNS 配置ConfigMap
kubectl edit configmap coredns -n kube-system
步骤 2: 修改 Corefile 配置
修改 Corefile 中的 forward 配置,当前配置为:
forward . /etc/resolv.conf
需要及时修改 /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
# options edns0 trust-ad
你需要将其修改为指向外部 DNS 服务器,比如 Google 的公共 DNS 服务器 8.8.8.8 或 1.1.1.1(Cloudflare DNS)。例如,你可以修改为:
forward . 8.8.8.8
或者如果你希望使用多个 DNS 服务器,可以配置多个地址:
forward . 8.8.8.8 8.8.4.4
步骤 3: 保存并退出
步骤 4: 验证配置生效
验证 CoreDNS 配置是否生效,可以查看 CoreDNS Pod 是否正常运行,并且配置是否正确生效。
kubectl get pods -n kube-system -l k8s-app=kube-dns
如果需要,也可以重启 CoreDNS Pods,以确保新的配置生效:
kubectl rollout restart deployment coredns -n kube-system
通过这些步骤,你就能避免 CoreDNS 发生循环请求,确保 DNS 请求被转发到外部的 DNS 服务器,而不是 CoreDNS 本身。
相关文章:
【2025新版本】【谷粒商城版】Kubernetes
本文作者: slience_me 文章目录 【2025】Kubernetes1. docker安装2. kubernetes安装前3. kubeadm,kubelet,kubectl3.1 简介kubeadmkubeletkubectl常用指令 3.2 安装3.3 kubeadm初始化3.4 加入从节点(工作节点)3.5 安装Pod网络插件(CNI)3.6 Ku…...
vulhub-Billu-b0x攻略
靶场下载链接 https://download.vulnhub.com/billu/Billu_b0x.zip 将kali和Billu,NAT连接 获取靶场ip arp-scan -l 使用diesearch进行目录扫描 dirsearch -u " " 查看目录中的信息 打开add.php,得到有上传文件功能的(看到后面你会发现其实这里就可以完…...
vue3+Ts+elementPlus二次封装Table分页表格,表格内展示图片、switch开关、支持
目录 一.项目文件结构 二.实现代码 1.子组件(表格组件) 2.父组件(使用表格) 一.项目文件结构 1.表格组件(子组件)位置 2.使用表格组件的页面文件(父组件)位置 3.演示图片位置 ele…...
数字人本地部署之llama-本地推理模型
llama 本地服务命令 llama-server.exe -m "data/LLM/my.gguf" --port 8080 -m data/LLM/my.gguf -m 属于命令行选项,一般用来指定要加载的模型文件。 data/LLM/my.gguf 是模型文件的路径。gguf 格式的文件是一种用于存储语言模型权重的文件格式&…...
RUOYI框架在实际项目中的应用三:Ruoyi微服务版本-RuoYi-Cloud
如需观看Ruoyi框架的整体介绍,请移步:RUOYI框架在实际项目中的应用一:ruoyi简介 一、Ruoyi微服务版本-Ruoyi微服务版本 1、官方资料 1:代码地址:https://gitee.com/y_project/RuoYi-Cloud.git 2:文档介绍…...
linux操作系统3
1.安装桌面的centos操作系统 二.linux相对路径和绝对路径 1.相对路径:从当前目录开始数的不完整路径 2.绝对路径:从跟开始数的完整路径 (这2种路径主要是为了方便用户操作) 3.linux用户和用户组管理 创建用户组:useradd 删除用户:userdel 用户的修改:usermod(可以修改用…...
windows创建开机启动任务
1、背景 一个java应用程序,需要做成开机启动,系统为windows系统。 2、创建启动脚本 创建一个 .bat 文件(例如 startup.bat),并将其保存到 Java 应用程序的目录中(如 E:\gitcode\mygit\learn\database\jdk2…...
素数判定方法详解:从基础试除法到优化策略
素数是只能被1和自身整除的正整数。素数的判定是数论中的基础问题,也是算法竞赛中的常见考点。 一、知识点 素数的定义: 素数(质数)是大于1的自然数,且只能被1和自身整除。 试除法: 通过遍历从2到sqrt(n)…...
BFS,DFS带图详解+蓝桥杯算法题+经典例题
1.BFS和DFS的定义与实现方式 1.1 深度优先搜索(DFS) 基本概念:DFS 是一种用于遍历或搜索图或树的算法。它从起始节点开始,沿着一条路径尽可能深地探索下去,直到无法继续或者达到目标节点,然后回溯到上一个…...
「清华大学、北京大学」DeepSeek 课件PPT专栏
你要的 这里都打包好啦,快快收藏起来! 名称 链接 团队简介 类型 DeepSeek——从入门到精通 1️⃣ DeepSeek从入门到精通「清华团队」 清华大学新闻与传播学院 新媒体研究中心 元宇宙文化实验室 PPT课件 DeepSeek如何赋能职场应用? ——从提示语…...
如何在 Github 上获得 1000 star?
作为程序员,Github 是第一个绕不开的网站。我们每天都在上面享受着开源带来的便利,我相信很多同学也想自己做一个开源项目,从而获得大家的关注。然而,理想很丰满,现实却是开发了很久的项目仍然无人问津。 最近&#x…...
on-policy对比off-policy
目录 持续更新。。。 on-policy与off-policy的定义 Q-learning属于on-policy算法还是off-policy算法? 为什么off-policy适用于从离线经验或多种探索策略中学习,明明 On-policy 也可以基于探索学习的啊? 重要性权重方法 off-policy方法可…...
标准卡尔曼滤波
1.状态转移方程和观测方程 状态转移方程 x k A x k − 1 B u k w k x_k A x_{k-1} Bu_k w_k xkAxk−1Bukwk x k x_k xk:k时刻的 状态向量,理论上的真实状态。 x k − 1 x_{k-1} xk−1:k-1时刻的 状态向量,理论…...
主流区块链
文章目录 主流链1. Solana特点:适用场景:工具链: 2. Binance Smart Chain (BSC)特点:适用场景:工具链: 3. Avalanche特点:适用场景:工具链: 4. Polkadot特点:…...
pytorch中有哪些损失函数
L1Loss 计算预测值 ypred 和真实值 ytrue 之间的平均绝对误差(MAE),公式为 L ( y p r e d , y t r u e ) 1 n ∑ i 1 n ∣ y p r e d i − y t r u e i ∣ L(y_{pred},y_{true})\frac1n\sum^n_{i1}|y^i_{pred}-y^i_{true}| L(ypred,ytru…...
【设计模式有哪些】
一、创建型模式(Creation Patterns) 1. 单例模式(Singleton) 核心思想:保证一个类仅有一个实例,并提供全局访问点。实现方式:public class Singleton {// 1. 私有静态实例,volatil…...
基于SpringBoot+Vue的幼儿园管理系统+LW示例参考
1.项目介绍 系统角色:管理员、教师、普通用户功能模块:用户管理、教师管理、班级管理、幼儿信息管理、会议记录管理、待办事项、职工考核、请假信息、缴费信息、体检管理、资源管理、原料管理、菜品信息管理等技术选型:SpringBoot࿰…...
默认参数 d = {} 的陷阱
默认参数 d {} 的陷阱 问题需求思路代码实现默认参数d {}的陷阱解决办法1、在函数外为每个字符串创建空字典统计词频2、函数改为每次调用时创建新字典,避免数据污染 举一反三 问题需求 统计两个字符串的中文词语出现次数 思路 先使用jieba库分词功能处理字符串…...
Python 常用内建模块-argparse
目录 argparse 小结 argparse 在命令行程序中,经常需要获取命令行参数。Python内置的sys.argv保存了完整的参数列表,我们可以从中解析出需要的参数: # copy.py import sys print(sys.argv) source sys.argv[1] target sys.argv[2] # TOD…...
案例5_3: 6位数码管静态显示
文章目录 文章介绍效果图仿真图复习知识:代码思考 文章介绍 第5章 学习数码管,使用6位数码管进行静态显示 效果图 仿真图 新建一个干净的5_3文件夹,用于存放新画的仿真图 除单片机最小系统外,新增3个元器件,分别是&…...
Profinet转Modbus RTU/TCP以太网通讯处理器
Profinet转Modbus RTU/TCP以太网通讯处理器 在当今的工业自动化领域,各种通讯协议和标准层出不穷。 其中,Profinet和Modbus作为两种广泛应用的通讯协议,分别在不同的应用场景中发挥着重要作用。 然而,当需要将这两种协议进行转换…...
3倍训练速度+40%显存节省!Mamba+Transformer 仅用一半时间,性能提升80%!
在人工智能领域,Mamba与Transformer的结合正在成为研究热点,为自然语言处理和多模态任务带来新的突破。 最新研究表明,通过将Mamba架构与Transformer的强大编码能力相结合,模型在处理复杂的多模态数据时的效率提升了50%ÿ…...
春秋云境刷题1
CVE-2022-29464 靶标介绍: WSO2文件上传漏洞(CVE-2022-29464)是Orange Tsai发现的WSO2上的严重漏洞。该漏洞是一种未经身份验证的无限制任意文件上传,允许未经身份验证的攻击者通过上传恶意JSP文件在WSO2服务器上获得RCE。 Git…...
台式机电脑组装---电源
台式机电脑组装—电源 22 33 主板供电是聚集了12V,5V,3.3V的24pin CPU供电的话主要是12V的44pin供电 44pin合并之后,就是8pin 55 SATA硬盘会使用饼io口取电,从电源获取12v,5v,3.3v的电 33...
10-BST(二叉树)-建立二叉搜索树,并进行前中后遍历
题目 来源 3540. 二叉搜索树 - AcWing题库 思路 建立二叉搜索树(注意传参时用到了引用,可以直接对root进行修改),同时进行递归遍历;遍历可以分前中后三种写,也可以用标志来代替合在一起。其余详见代码。…...
蓝桥杯备考:贪心问题之淘淘摘苹果
这是淘淘摘苹果普通版,很可爱的一道题,我们不多陈述,直接上代码 #include <iostream> using namespace std; const int N 15; int a[N]; int main() {for(int i 1;i<10;i){cin >> a[i];}int x;cin >> x;x30;int cnt …...
VSTO(C#)Excel开发 系列目录 含源码发布
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
在 Ubuntu 下通过 Docker 部署 Nginx+PHP-FPM 服务器
引言 大家好,今天我们来聊聊如何在 Ubuntu 下通过 Docker 部署 Nginx 和 PHP-FPM 服务器。Docker 是一个开源的容器化平台,可以轻松地打包、分发和管理应用程序。而 Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,PHP-FPM 则是 PHP 的一…...
Git使用和原理(3)
1.远程操作 1.1分布式版本控制系统 我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者 计算机上。⽽我们的 Git 其实是分布式版本控制系统!什么意思呢&a…...
【ELK】节省存储 之 压缩存储方式调整
目录 集群版本: 7.17.6 解释几个概念: 段(Segment) 合并(Merge) 索引设置: 压缩方式(index.codec): 测试设置前提条件 对比 在创建的时候指定压缩类型(index.codec) 对比 在…...
