Higress 部署:使用 Podman Kube 搭建 AI Gateway

作者:

最近在研究 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. 端口说明

这次部署映射了三个端口:

宿主机端口容器端口用途
80018001Higress UI 控制台入口
80808080网关 HTTP 协议入口
84438443网关 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 镜像更新。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注