最近在研究 AI Gateway,除了常见的 DIFY、Apache APISIX 等方案之外,也关注到了阿里云开源的 Higress。
Higress 是一个云原生 API Gateway,同时也提供了面向 AI 场景的相关能力。这次不使用 Docker Compose,而是直接使用 Podman Kube 部署 Higress All-in-One。
这样也可以和我服务器上其他使用 Podman Kube 管理的服务保持统一。
1. 准备工作
首先创建 Higress 工作目录:
mkdir -p /opt/data/higress
cd /opt/data/higress
后续 Higress 容器中的 /data 会挂载到这个目录,用于保存相关配置和数据。
2. 创建 Podman Kube YAML
创建 higress-ai.yaml:
nano higress-ai.yaml
写入以下内容:
apiVersion: v1
kind: Pod
metadata:
name: higress-ai
spec:
containers:
- name: higress-ai
image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
ports:
- containerPort: 8001
hostPort: 8001
protocol: TCP
- containerPort: 8080
hostPort: 8080
protocol: TCP
- containerPort: 8443
hostPort: 8443
protocol: TCP
volumeMounts:
- name: higress-data
mountPath: /data
volumes:
- name: higress-data
hostPath:
path: /opt/data/higress
type: DirectoryOrCreate
3. 启动 Higress
执行:
podman kube play higress-ai.yaml
查看 Pod:
podman pod ps
查看容器:
podman ps
如果启动正常,可以看到 higress-ai Pod 正常运行。
4. 查看日志
查看 Higress 日志:
podman logs higress-ai-higress-ai
实时查看日志:
podman logs -f higress-ai-higress-ai
如果不确定容器名称,可以直接执行:
podman ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"
5. 端口说明
这次部署映射了三个端口:
| 宿主机端口 | 容器端口 | 用途 |
|---|---|---|
| 8001 | 8001 | Higress UI 控制台入口 |
| 8080 | 8080 | 网关 HTTP 协议入口 |
| 8443 | 8443 | 网关 HTTPS 协议入口 |
本次使用 Podman Kube 部署,因此将三个端口直接映射到宿主机:
ports:
- containerPort: 8001
hostPort: 8001
protocol: TCP
- containerPort: 8080
hostPort: 8080
protocol: TCP
- containerPort: 8443
hostPort: 8443
protocol: TCP
部署完成后,可以通过访问Higress控制台:
http://服务器IP:8001/
6. 停止 Higress
使用 Podman Kube 部署后,可以直接通过 YAML 文件停止并删除 Pod:
podman kube down higress-ai.yaml
这个操作会删除对应的 Pod 和容器,但不会删除宿主机上的:
/opt/data/higress
因此挂载到 /data 的数据可以继续保留。
7. 重新启动 Higress
需要重新启动时,再执行:
cd /opt/data/higress
podman kube play higress-ai.yaml
Podman 会根据 YAML 文件重新创建 Higress Pod。
8. 更新 Higress
由于这里使用的是 latest 标签,因此后续需要更新 Higress 时,可以先拉取最新镜像:
podman pull higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest && \
podman kube down higress-ai.yaml && \
podman kube play higress-ai.yaml
这样就完成了一次 Higress 镜像更新。
发表回复