本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

ingress-nginx/controller 是 Kubernetes ***维护的 Ingress 控制器实现,基于 NGINX 构建,用于管理 Kubernetes 集群的入站流量。该镜像提供了 NGINX 反向代理与 Kubernetes API 的集成能力,支持通过 Kubernetes Ingress 资源定义 HTTP/HTTPS 路由规则,实现集群内服务的外部访问控制。
该镜像通过以下***仓库提供(不同仓库内容一致,可根据网络环境选择):
registry.k8s.io/ingress-nginx/controller(Kubernetes ***镜像仓库,推荐)k8s.gcr.io/ingress-nginx/controller(GCR 镜像仓库)quay.io/kubernetes-ingress-controller/nginx-ingress-controller(Quay 镜像仓库)/api/v1/* 重写为 /v1/*)。host 字段区分多域名路由规则。nginx.ingress.kubernetes.io/auth-tls-verify-client 配置客户端证书验证。nginx.ingress.kubernetes.io/configuration-snippet 注解注入原生 NGINX 配置片段。api.example.com 路由至 API 服务,web.example.com 路由至前端服务)。NodePort 或 Load***(取决于集群网络配置)。kubectl 工具已配置集群访问权限。通过 Kubernetes ***提供的静态 YAML 文件部署,自动创建 Deployment、Service、ConfigMap 等资源:
# 部署最新稳定版(请替换为***最新版本链接) kubectl apply -f [***]
版本说明:访问 Ingress-NGINX 发布页 获取最新版本的 YAML 链接。
通过 Helm 快速部署,支持自定义配置:
# 添加 Helm 仓库 helm repo add ingress-nginx [***] helm repo update # 部署(默认命名空间 ingress-nginx) helm install ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx --create-namespace
注意:该方式仅用于本地测试,生产环境需通过 Kubernetes 部署以确保与集群集成。
docker run -d \ --name ingress-nginx-controller \ --net=host \ # 需与主机网络共享(模拟 NodePort 场景) -v /var/run/kubernetes.sock:/var/run/kubernetes.sock \ # 挂载 K8s API 套接字 -e POD_NAME=test-pod \ -e POD_NAMESPACE=default \ registry.k8s.io/ingress-nginx/controller:v1.8.2 \ /nginx-ingress-controller \ --default-backend-service=default/nginx-default-backend \ --ingress-class=nginx
通过 Kubernetes Ingress 资源定义路由规则,示例如下:
将 example.com/app 路由至 app-service:80,example.com/api 路由至 api-service:80:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: basic-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /$2 # 路径重写(移除 /app 前缀) spec: ingressClassName: nginx # 指定 IngressClass(需与控制器配置匹配) rules: - host: example.com http: paths: - path: /app(/|$)(.*) pathType: Prefix backend: service: name: app-service port: number: 80 - path: /api pathType: Prefix backend: service: name: api-service port: number: 80
配合 cert-manager 自动签发 Let's Encrypt 证书,实现 HTTPS 访问:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: https-ingress annotations: cert-manager.io/cluster-issuer: letsencrypt-prod # cert-manager 集群签发者 nginx.ingress.kubernetes.io/ssl-redirect: "true" # HTTP 重定向至 HTTPS spec: ingressClassName: nginx tls: - hosts: - example.com secretName: example-tls # 存储证书的 Secret(由 cert-manager 自动创建) rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: web-service port: number: 80
通过 ingress-nginx-controller ConfigMap 配置 NGINX 全局参数(默认位于 ingress-nginx 命名空间):
apiVersion: v1 kind: ConfigMap metadata: name: ingress-nginx-controller namespace: ingress-nginx data: worker-processes: "auto" # NGINX worker 进程数(默认 auto) keepalive-timeout: "65" # 客户端连接超时时间(秒) proxy-body-size: "10m" # 允许的请求体最大尺寸
控制器启动参数可通过 Deployment 的 args 字段配置,常用参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
--ingress-class | 指定 IngressClass 名称,仅处理匹配的 Ingress 资源 | nginx |
--default-backend-service | 默认后端服务(无匹配路由时转发) | ingress-nginx/defaultbackend |
--watch-namespace | 仅监听指定命名空间的 Ingress 资源(多租户隔离) | 空(监听所有命名空间) |
--log-level | 日志级别(debug/info/warn/error) | info |
环境变量(部分由 Kubernetes 自动注入):
| 环境变量 | 说明 | 示例值 |
|---|---|---|
POD_NAME | 当前 Pod 名称(自动注入) | ingress-nginx-controller-xxx |
POD_NAMESPACE | 当前 Pod 所在命名空间(自动注入) | ingress-nginx |
NGINX_CONFIGURATION_SNIPPET | 全局 NGINX 配置片段 | http { ... } |
kubectl logs -n ingress-nginx deployment/ingress-nginx-controller -f
控制器默认暴露 metrics 接口(端口 ***),Prometheus 配置示例:
scrape_configs: - job_name: 'ingress-nginx' static_configs: - targets: ['ingress-nginx-controller.ingress-nginx.svc:***']
通过*** YAML 或 Helm 升级:
# YAML 方式(替换为新版本链接) kubectl apply -f [***] # Helm 方式 helm upgrade ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx
# 回滚至前一版本 Deployment kubectl rollout undo -n ingress-nginx deployment/ingress-nginx-controller
hostNetwork 使用,通过 NetworkPolicy 隔离控制器 Pod,避免暴露敏感端口。免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429