kong/gateway-operator-oss本镜像为 Kong Gateway 的 Kubernetes Operator 官方容器镜像,基于 Kong Gateway Operator 项目构建。该 Operator 旨在通过 Kubernetes 原生的声明式 API(CustomResourceDefinition, CRD)自动化管理 Kong Gateway 的全生命周期,简化在 Kubernetes 集群中部署、配置、升级和维护 Kong Gateway 的流程。
KongGateway CRD 定义 Gateway 规格,Operator 自动创建 Deployment、Service、ConfigMap 等底层资源。KongGateway、KongPlugin、KongRoute 等 CRD 定义 Gateway 配置,替代手动修改配置文件。KongPlugin CRD 声明式管理 Kong 插件,支持全局/路由级插件配置。Kong Gateway Operator 支持通过 Helm Chart 或 直接应用 Manifest 文件 部署。推荐使用 Helm 简化依赖管理。
方式一:通过 Helm 部署(推荐)
bash# 添加 Kong Helm 仓库 helm repo add kong [***] helm repo update # 部署 Kong Gateway Operator(默认部署至 kong 命名空间) helm install gateway-operator kong/gateway-operator --namespace kong --create-namespace
方式二:直接应用 Manifest 文件
bash# 下载官方部署 manifest kubectl apply -f [***]
部署 Operator 后,通过创建 KongGateway CRD 资源声明式定义 Gateway 实例。
创建 kong-gateway.yaml:
yamlapiVersion: gateway.konghq.com/v1beta1 kind: KongGateway metadata: name: my-kong-gateway namespace: default spec: # 指定 Kong Gateway 镜像版本(默认使用与 Operator 兼容的最新稳定版) image: kong/kong-gateway:3.6 # 数据平面副本数 replicas: 2 # 服务类型(ClusterIP/NodePort/Load***) service: type: Load*** # 资源限制 resources: requests: cpu: 100m memory: 256Mi limits: cpu: 1000m memory: 1Gi # 启用 Admin API(仅集群内访问) admin: enabled: true service: type: ClusterIP
应用该配置:
bashkubectl apply -f kong-gateway.yaml
bashkubectl get pods -n kong -l app.kubernetes.io/name=gateway-operator
预期输出(状态为 Running):
NAME READY STATUS RESTARTS AGE gateway-operator-7f9b6c7d6c-abc12 1/1 Running 0 5m
bashkubectl get pods -l app.kubernetes.io/instance=my-kong-gateway
预期输出(所有副本均为 Running):
NAME READY STATUS RESTARTS AGE my-kong-gateway-data-plane-7f8d9c6b-2xwz 1/1 Running 0 3m my-kong-gateway-data-plane-7f8d9c6b-9yqv 1/1 Running 0 3m
bashkubectl get service my-kong-gateway-proxy
通过 EXTERNAL-IP(Load*** 类型)或 NodePort 访问 Gateway。
部署 Operator 时可通过 Helm values 或 Manifest 调整以下核心参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
replicaCount | Operator 副本数(高可用部署建议 ≥2) | 1 |
image.repository | Operator 镜像仓库地址 | kong/gateway-operator |
image.tag | Operator 镜像标签(版本号) | v0.9.0(示例) |
resources.requests | CPU/内存资源请求 | cpu: 100m, memory: 64Mi |
resources.limits | CPU/内存资源限制 | cpu: 500m, memory: 256Mi |
log.level | 日志级别(debug/info/warn/error) | info |
通过 KongGateway CRD 定义 Gateway 实例时,常用配置项如下:
| 字段路径 | 说明 | 示例值 |
|---|---|---|
spec.image | Kong Gateway 镜像地址 | kong/kong-gateway:3.6 |
spec.replicas | 数据平面副本数 | 2 |
spec.service.type | 代理服务类型(ClusterIP/NodePort/Load***) | Load*** |
spec.resources | 数据平面资源请求与限制 | requests: {cpu: 100m, memory: 256Mi} |
spec.admin.enabled | 是否启用 Admin API | true |
spec.plugins | 全局启用的插件列表(需提前创建 KongPlugin CR) | ["rate-limiting", "cors"] |
Operator 容器支持通过环境变量调整运行时行为:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
KUBERNETES_SERVICE_HOST | Kubernetes API Server 地址 | 自动从集群环境获取 |
OPERATOR_LOG_LEVEL | 日志级别(覆盖部署参数中的 log.level) | info |
OPERATOR_WATCH_NAMESPACE | 限制 Operator 监控的命名空间(默认监控所有命名空间) | 空(所有命名空间) |
spec.resources,避免资源不足导致性能瓶颈或 Pod 被驱逐。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务