绝了!k3s (k8s) 安装 ollama 运行 deepseek 全流程揭秘,yaml全公开
在容器编排领域,k3s (k8s) 无疑是备受关注的存在。本文重点介绍如何在 k3s (k8s) 环境中安装 ollama,并运行 deepseek。首先,我们需要关注一个关键的 yaml 文件 —— ollama.yaml。这个文件如同整个部署流程的指挥棒,规定了各项参数和配置信息。ollama.yaml 的内容如下:
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
# https://cloud.tencent.com/developer/article/2495842 环境变量apiVersion: apps/v1kind: Deploymentmetadata: labels: app: ollama name: ollama namespace: moonfddspec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: ollama template: metadata: labels: app: ollama spec: containers: - env: - name: OLLAMA_HOST value: "0.0.0.0" - name: OLLAMA_PORT value: "11434" - name: OLLAMA_NUM_PARALLEL value: "20" # 默认是1 - name: OLLAMA_ORIGINS value: "*" - name: OLLAMA_MODELS value: "/root/.ollama/models" image: 'ollama/ollama:0.5.12' command: ["ollama", "serve"] imagePullPolicy: IfNotPresent name: ollama volumeMounts: - mountPath: /root/.ollama/models/ name: data resources: # nvidia.com/gpu: 1 # memory: "24Gi" # limits: # cpu: 200m # memory: 200Mi # requests: # cpu: 100m # memory: 100Mi - image: 'ollama/ollama:0.5.12' command: ["sh", "-c", "while true; do ollama run deepseek-r1:1.5b; sleep 5; done"] imagePullPolicy: IfNotPresent name: ollamacmd volumes: - name: data hostPath: path: /root/k8s/moonfdd/ollama/root/.ollama/models/ type: DirectoryOrCreate---apiVersion: v1kind: Servicemetadata: labels: app: ollama name: ollama namespace: moonfddspec: ports: - name: 11434-11434 port: 11434 protocol: TCP targetPort: 11434 nodePort: 11434 selector: app: ollama type: NodePort登录后复制
?ollama 安装与运行实际效果展示
安装和运行 ollama 的命令如下:
kubectl apply -f ollama.yaml登录后复制
运行结果如下:




?Go 语言调用 deepseek 接口代码分析
仅仅运行 ollama 环境还不够,还需要有与之交互的代码来发挥其功能。这里展示了 Go 语言调用 deepseek 接口的代码:
package mainimport ("bufio""bytes""encoding/json""fmt""net/http""time")
type Message struct {Role string json:"role"Content string json:"content"}
// 修改请求结构体,添加 Stream 字段type DeepSeekRequest struct {Model string json:"model"Messages []Message json:"messages"MaxTokens int json:"max_tokens,omitempty"Temperature float64 json:"temperature,omitempty"Stream bool json:"stream" // 新增流式控制字段}
// 保持其他结构体不变...
const (localAPIURL = "https://www.php.cn/link/d50b2d3afe5ec033d560dd1318b2707b")
func main() {fmt.Println("开始")requestData := DeepSeekRequest{Model: "deepseek-r1:1.5b",Messages: []Message{{Role: "user",Content: "微信公众号 福大大架构师每日一题 是谁",},},MaxTokens: 512000,Temperature: 1,Stream: true, // 启用流式模式}requestBody, err := json.Marshal(requestData)if err != nil {panic("JSON编码失败: " + err.Error())}
// 配置更合理的超时时间client := &http.Client{ Transport: &http.Transport{ DisableKeepAlives: true, // ? 关键设置:禁用连接复用 MaxIdleConns: 1, IdleConnTimeout: 30 * time.Second, }, Timeout: 10 * time.Minute, // 大模型响应时间较长}req, err := http.NewRequest("POST", localAPIURL, bytes.NewBuffer(requestBody))if err != nil { panic("创建请求失败: " + err.Error())}req.Header.Set("Content-Type", "application/json")req.Header.Set("Connection", "close") // 显式关闭连接req.Close = trueresp, err := client.Do(req)if err != nil { panic("请求发送失败: " + err.Error())}defer resp.Body.Close()// 流式响应处理if resp.StatusCode != http.StatusOK { fmt.Printf("请求失败,状态码:%d\n", resp.StatusCode) return}// 使用 Scanner 逐行读取流式响应scanner := bufio.NewScanner(resp.Body)scanner.Buffer(make([]byte, 1024), 10*1024*1024) // 扩大缓冲区for scanner.Scan() { rawData := scanner.Bytes() if len(rawData) == 0 { continue } var chunk DeepSeekChunk err := json.Unmarshal(rawData[6:], &chunk) if err == nil { for i := 0; i < len(chunk.Choices); i++ { if chunk.Choices[i].Delta.Content != "" { fmt.Print(chunk.Choices[i].Delta.Content) } } }}if err := scanner.Err(); err != nil { fmt.Printf("读取响应时发生错误: %v\n", err)}登录后复制}
type DeepSeekChunk struct {Choices []struct {Delta struct {Content string json:"content"} json:"delta"} json:"choices"}
运行结果如下:
官网运行结果如下:
官网不联网运行结果如下:
?实际意义与展望
通过在 k3s (k8s) 上完成 ollama 的安装并运行 deepseek,以及编写 Go 语言调用接口代码这一系列操作,具有多方面的实际意义和深远的展望。从技术层面而言,这为开发者在特定的容器编排环境下集成模型服务提供了一套可参考的方法和实践经验。无论是对于后续想要在相似环境里部署其他模型,还是改进和优化当前模型的运行方式,都提供了宝贵参考范例。从应用场景角度来看,能够在这样的技术栈下调用模型进行文本处理、问答交互等,都能为诸多实际项目开发提供强大助力。比如开发智能客服系统、智能助手应用等。展望未来,这种技术实践将不断推动相关技术的发展和融合。随着模型的不断升级迭代,我们可以期待更多强大功能能够被整合进这样的环境里。同时,通过持续改进和优化 yaml 文件配置以及代码实现细节,将进一步提升系统的性能和稳定性。也相信会有更多开发者基于此进行创新和拓展,探索出更多的应用可能和技术思路。就像一颗石子投入平静湖面,会泛起层层涟漪般,这项技术实践也将在整个技术领域里引发新的探索和变革浪潮。
相关攻略
新京报贝壳财经讯(记者韦英姿)3月30日,企业微信CLI(命令行界面)开源项目上架GitHub社区,开放消息、日程、文档、智能表、会议、待办、通讯录等七大产品能力,支持主流AI Agent(如Cla
虫虫漫画正版官网入口详解 大家一直在找的虫虫漫画正版官网,其实就是 https: www chongchongmanhua com 。不过话说回来,光知道个网址可能还不够,你得清楚它到底好在哪里。我花了些时间仔细体验了一番,发现它的门道还真不少,尤其是内容组织、阅读体验和一些贴心的小功能,做得相当
微信朋友圈纯文字发布攻略:四种方法,总有一款适合你 有时候,就想在朋友圈发一段纯粹的文字,不配图,不挂链接,只是安静地说点心里话。但微信偏偏把发朋友圈的入口设计成那个相机图标,一点进去默认就是选照片,这让很多朋友犯了难:到底怎么才能发一条“干干净净”的纯文字动态呢? 别急,这事儿其实有好几种解法。我
4月1日消息,微信员工“客村小蒋”晒出了当年微信开发第一个版本用的测试机——iPod touch 4。他表示:“可能当年的大家也都没有想到,微信可以到今天的样子,影响了我们很多人沟通的方式”。iPo
IT之家 4 月 1 日消息,微信员工 @客村小蒋 今日晒出了当年微信开发第一个版本用的测试机。从图片来看,应该是苹果 iPod touch(第 4 代)。微信员工 @客村小蒋 透露,受筹建中的计算
热门专题
热门推荐
加密货币行业翘首以盼的监管里程碑,终于有了实质性进展。美国证券交易委员会(SEC)主席保罗·阿特金斯(Paul Atkins)近日证实,那份允许加密项目在早期获得注册豁免权的“安全港”框架提案,已经正式送抵白宫,进入了最终审查阶段。 在范德堡大学与区块链协会联合举办的数字资产峰会上,阿特金斯透露了这
微策略Strategy报告:第一季录得144 6亿美元浮亏 再斥资约3 3亿美元买进4871枚比特币 市场震荡的威力有多大?看看Strategy的最新季报就明白了。根据其最新向美国证管会(SEC)提交的8-K报告,受市场剧烈波动影响,这家公司所持的比特币在第一季度录得了一笔惊人的数字——144 6亿
稳定币巨头Tether的动向,向来是加密世界的风向标。这不,它向Web3基础设施的版图扩张,又迈出了关键一步。公司执行长Paolo Ardoino在社交平台X上透露,其工程团队正在全力“烹制”一个新项目——去中心化搜索引擎 “Hypersearch”。这个消息一出,立刻引发了行业的广泛猜想。 采用D
基地位于Coinbase旗下以太坊Layer2网络Base的Seamless Protocol,日前正式宣告了服务的终结。这个曾经吸引了超过20万用户的原生DeFi借贷协议,在运营不到三年后,终究没能跑赢时间。它主打的核心产品是Integrated Leverage Markets(ILMs)——一
PAAL代币揭秘:深度解析Web3社区治理的核心钥匙 在去中心化自治组织的浪潮中,谁真正掌握了项目的话语权?PAAL代币提供了一套系统化的答案。它不仅是生态内流转的价值媒介,更是开启链上治理大门的核心凭证。通过持有并质押PAAL代币,用户能够对协议升级、资金分配乃至战略方向等关键事务投出决定性的一票








