Kubernetes Ingress-Nginx 控制器命令行参数详解
概述
Kubernetes Ingress-Nginx 是一个功能强大的 Ingress 控制器,它使用 NGINX 作为反向代理和负载均衡器。在部署 Ingress-Nginx 控制器时,我们可以通过命令行参数来定制其行为。本文将深入解析这些参数的作用和使用场景,帮助运维人员和开发者更好地配置和管理 Ingress 控制器。
核心参数解析
基础配置参数
-
--annotations-prefix
指定 Ingress 注解的前缀,默认为 "nginx.ingress.kubernetes.io"。这个前缀用于区分 NGINX 控制器特定的注解。 -
--apiserver-host
设置 Kubernetes API 服务器的地址,格式为 "protocol://address:port"。如果未指定,控制器会假设运行在 Kubernetes 集群内部并尝试本地发现。 -
--configmap
指定包含控制器全局自定义配置的 ConfigMap 名称。这是配置 NGINX 全局设置的重要方式。
服务暴露相关参数
-
--default-backend-service
设置用于处理不匹配任何已知服务器名称的 HTTP 请求的服务(catch-all),格式为 "namespace/name"。 -
--http-port和--https-port
分别设置 HTTP 和 HTTPS 流量的服务端口,默认为 80 和 443。 -
--default-server-port
设置默认服务器(catch-all)的暴露端口,默认为 8181。
SSL/TLS 相关参数
-
--default-ssl-certificate
指定默认 HTTPS 服务器使用的 SSL 证书的 Secret,格式为 "namespace/name"。 -
--enable-ssl-passthrough
启用 SSL 直通功能,默认为 false。启用后,控制器会将 TLS 连接直接传递给后端服务而不解密。 -
--ssl-passthrough-proxy-port
设置内部用于 SSL 直通的端口,默认为 442。
监控与指标参数
-
--enable-metrics
启用 NGINX 指标收集功能,默认为 false。 -
--healthz-port
设置健康检查端点的端口,默认为 10254。 -
--profiler-port
设置 Go profiler 的暴露端口,默认为 10245。 -
--metrics-per-host
按主机导出指标,默认为 true。
高级配置参数
-
--ingress-class
指定此控制器处理的 Ingress 类名称。在 Kubernetes v1.18.0 或更高版本中,通过 IngressClassName 字段设置。 -
--watch-namespace
限制控制器监视的命名空间。如果为空,则监视所有命名空间。 -
--sync-period
设置控制器强制重新填充本地对象存储的时间间隔。默认禁用。 -
--update-status
更新此控制器处理的 Ingress 对象的负载均衡器状态,默认为 true。
参数使用最佳实践
生产环境推荐配置
-
启用指标收集
建议在生产环境中启用指标收集功能:--enable-metrics=true -
限制监视命名空间
为提高性能和安全性,建议限制控制器监视的命名空间:--watch-namespace=production -
配置健康检查
自定义健康检查路径和超时:--health-check-path=/custom-healthz --health-check-timeout=15
性能调优参数
-
调整同步频率
根据集群规模调整同步周期:--sync-period=30s -
设置同步速率限制
控制同步频率上限:--sync-rate-limit=0.5 -
配置监控批处理大小
调整 NGINX 指标的最大批处理大小:--monitor-max-batch-size=20000
常见问题解决方案
如何处理证书链不完整问题
当遇到证书链不完整时,可以启用自动补全功能:
--enable-ssl-chain-completion=true
如何禁用特定功能
-
禁用 catch-all Ingress
--disable-catch-all=true -
禁用 ExternalName 服务支持
--disable-svc-external-name=true -
禁用领导者选举(单实例部署)
--disable-leader-election=true
总结
Kubernetes Ingress-Nginx 控制器提供了丰富的命令行参数,允许用户根据实际需求进行精细化配置。理解这些参数的作用和适用场景,对于构建稳定、高效的 Ingress 解决方案至关重要。在生产环境中,建议根据集群规模、流量特点和安全性要求,合理组合这些参数以达到最佳效果。
通过本文的详细解析,希望读者能够掌握 Ingress-Nginx 控制器的主要配置选项,并能够根据实际场景进行恰当的参数调优。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



