k8s最详细集群部署
安装kubeadm、kubectl、和 kubelet
这里通过百度网盘下载所需要的安装包:
链接: k8s部署包.zip_免费高速下载|百度网盘-分享无限制 提取码: 0000
1、下载部署包到本地后,在k8s部署包/k8s目录下
执行此yum命令安装:yum localinstall ./*.rpm 或 rpm -Uvh *.rpm --nodeps --force
2、在 /etc/sysconfig/kublet 中增加自定义 kubelet 配置
# 设置hostname
hostnamectl set-hostname master
mkdir -p /home/work/kubernetes/log
mkdir -p /home/work/kubernetes/kubelet_data
mkdir -p /home/work/docker
# 自定义kublet配置
vi /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=" --hostname-override=master --logtostderr=false --log-dir=/home/work/kubernetes/log --v=0\
--root-dir=/home/work/kubernetes/kubelet_data "
3、设置 kubelet 开机启动
systemctl enable kubelet && systemctl start kubelet
docker安装
1、rpm包在k8s部署包/docker目录下
2、切换到该目录下安装
yum localinstall ./*.rpm 或rpm -Uvh *.rpm --nodeps --force
4、若是GPU机节点,需要安装nvidia-dcoker
1、切到k8s部署包/docker/nvidia-dcoker目录下
3、在该目录下执行
rpm -Uvh *.rpm --nodeps --force
4、sudo systemctl restart docker
5、修改docker配置,包括cgroup和仓库地址
vim /etc/docker/daemon.json
# gpu机器:
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"registry-mirrors": ["https://23h04een.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"default-runtime": "nvidia",
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
# cpu机器:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
6、修改docker服务参数,增加docker配置文件,指定docker数据文件目录
vim /etc/kubernetes/docker_opts.env
DOCKER_OPT_IPMASQ="--ip-masq=true"
DOCKER_OPT_MTU="--mtu=1372"
DOCKER_OPTS=" --ip-masq=true --mtu=1372 --data-root=/home/work/docker "
vim /usr/lib/systemd/system/docker.service (EnvironmentFile 对应上面的文件绝对路径)
EnvironmentFile=/etc/kubernetes/docker_opts.env
ExecStart=/usr/bin/dockerd $DOCKER_OPTS -H fd:// --containerd=/run/containerd/containerd.sock
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
7、重启docker,设置开机启动
systemctl daemon-reload
systemctl restart docker
nfs准备
安装nfs,配置挂载
先进入到k8s部署包/nfs-utils目录下
执行命令安装:yum localinstall ./*.rpm 或rpm -Uvh *.rpm --nodeps --force
# 创建本地目录
mkdir /cfs
# 挂载远程目录到本地
mount -t nfs4 -o minorversion=1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport cfs-PJ5X3SRg7M.lb-d065a956.cfs.bj.baidubce.com:/ /cfs
# 设置开机启动
systemctl enable nfs.service
更改服务器配置
1. 关闭防火墙和selinux
[root@centos7 ~] systemctl stop firewalld && systemctl disable firewalld
# 永久关闭selinux
[root@centos7 ~] sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && cat /etc/selinux/config
# 临时关闭selinux
root@centos7 ~] setenforce 0
1. 禁用swap
# 临时禁用
[root@master ~] swapoff -a
# 永久禁用
[root@master ~] sed -i.bak '/swap/s/^/#/' /etc/fstab
1. 内核参数修改
部署的 k8s 网络使用 flannel,该网络需要设置内核参数 bridge-nf-call-iptables=1
# 临时修改
[root@master ~] sysctl net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-iptables = 1
[root@master ~] sysctl net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-ip6tables = 1
# 永久修改
[root@master ~] cat /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
[root@master ~] sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
1. 处理依赖的docker镜像
所需要的镜像为:
registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.5
registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.5
registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.5
registry.aliyuncs.com/google_containers/kube-proxy:v1.23.5
registry.aliyuncs.com/google_containers/pause:3.6
registry.aliyuncs.com/google_containers/etcd:3.5.1-0
registry.aliyuncs.com/google_containers/coredns:v1.8.6
在k8s部署包/images下,逐个docker load -i 导入镜像。
kubeadm启动集群
1. 初始化
kubeadm reset -f
若是之前已经创建集群:
* 删除/root/.kube/config文件
* 若是安装了flannel网络,删除 /etc/cni/net.d/ 下的flannel网络文件,10-flannel.conflist
如果报错:[ERROR FileExisting-conntrack]: conntrack not found in system path
解决办法:先下载:yum install --downloadonly --downloaddir=/home/conntrack conntrack
安装到目标服务器上:rpm -Uvh *.rpm --nodeps --force
1. 通过命令+参数初始化集群
kubeadm init --kubernetes-version=v1.23.5 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap --apiserver-advertise-address=10.132.130.197 --image-repository registry.aliyuncs.com/google_containers --v=5
# apiserver-advertise-address 必须填充ip
1. 修改kubectl配置
把 kubectl 所需的 apiserver 服务地址和证书配置添加到环境变量中,否则会无权限访问 6443 端口
mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
cp -p $HOME/.bash_profile $HOME/.bash_profile.bak$(date '+%Y%m%d%H%M%S')
echo "export KUBECONFIG=$HOME/.kube/config" >> $HOME/.bash_profile
source $HOME/.bash_profile
4、配置环境变量
export KUBECONFIG=/etc/kubernetes/admin.conf
5、flannel网络搭建
需要的yaml文件:kube-flannel.yml
对应的镜像:
docker.io/flannel/flannel:v0.21.4
docker.io/flannel/flannel-cni-plugin:v1.1.2
在k8s部署包/flannel下,
先docker load -i 导入镜像,然后执行下面命令:
kubectl apply -f kube-flannel.yml
如果 flannel 的 pod 无法启动,显示 CrashLoopBackOff。通过 kubectl logs 显示 node“master“podcidr not assigned 错误,有两种解决方法:
1)安装 kubeadm Init的时候,没有增加 --pod-network-cidr 10.244.0.0/16 参数
注意,安装Flannel时,kubectl create -f https://bd.bcebos.com/datahub-online/k8s/kube-flannel.yml 如果 yml 中的 "Network": "10.244.0.0/16"和--pod-network-cidr 不一样,就修改成一样的。不然可能会使得Node间Cluster IP 不通。
如果你没有快照可以还原,采用方法(2),然后 kubectl delete pod -n kube-system kube-flannel-*, 将错误的 flannel-pod 删除,即可自动重新创建新的 flannel-pod。
如果你有恢复快照,那么在 kubeadm init 时加上 --pod-network-cidr=10.244.0.0/16 参数重新 init 即可。
在搭建完 flannel 网络后把 coredns 的 pod 删了自动重启一下应该就可以 running 了
6、节点加入集群
* 首先k8s集群的node节点同按照上述去安装kubeadmin、kubectl和kubelet,安装docker,更改服务器配置,安装nfs挂载服务
* node节点上不需要去部署集群,只需要安装好k8s的基础环境即可
* 再master节点上运行
kubeadm token create --print-join-command
kubeadm join 10.52.12.2:6443 --token 774333.jxfe29jzo86zsgfo --discovery-token-ca-cert-hash sha256:ffb898db137891d1eb88a8d0727d623312cac68dc84999a4978658b1cbeb3c35
在希望加入集群的节点执行上面命令输出的语句
在node节点上运行 kubeadm join 10.52.12.2:6443 --token 774333.jxfe29jzo86zsgfo --discovery-token-ca-cert-hash sha256:ffb898db137891d1eb88a8d0727d623312cac68dc84999a4978658b1cbeb3c35 即可加入集群中
注意:这里如果之前节点已经加入过集群了,需要做一些清理工作,否则加入不成功
重新初始化集群:kubeadm -f reset
清理网络:ifconfig查看网络,清理之前加入的网络,否则加入集群不成功
sudo ifconfig cni0 down
sudo ip link delete cni0
安装插件
1. 安装nvidia-device-plugin插件,使用gpu
1、在k8s部署包/nvidia-device-plugin文件下
2、在Gpu机器上导入镜像:docker load -i nvidia/k8s-device-plugin:1.0.0-beta6.tar
3、kubectl create -f nvidia-device-plugin.yml
1. 训练调度kube-queue的安装和使用
之前的基于k8s的调度是基于java单独写的一套,他需要不停的轮询队列去查信息进行调度,存在以下问题:
1. 与业务代码耦合,通用性差,可移植性差
2. 持续轮询,有性能瓶颈
3. 稳定性不高
基于此,我们引入了新的队列kube-queue,他基于k8s的informer机制进行时间监听和执行,kube-queue已经过大规模平台验证,稳定性比较高;我们通过编写不同的extender就可以支持job、tf-job、pytorch-job、mxnet-job等多个类型。
1)安装helm
1、在/k8s部署包/kube-queue文件夹下
2、解压:tar -zxvf helm-v3.9.3-linux-amd64.tar.gz
cp helm /usr/local/bin
# helm是一个可执行的二进制文件,可以直接执行,若是想全局执行,将文件复制到/usr/local/bin下
2)安装kube-queue
参考:http://agroup.baidu.com/zhongce_saas/md/article/4816652
1、在/k8s部署包/kube-queue文件夹下
2、解压:tar -zxvf kube-queue.tar.gz
3、cd kube-queue
修改charts/v0.1.0/templates/controller.yaml镜像拉取策略为Never
# 通过helm安装
4、helm install kube-queue -n kube-system ./charts/v0.1.0
#查看kube-queue-controller和job-extension进程是否存在
5、helm get manifest kube-queue -n kube-system | kubectl get -n kube-queue -f -
# 通过helm卸载kube-queue
6、helm uninstall kube-queue -n kube-system
3、NFS Server安装 & K8S适配NFS
1)NFS Server安装
参考:搭建NFS Server_山间漫步人生路的博客-CSDN博客
# 安装nfs server
在k8s部署包/nfs目录下安装:rpm -ivh *.rpm --force --nodeps
docker load -i busybox.tar
# 启动nfs server & 设置开机自启
systemctl start rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server
# 创建共享目录
mkdir -p /nas/k8s
chmod -R 777 /nas/k8s
# 设置共享目录
vim /etc/exports
/nas/k8s 192.168.3.0/24(insecure,rw,sync,no_root_squash)
exportfs -a # 使exports的修改生效
# 将共享目录挂载到其他服务器,需要已安装nfs-utils
mount -t nfs 10.132.130.197:/nas/k8s /nas/k8s
# 设置开机自挂载,编辑/etc/fstab,增加一条挂载记录
vim /etc/fstab
192.168.3.81:/nas/k8s /data nfs defaults 0 1
2)nfs-provisioner 插件安装
参考:http://agroup.baidu.com/zhongce_saas/md/article/4826066
需要的镜像在k8s部署包/nfs文件夹下。
在k8s部署包/nfs下导入镜像:docker load -i nfs-provisioner.tar
# 解压
tar -xvf nfs-provisioner_file.tar
cd nfs-provisioner/nfs-subdir-external-provisioner
# 设置namespace的rbac权限
NS=$(kubectl config get-contexts|grep -e "^\*" |awk '{print $5}')
NAMESPACE=${NS:-default}
sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/rbac.yaml ./deploy/deployment.yaml
kubectl create -f deploy/rbac.yaml
如有报错,参考:Error from server: Get “https://[::1]:6443/api/v1/namespaces/victor/resourcequotas“: dial tcp [::1]:_get "https://[::1]:6443/api/v1/namespaces/kube-sys_victorgk的博客-CSDN博客
配置 NFS subdir external provisioner的deploy/deployment.yaml,设置nfs地址和路径并执行,部署的时候需要指定对应的ns,并部署到指定机器上。编辑deployment.yaml,修改nfs-server的地址和共享目录
kubectl create -f deploy/deployment.yaml
执行deploy/class.yaml ,定义了NFS子目录外部提供给Kubernetes的存储目录的存储类
cd nfs-provisioner/nfs-subdir-external-provisioner
kubectl apply -f deploy/class.yaml
测试
# 创建pod,查看创建的pvc是否分配到了nfs共享目录中
kubectl create -f deploy/test-claim.yaml -f deploy/test-pod.yaml
kubectl delete -f deploy/test-pod.yaml -f deploy/test-claim.yaml
4、ingress-controller安装
参考:http://agroup.baidu.com/zhongce_saas/md/article/4890077
1、需要的tar包:ingress-nginx.tar.gz
2、镜像:
registry.baidubce.com/datahub/ingress-nginx-controller:v1.2.0
registry.baidubce.com/datahub/ingress-nginx-kube-webhook-certgen:v1.1.1
registry.cn-beijing.aliyuncs.com/google_registry/myapp:v1
3、tar包和镜像都在/k8s部署包/ingress-controller下
4、解压:tar -zxvf ingress-nginx.tar.gz
5、依次使用docker load -i导入上面的镜像
6、cd ingress-nginx
# 需要修改的地方:deploy.yaml
# externalTrafficPolicy:local -> externalTrafficPolicy: Cluster
# 如果改成Cluster, 含有kube-proxy进程的机器都可以通过端口访问。Local的话只能部署ingress-controller的那台机器可以访问。
# Service的type改成NodePort
# 安装
7、kubectl apply -f deploy.yaml
5、分布式任务的安装和使用
1、在/k8s部署包/分布式任务下
3、解压:tar -xvf training-operator.tar
4、cd training-operator
docker load -i training-operator.tar
5、kubectl apply -k manifests/overlays/standalone
6、filebeat安装
1、需要的包在/k8s部署包/filebeat下
2、解压:tar -zxvf filebeat-7.13.0-zhongcesaas.tar.gz
3、cd filebeat
# 修改的地方:filebeat/values.yaml,修改es的地址,docker
---
daemonset:
# Annotations to apply to the daemonset
annotations: {}
# additionals labels
labels: {}
affinity: {}
# Include the daemonset
enabled: true
# Extra environment variables for Filebeat container.
envFrom: []
# - configMapRef:
# name: config-secret
extraEnvs: []
# - name: MY_ENVIRONMENT_VAR
# value: the_value_goes_here
extraVolumes:
- name: extras
hostPath:
path: /home/work/docker/containers
type: DirectoryOrCreate
extraVolumeMounts:
- name: extras
mountPath: /home/work/docker/containers
readOnly: true
hostNetworking: false
# Allows you to add any config files in /usr/share/filebeat
# such as filebeat.yml for daemonset
filebeatConfig:
filebeat.yml: |
filebeat.inputs:
- type: container
paths:
- /var/log/containers/*-job-*.log
processors:
- add_kubernetes_metadata:
host: ${NODE_NAME}
matchers:
- logs_path:
logs_path: "/var/log/containers"
output.elasticsearch:
host: '${NODE_NAME}'
hosts: '${ELASTICSEARCH_HOSTS:10.138.117.28:8200}'
# 创建namespace
kubectl create ns logs
# 指定ns安装
helm install filebeat -n logs filebeat/
# 卸载
helm uninstall filebeat -n logs
注意点:es的地址需要配置对,否则连接不上es
7、job-extension安装
1、需要的yaml文件:job-extension.yaml
tar包:job-extension-vtest2.tar
2、在/k8s部署包/job-extension下
导入镜像:docker load -i job-extension-vtest2.tar
3、kubectl apply -f job-extension.yaml
8、设置任务优先级资源
1、在/k8s部署包/job-extension下
2、kubectl apply -f priorityclass.yaml
生成ca证书脚本
export clientcert=$(grep client-cert ~/.kube/config |cut -d" " -f 6)
export certauth=$(grep certificate-authority-data ~/.kube/config |cut -d" " -f 6)
export clientkey=$(grep client-key-data ~/.kube/config |cut -d" " -f 6)
echo $clientcert | base64 -d > ./client.pem
echo $clientkey | base64 -d > ./client-key.pem
echo $certauth | base64 -d > ./ca.pem
7、部署node节点参考:
k8s 集群新增 Node 文档
8、k8s集群默认存在污点策略NoSchedule,master节点不会被调度到。如果需要master节点被调度,则需要做去除操作:
kubectl taint nodes --all for-node-role.kubernetes.io/master:NoSchedule-
参考:k8s污点策略与容忍的简单应用_prefernoschedule_xhredeem的博客-CSDN博客
相关文章:
k8s最详细集群部署
安装kubeadm、kubectl、和 kubelet 这里通过百度网盘下载所需要的安装包: 链接: k8s部署包.zip_免费高速下载|百度网盘-分享无限制 提取码: 0000 1、下载部署包到本地后,在k8s部署包/k8s目录下 执行此yum命令安装:yum localinstall ./*.r…...
Redis底层数据结构:字典
在 Redis 中,字典(Dictionary)是一种常用的底层数据结构,它被用于实现 Redis 的哈希表(Hash Table)数据结构。字典用于存储键值对,它提供了快速的键值查找、插入和删除操作。 Redis 字典的特点&…...
upload 文件自动上传写法,前后端 下载流文件流
<el-uploadv-model:file-list"fileList":action"app.api/student/student/import":headers"{// Content-Type: multipart/form-data;boundary----split-boundary, 此处切记不要加,否则会造成后端报错 Required request part file is…...
Python文件、文件夹操作汇总
目录 一、概览 二、文件操作 2.1 文件的打开、关闭 2.2 文件级操作 2.3 文件内容的操作 三、文件夹操作 四、常用技巧 五、常见使用场景 5.1 查找指定类型文件 5.2 查找指定名称的文件 5.3 查找指定名称的文件夹 5.4 指定路径查找包含指定内容的文件 一、概览 在…...
CHM Viewer Star 6.3.2(CHM文件阅读)
CHM Viewer Star 是一款适用于 Mac 平台的 CHM 文件阅读器软件,支持本地和远程 CHM 文件的打开和查看。它提供了直观易用的界面设计,支持多种浏览模式,如书籍模式、缩略图模式和文本模式等,并提供了丰富的功能和工具,如…...
【GIT】git分支命令,使用分支场景介绍git标签介绍,git标签命令,git标签使用的场景git查看提交历史
目录 一,git分支命令,使用分支场景介绍 二,git标签介绍,git标签命令,git标签使用的场景 三,git查看提交历史 前言: 今天我们来聊聊关于Git 分支管理。几乎每一种版本控制系统都以某种形式支持…...
Zeitgeist ZTG Token以及其预测市场加入Moonbeam生态
波卡上的首选多链开发平台Moonbeam宣布与Zeitgeist达成XCM集成,将ZTG Token引入Moonbeam。此集成将使波卡内的Moonbeam和Zeitgeist网络之间的流动性得以流动,并通过Moonbeam的互连合约实现远程链集成。 Zeitgeist是一个基于波卡的Substrate区块链框架构…...
AM@方向导数概念和定理
文章目录 abstract方向导数二元函数方向导数偏导数是方向导数的特例偏导数存在一定有对应的方向导数存在方向导数存在不一定有偏导数存在例 三元函数方向导数例 方向导数存在定理和计算公式证明二元函数三元函数 abstract 方向导数的概念,定理和计算公式方向导数是对偏导的补充…...
微信小程序隐私政策不合规,应当由用户自主阅读后自行选择是否同意隐私政策协议,不得默认强制用户同意
小程序隐私政策不合规,默认自动同意《用户服务协议》及《隐私政策》,应当由用户自主阅读后自行选择是否同意隐私政策协议,不得默认强制用户同意,请整改后再重新提交。 把 登录代表同意《用户协议》和《隐私政策》 改为 同意《用…...
Python中如何判断两个对象的内存地址是否一致?
目录 一、引言 二、Python的内存管理 三、对象的比较 四、使用id函数判断内存地址 五、总结 一、引言 在Python中,我们经常需要比较两个对象是否是同一个对象,或者说它们是否在内存中占据同一位置。在理解这个问题之前,我们需要了解Pyt…...
唯美仙侠3D手游2023【仙变3】画面精美/linux服务端+双端+GM后台+运营后台+详细教程
搭建资源下载地址:https://www.ldmzy.com/6618/6618.html...
React组件通信:如何优雅地实现组件间的数据传递
在React应用中,组件通信是至关重要的一部分。通过合适的数据传递和交互方式,我们可以构建出更加灵活和高效的前端应用。本文将介绍React组件通信的各种方式,并提供代码实现,帮助你更好地理解和应用这些技术。 1. 使用props进行父子…...
数据分析实战 | 逻辑回归——病例自动诊断分析
目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 九、模型调参 十、模型预测 一、数据及分析对象 CSV文件——“bc_data.csv” 数据集链接:https://download.csdn.net/d…...
Eigen::Matrix<double,3,1> F;Eigen::MatrixXd F (3, 2);这两行代码有什么区别?
这两行代码的区别在于定义的矩阵 F 的类型和维度不同。 第一行: Eigen::Matrix<double,3,1> F;这行代码创建了一个3x1的矩阵 F,其中元素类型为 double。这是一个静态大小的矩阵,其维度在编译时确定。 第二行: Eigen::Ma…...
Java Agent - 应用程序代理-笔记
Java Agent - 应用程序代理-笔记 概述说明 Java Agent 又叫做 Java 探针,该功能是 Java 虚拟机提供的一整套后门,通过这套后门可以对虚拟机方方面面进行监控与分析,甚至干预虚拟机的运行。 是在 JDK1.5 引入的一种可以动态修改 Java 字节码…...
gird 卡片布局
场景一:单元格大小相等 这承载了所有 CSS Grid 中最著名的片段,也是有史以来最伟大的 CSS 技巧之一: 等宽网格响应式卡片实现 .section-content {display: grid;grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));gap: 10px; …...
C#医学检验室(LIS)信息管理系统源码
LIS:实验室信息管理系统 (Laboratory Information Management System简称:LIS)。 LIS 是面向医院检验科、检验中心、动物实验所、生物医疗研究所等科研单位研发的集数据采集、传输、存储、分析、处理、发布等功能于一体的信息管理系统。 一、完善的质控: 从样本管理…...
建行广东江门分行:科技赋能,数据助力纠“四风”
为进一步深化落实中央八项规定精神,持续加大“四风”问题查处力度,建行驻江门市分行纪检组根据《广东省分行贯彻落实中央八项规定精神持之以恒纠治“四风”实施方案》(建粤党发〔2023〕1号)安排,对驻在市分行开展“四风…...
3164:练27.1 叮叮当当 《信息学奥赛一本通编程启蒙(C++版)》
3164:练27.1 叮叮当当 《信息学奥赛一本通编程启蒙(C版)》 【题目描述】 松鼠老师和尼克玩报数游戏。松鼠老师数到2的倍数时,尼克就说“叮叮”;松鼠老师数到3的倍数时,尼克就说“当当”;松鼠老…...
立体库堆垛机放货动作控制程序功能
放货动作程序功能块 DB11.DBX0.0 为左出货台有货 DB11.DBX1.0 为右出货台有货 左出货台车就位 DB11.DBX0.2 右出货台车就位 DB11.DBX1.2 左出货台车就位 DB11.DBX0.2 右出货台车就位 DB11.DBX1.2 左出货台车就位 DB11.DBX0.2 右出货台车就位 DB11.DBX1.2...
大模型训练监控利器:wandb可视化实战全解析
1. 为什么你需要wandb来监控大模型训练 当你正在训练一个参数量超过10亿的大模型时,最让人头疼的问题是什么?对我来说,最痛苦的就是看着黑漆漆的命令行窗口,完全不知道模型训练到哪一步了,效果怎么样。我曾经遇到过训练…...
喔去,litellm 竟然被投毒了,赶紧检查你的机器中招了没有驴
一、什么是setuptools? setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你: 定义 Python 包的元数据(如名称、版本、作者等)。 声明包的依赖项,确保你的包能够正确运行。 构建源代码分发包&…...
中小企业必看:Gemma 4 企业级私有化部署全流程(避坑指南)
中小企业必看:Gemma 4 企业级私有化部署全流程(避坑指南) 前言 对中小企业来说,AI大模型不用追求“参数越高越好”,核心是“低成本、易部署、能商用、保隐私”——而谷歌最新开源的Gemma 4,刚好踩中所有痛…...
Pharma Agent:从文档 QA 到智能监管合规助手
一、起因 去年秋天,我们的 RA(法规事务)团队在准备一个 IND 申请,涉及某小分子靶向药的临床前安全性综述。团队里有个同事叫小林,她需要在 FDA 的 2000 多页 guidance document 里找到关于"杂质阈值"的具体条款,同时对比 ICH Q3A 和 Q3B 的差异。 她给我发消…...
避坑指南:在Atlas200DK上跑通摄像头物体检测样例,我解决了ATC卡住和Swap空间不足
Atlas200DK实战避坑:模型转换卡顿与内存不足的终极解决方案 当你满怀期待地将摄像头连接到Atlas200DK开发板,准备运行物体检测样例时,系统却无情地抛出一连串错误——这可能是每个昇腾开发者都经历过的挫败时刻。本文将聚焦两个最具代表性的&…...
【大模型工程化能效优化黄金法则】:20年实战总结的7大降耗策略,省电37%实测数据首次公开
第一章:大模型工程化中的能效优化策略 2026奇点智能技术大会(https://ml-summit.org) 大模型推理与训练的能耗问题已不再仅是运维成本考量,而是关乎碳中和承诺、边缘部署可行性及长期服务SLA稳定性的核心工程约束。在千卡级集群与百亿参数模型常态化落地…...
SITS2026发布倒计时72小时:大模型工程化工具选型黄金三角模型(兼容性×可观测性×合规性)首次披露
第一章:SITS2026发布:大模型工程化工具链图谱 2026奇点智能技术大会(https://ml-summit.org) SITS2026(Scalable Intelligent Toolchain Summit 2026)正式发布面向生产级大模型落地的全栈工程化工具链图谱,聚焦模型开…...
WPF网格布局实战:从基础定义到动态行列操作
1. WPF网格布局基础入门 第一次接触WPF的Grid布局时,我完全被它强大的灵活性震撼到了。这就像小时候玩的乐高积木,通过行列组合可以搭建出任何你想要的界面结构。Grid是WPF中最常用的布局容器之一,它通过二维网格系统来组织子元素,…...
手把手教学:基于Anything V5的Web服务搭建与使用详解
手把手教学:基于Anything V5的Web服务搭建与使用详解 1. 概述与准备工作 1.1 Anything V5简介 Anything V5是基于Stable Diffusion技术构建的AI图像生成模型,能够根据文字描述生成高质量的图片。相比标准版Stable Diffusion,Anything V5在…...
微信小程序头像昵称获取报错?别慌,手把手教你排查‘api scope is not declared’问题
微信小程序头像昵称获取报错?三步定位‘api scope is not declared’问题根源 最近在调试微信小程序时,突然遇到一个让人头疼的报错:chooseAvatar:fail api scope is not declared in the privacy agreement。这个错误看似简单,实…...
