Apache APISIX 是一款高性能、实时的 API 网关,支持负载均衡、动态上游、金丝雀发布、熔断、认证、可观测性等功能。Bitnami Apache APISIX Helm Chart 用于在 Kubernetes 集群上通过 Helm 包管理器快速部署和配置 Apache APISIX,简化其在容器化环境中的部署流程。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/apisix
自 2025 年 8 月 28 日起,Bitnami 将调整其公共镜像目录,推出 Bitnami Secure Images 计划,主要变更包括:
docker.io/bitnamilegacy 仓库,不再更新。详情参见 Bitnami Secure Images 公告。
确保集群满足以下要求:
使用默认配置安装,发布名称为 my-release:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/apisix
通过 --set 参数或自定义 values 文件覆盖默认配置:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/apisix \ --set dataPlane.replicaCount=3 \ --set etcd.enabled=false \ --set externalEtcd.hosts={external-etcd-host}
Apache APISIX 支持多种部署模式,可通过 Helm 参数切换。
控制平面(Control Plane)和数据平面(Data Plane)分离部署,适用于大规模集群:
yaml# 默认配置无需额外设置 dataPlane: enabled: true # 数据平面启用 controlPlane: enabled: true # 控制平面启用 etcd: enabled: true # 内置 etcd 启用
控制平面和数据平面合并部署:
yamldataPlane: enabled: false # 禁用独立数据平面 controlPlane: extraConfig: deployment: role: traditional # 设置为传统模式 role_traditional: config_provider: etcd # 使用 etcd 存储配置 service: extraPorts: # 暴露 HTTP/HTTPS 端口 - name: http port: 80 targetPort: 9080 - name: https port: 443 targetPort: 9443
无需 etcd,使用本地文件存储配置(适用于小规模或边缘场景):
yamlcontrolPlane: enabled: false # 禁用控制平面 ingressController: enabled: false # 禁用 Ingress Controller etcd: enabled: false # 禁用 etcd dashboard: enabled: false # 禁用 Dashboard dataPlane: extraConfig: deployment: role_data_plane: config_provider: yaml # 使用 YAML 文件配置 extraVolumes: # 挂载包含路由配置的 ConfigMap - name: routes configMap: name: apisix-routes extraVolumeMounts: - name: routes mountPath: /usr/local/apisix/conf/apisix.yaml subPath: apisix.yaml extraDeploy: # 部署路由配置 ConfigMap - apiVersion: v1 kind: ConfigMap metadata: name: apisix-routes data: apisix.yaml: |- routes: - uri: /hello upstream: nodes: "127.0.0.1:1980": 1 type: roundrobin
通过以下配置启用 metrics 采集:
yamldataPlane: metrics: enabled: true # 启用数据平面 metrics controlPlane: metrics: enabled: true # 启用控制平面 metrics
yamldataPlane: metrics: serviceMonitor: enabled: true # 创建 ServiceMonitor 对象 controlPlane: metrics: serviceMonitor: enabled: true
注意:需先部署 Prometheus Operator 及相关 CRD(可使用 Bitnami Kube Prometheus Helm Chart)。
如需使用外部 etcd 而非内置实例:
yamletcd: enabled: false # 禁用内置 etcd externalEtcd: hosts: # 外部 etcd 节点列表 - external-etcd-0.example.com - external-etcd-1.example.com port: 2379 # etcd 端口(默认 2379) tls: # 如需 TLS 认证 enabled: true existingSecret: etcd-tls-secret # 包含 etcd 证书的 Secret 名称
通过 Ingress 暴露 APISIX 服务:
yamlingress: enabled: true # 启用 Ingress hostname: apisix.example.com # 域名 tls: true # 启用 TLS annotations: kubernetes.io/ingress.class: nginx # 指定 Ingress Controller
使用现有 Secret:创建包含 TLS 证书的 Secret(名称格式为 <hostname>-tls),例如:
bashkubectl create secret tls apisix-example-com-tls \ --cert=path/to/tls.crt \ --key=path/to/tls.key
通过 cert-manager 自动签发:添加 cert-manager 注解:
yamlingress: annotations: cert-manager.io/cluster-issuer: letsencrypt-prod
| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库地址 | "" |
global.imagePullSecrets | 镜像拉取密钥列表 | [] |
global.security.allowInsecureImages | 是否允许不安全镜像(跳过校验) | false |
global.compatibility.openshift.adaptSecurityContext | 适配 OpenShift 安全上下文(auto/force/disabled) | auto |
| 参数名 | 描述 | 默认值 |
|---|---|---|
nameOverride | 覆盖资源名称前缀 | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
image.registry | APISIX 镜像仓库 | docker.io/bitnami |
image.repository | APISIX 镜像名称 | apisix |
image.pullPolicy | 镜像拉取策略 | IfNotPresent |
diagnosticMode.enabled | 启用诊断模式(禁用探针,覆盖命令) | false |
| 参数名 | 描述 | 默认值 |
|---|---|---|
dataPlane.enabled | 是否启用数据平面 | true |
dataPlane.replicaCount | 数据平面副本数 | 1 |
dataPlane.useDaemonSet | 是否以 DaemonSet 部署 | false |
dataPlane.hostNetwork | 是否使用主机网络 | false |
dataPlane.resources | 资源请求与限制 | {} |
dataPlane.metrics.enabled | 是否启用 metrics | false |
| 参数名 | 描述 | 默认值 |
|---|---|---|
controlPlane.enabled | 是否启用控制平面 | true |
controlPlane.replicaCount | 控制平面副本数 | 1 |
controlPlane.extraConfig | 额外配置(如部署模式、路由规则) | {} |
controlPlane.metrics.enabled | 是否启用 metrics | false |
consolehelm upgrade my-release oci://registry-1.docker.io/bitnamicharts/apisix
如需更新 Dashboard 密码:
consolehelm upgrade my-release oci://registry-1.docker.io/bitnamicharts/apisix \ --set dashboard.password=new-strong-password
或使用现有 Secret:
consolehelm upgrade my-release oci://registry-1.docker.io/bitnamicharts/apisix \ --set dashboard.existingSecret=new-dashboard-secret
consolehelm uninstall my-release
注意:卸载不会自动删除持久卷(PV)和 etcd 数据,需手动清理。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429