checkpoint/cp-nano-k8s-nginx-ingress该镜像是基于Google维护的Kubernetes版本Nginx Ingress控制器,专为Kubernetes集群设计,用于管理外部流量入口。作为Kubernetes官方推荐的入口控制器解决方案之一,它基于Nginx实现高性能的HTTP/HTTPS流量转发,是连接集群外部客户端与内部服务的关键组件。
推荐通过Kubernetes资源清单部署,官方提供的部署文件适用于大多数环境:
bash# 部署最新稳定版 kubectl apply -f [***]
注意:部署文件路径可能随版本更新变化,请参考官方文档获取最新部署链接
创建Ingress资源定义路由规则:
yamlapiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: basic-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /$2 nginx.ingress.kubernetes.io/ssl-redirect: "true" spec: ingressClassName: nginx # 指定使用nginx ingress控制器 tls: - hosts: - example.com secretName: example-tls-cert # 引用包含TLS证书的Secret rules: - host: example.com http: paths: - path: /service1(/|$)(.*) pathType: Prefix backend: service: name: service1 port: number: 80 - path: /service2 pathType: Prefix backend: service: name: service2 port: number: 80
常用注解配置示例:
| 注解键 | 说明 | 示例值 |
|---|---|---|
nginx.ingress.kubernetes.io/rewrite-target | 路径重写目标 | /app$2 |
nginx.ingress.kubernetes.io/ssl-redirect | 强制HTTPS重定向 | "true" |
nginx.ingress.kubernetes.io/load-***-method | 负载均衡策略 | "ip_hash" |
nginx.ingress.kubernetes.io/proxy-body-size | 请求体大小限制 | "10m" |
nginx.ingress.kubernetes.io/rate-limit | 请求速率限制 | "rps=20 burst=40 nodelay" |
通过ConfigMap调整全局控制器配置:
yamlapiVersion: v1 kind: ConfigMap metadata: name: nginx-configuration namespace: ingress-nginx data: proxy-connect-timeout: "30s" # 后端连接超时时间 proxy-read-timeout: "120s" # 后端响应读取超时时间 client-body-buffer-size: "16k" # 客户端请求体缓冲区大小 http2-enable: "true" # 启用HTTP/2支持
bash# 查看控制器Pod状态 kubectl get pods -n ingress-nginx # 查看控制器服务(获取外部IP) kubectl get svc -n ingress-nginx ingress-nginx-controller
bash# 查看控制器Pod日志 kubectl logs -n ingress-nginx <ingress-controller-pod-name> -f
bashkubectl delete -f [***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务