Posts
使用 vLLM 应用验证推理节点
· ☕ 1 分钟
1. 制作镜像 为了方便测试,这里将模型文件打包到镜像中。 下载模型 1 2 3 4 git clone https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat cd Qwen1.5-1.8B-Chat && git lfs pull rm -rf .git cd .. 编写 Dockerfile 1 2 3 4 5 cat <<EOF > Dockerfile FROM vllm/vllm-openai:latest RUN mkdir -p /models/Qwen1.5-1.8B-Chat COPY Qwen1.5-1.8B-Chat/* /models/Qwen1.5-1.8B-Chat EOF 编译镜像 1 nerdctl build --platform=amd64 -t registry-1.docker.io/shaowenchen/demo-vllm-qwen:1.5-1.8b-chat-amd64 . 推送镜像 1 nerdctl push --platform=amd64 registry-1.docker.io/shaowenchen/demo-vllm-qwen:1.5-1.8b-chat-amd64 为了方便国内的集群测试,我将镜像推送到了阿里云的容器镜像服务

AI 应用开发技术栈
· ☕ 4 分钟
Embedding 模型 Embedding 模式将高维度的数据映射到低维度的空间,这样有利于数据的处理和分析。 文本模型 这里有一个排行榜,https://huggingface.co/spaces/mteb/leaderboard 在上面的排行榜中,会给出模型的评分,模型的参数量

在 Kubernetes 部署 Jumpserver 跳板机
· ☕ 3 分钟
1. 部署 Jumpserver 需要提前准备好 StorageClass,用于存储 Jumpserver 的数据。除了下面提到的数据库,各个组件 jms-core、jms-web、jms-koko、jms-lion、jms-chen 都需要一个 PV 存储。 1.1 部署 MySQL 参考 https://github.com/shaowenchen/hubimage/blob/main/database/mysql8.yaml ,部署 MySQL。 需要调整

使用 Ops 项目查看并监控集群事件
· ☕ 2 分钟
https://github.com/shaowenchen/ops 1. 告警 Kubernetes 集群的事件 监控指定的关键字 1 2 3 4 5 6 7 8 9 10 11 apiVersion: crd.chenshaowen.com/v1 kind: EventHooks metadata: name: kube-pod-falid namespace: ops-system spec: type: xiezuo url: https://xz.wps.cn/api/v1/webhook/send?key= subject: "ops.clusters.*.namespaces.*.pods.*.event" keywords: - failed 一份简单的配置,即可收获大量的相关告警。 监控之后,自动化处理 1 2 3 4 5 6 7 8 9 10 11 12 apiVersion: crd.chenshaowen.com/v1 kind: EventHooks metadata: name: kube-no-free-node namespace: ops-system spec: additional: "action: restart-kubelet-bypod" keywords: - no free node subject: ops.clusters.*.namespaces.*.pods.*.event type: webhook url: http://x.x.x.x/webhook 借助 Ops Copilot 的执

使用 Fluid 和 S3FS 对接 S3 存储及性能测试
· ☕ 2 分钟
本文使用的是 Fluid 1.0 版本,高版本的配置文件路径发生了变化,需要根据实际情况调整。 1. 制作镜像 1.1 fluid_config_init.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #!/usr/bin/env python import json import os rawStr = "" with open("/etc/fluid/config.json", "r") as f: rawStr = f.readlines() rawStr = rawStr[0] script = """ #!/bin/sh set -ex MNT_TO=$targetPath trap "umount ${MNT_TO}" SIGTERM mkdir -p ${MNT_TO}