标签: AI Gateway

  • 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 镜像更新。