前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于LLM的AI OPS 探索系列-部署一个基于 Ollama 的私有ChatGPT

基于LLM的AI OPS 探索系列-部署一个基于 Ollama 的私有ChatGPT

原创
作者头像
行者深蓝
修改2024-07-15 12:53:37
2100
修改2024-07-15 12:53:37
举报
文章被收录于专栏:云原生应用工坊

概述

在本次 workshop 中,我们将在前一篇设置好的 K3S/GPU 集群、安装 NVIDIA 驱动和插件的基础上,演示如何部署一个基于 Ollama 的 Open WebUI。

前提条件

  1. 准备一个 AWS GPU 云实例(例如 g5.xlarge/Ubuntu 22.04)
  2. 具备基本的 Kubernetes 和 Helm 知识
  3. 完成 K3S/GPU 集群的初始化,安装 NVIDIA 驱动和插件

名称

实例

详情

硬件

AWS EC2 g5.xlarge

带有一个 NVIDIA A10G Tensor Core GPU

系统

Ubuntu 22.04

nvidia-container-toolkit

软件

K3S 1.29、Ollama、OpenWebUI

ChatGPT with llama3:8b

设置 K3S 和 Ingress

为了能让部署 Open WebUI可以使用域名访问,需要设置 NGINX Ingress。请按照以下步骤创建必要的值和配置文件。

代码语言:bash
复制
cat > value.yaml <<EOF
controller:
  nginxplus: false
  ingressClass: nginx
  replicaCount: 2
  service:
    enabled: true
    type: NodePort
    externalIPs:
      - your-external-ip
EOF
代码语言:bash
复制
cat > nginx-cm.yaml <<EOF
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-nginx-ingress
  namespace: ingress
data:
  use-ssl-certificate-for-ingress: "false"
  external-status-address: your-external-ip
  proxy-connect-timeout: 10s
  proxy-read-timeout: 10s
  client-header-buffer-size: 64k
  client-body-buffer-size: 64k
  client-max-body-size: 1000m
  proxy-buffers: 8 32k
  proxy-body-size: 1024m
  proxy-buffer-size: 32k
EOF
代码语言:bash
复制
复制代码
cat > nginx-svc-patch.yaml <<EOF
spec:
  ports:
  - name: http
    nodePort: 80
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    nodePort: 443
    port: 443
    protocol: TCP
    targetPort: 443
EOF

安装 NGINX Ingress

运行以下命令以添加 NGINX 仓库、更新并安装 Ingress:

代码语言:bash
复制
helm repo add nginx-stable https://helm.nginx.com/stable || echo true
helm repo update
kubectl create namespace ingress || echo true
helm upgrade --install nginx nginx-stable/nginx-ingress --version=0.15.0 --namespace ingress -f value.yaml
kubectl apply -f nginx-cm.yaml
kubectl patch svc nginx-nginx-ingress -n ingress --patch-file nginx-svc-patch.yaml

部署 open-webui

首先添加 open-webui Helm 仓库。这个仓库中包含了基于 Ollama 的 ChartGPT,在安装过程中,可以通过提供自定义 values.yaml 文件来配置 Chart 的参数。

代码语言:bash
复制
kubectl create secret tls chartgpt-tls --key=/etc/ssl/onwalk.net.key --cert=/etc/ssl/onwalk.net.pem

cat > values.yaml << EOF
ollama:
  enabled: true
  fullnameOverride: "open-webui-ollama"
  models:
    - llama3
  gpu:
    enabled: true
    type: 'nvidia'

ingress:
  enabled: true
  class: "nginx"
  host: "chatgpt.onwalk.net"
  tls: true
  existingSecret: "chartgpt-tls"

extraEnvVars:
  - name: OPENAI_API_KEY
    value: "0p3n-w3bu!"
EOF
helm repo add open-webui https://helm.openwebui.com/
helm repo update
helm upgrade --install chartgpt open-webui/open-webui -f values.yaml

访问 OpenWebUI

安装完成,配置DNS解析后,使用浏览器打开 https://chartgpt.onwalk.net 访问 Open WebUI 界面。

总结与扩展

通过本次 workshop,您将学习如何在 AWS 上设置支持 GPU 的 Kubernetes 集群,并部署和演示基于 Ollama 的 Open WebUI。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 前提条件
  • 设置 K3S 和 Ingress
  • 安装 NGINX Ingress
  • 部署 open-webui
  • 访问 OpenWebUI
  • 总结与扩展
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档