通用全局配置

Higress 的全局配置 ConfigMap 对象 higress-config 增加 higress 项, 参考配置如下:

  1. apiVersion: v1
  2. data:
  3. higress: |-
  4. tracing:
  5. enable: true
  6. sampling: 100
  7. timeout: 500
  8. skywalking:
  9. service: skywalking-oap-server.op-system.svc.cluster.local
  10. port: 11800
  11. gzip:
  12. enable: false
  13. minContentLength: 1024
  14. contentType:
  15. - text/html
  16. - application/json
  17. - text/css
  18. - application/javascript
  19. - application/xhtml+xml
  20. - image/svg+xml
  21. disableOnEtagHeader: true
  22. memoryLevel: 5
  23. windowBits: 12
  24. chunkSize: 4096
  25. compressionLevel: BEST_COMPRESSION
  26. compressionStrategy: DEFAULT_STRATEGY
  27. addXRealIpHeader: false
  28. disableXEnvoyHeaders: false
  29. downstream:
  30. connectionBufferLimits: 32768
  31. http2:
  32. initialConnectionWindowSize: 1048576
  33. initialStreamWindowSize: 65535
  34. maxConcurrentStreams: 100
  35. idleTimeout: 180
  36. maxRequestHeadersKb: 60
  37. upstream:
  38. connectionBufferLimits: 1048576
  39. idleTimeout: 10
  40. kind: ConfigMap
  41. metadata:
  42. name: higress-config
  43. namespace: higress-system

配置说明

字段类型说明默认
addXRealIpHeaderboolean是否添加 x-real-ip 请求头,如果是true,则会为请求头添加 x-real-ip 参数false
disableXEnvoyHeadersboolean是否关闭附加在转发请求中的 x-envoy 前缀请求头(例如 x-envoy-original-path),如果是true,则会关闭false
downstream参考下面 downstream 设置downstream 设置参考下面 downstream 默认值
upstream参考下面 upstream 设置upstream 设置参考下面 upstream 默认值
tracing参考下面 tracing 设置tracing 设置参考下面 tracing 默认值
gzip参考下面 gzip 设置gzip 设置参考下面 gzip 默认值

Tracing 配置说明

字段类型说明默认
enableboolean是否开启 tracing 功能false
samplingfloat采样率,0.0 - 100.0 之间100.0
timeoutint链路跟踪中间件 grpc 连接超时,单位毫秒500
skywalking参考下面 skywalking 设置skywalking 配置未设置
zipkin参考下面 zipkin 设置zipkin 配置未设置
skywalking 配置
字段类型说明默认
servicestringSkywalking grpc 服务地址
portstringSkywalking grpc 服务端口
access_tokenstringSkywalking grpc 服务访问凭证
zipkin 配置
字段类型说明默认
servicestringzipkin 服务地址
portstringzipkin 服务端口

注意: skywalking 和 zipkin 不能同时设置,只有一个配置能生效

Gzip 配置说明

字段类型说明默认
enableboolean是否开启 gzip 功能false
minContentLengthint启用压缩输出最少字节长度1024
contentTypearray启用压缩输出content-type类型text/html,application/json,text/css,
application/javascript,application/xhtml+xml,
image/svg+xml
disableOnEtagHeaderboolean如果是true时, 当 response 包含 etag header时会关闭 gzip功能true
memoryLevelint从 1 到 9 控制 zlib用到内存.5
windowBitsint从 9 到 15 表示压缩算法窗口大小.12
chunkSizeintzlib buffer大小4096
compressionLevelstringzlib 压缩比率BEST_COMPRESSION
compressionStrategystringzlib 压缩策略DEFAULT_STRATEGY

关于 gzip 参数配置详细说明可以参考 envoy gzip压缩文档: https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/compression/gzip/compressor/v3/gzip.proto#envoy-v3-api-msg-extensions-compression-gzip-compressor-v3-gzip

Downstream 配置说明

字段类型说明默认
connectionBufferLimitsint连接缓冲区大小,单位字节32768
http2参考下面 http2 设置http2 设置参考下面 http2 默认值
idleTimeoutint连接空闲超时时间,单位秒,0表示关闭该配置180
maxRequestHeadersKbint最大请求头大小,单位Kb,最大为8192Kb60
http2 配置说明
字段类型说明默认
initialConnectionWindowSizeinthttp2 连接窗口大小,单位字节,范围为65535~21474836471048576
initialStreamWindowSizeinthttp2 流窗口大小,单位字节,范围为65535~214748364765535
maxConcurrentStreamsinthttp2 最大并发流数量,范围为1~2147483647100

Upstream 配置说明

字段类型说明默认
connectionBufferLimitsint连接缓冲区大小,单位字节1048576
idleTimeoutint连接空闲超时时间(空闲定义是没有未处理完的请求,如果有请求在处理中,不会判定为idle),单位秒,0表示关闭该配置10

TLS 证书全局配置

注意:当前仅对Ingress模式生效,Gateway API暂不支持

Higress TLS 的全局配置 ConfigMap 对象 higress-https , 参考配置如下:

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: higress-https
  5. namespace: higress-system
  6. data:
  7. cert: |
  8. automaticHttps: true
  9. renewBeforeDays: 30
  10. fallbackForInvalidSecret: true
  11. acmeIssuer:
  12. - name: letsencrypt
  13. email: test@example.com
  14. credentialConfig:
  15. - tlsIssuer: letsencrypt
  16. domains:
  17. - foo.com
  18. tlsSecret: foo-com-secret

配置说明

字段类型说明默认
nameboolean是否启动通过 ACME Issuer 来签发证书true
renewBeforeDaysint证书过期前多少天自动Renew, 最大值为90天30
fallbackForInvalidSecretboolean如果开启,当 ingress TLS 里配置 secretName 不存在时,会在 credentialConfig 配置里根据域名匹配 secretfalse
acmeIssuerarrayacmeIssuer 设置参考下面 acmeIssuer
credentialConfigarraycredentialConfig 设置参考下面 credentialConfig

credentialConfig 配置

字段类型说明默认
tlsSecretstring证书 secret 名称-
tlsIssuerstring对应 ACME Issuer 名称,现在只支持 letsencrypt。不填 tlsIssuer 时,domains可以填列表或泛域名,用于全局管理这些域名的secret配置; 如果设置为 letsencrypt, domains 下只能配置一个域名,而且不能是泛域名,并且 tlsSecret 不能是已经存在的非 Higress 创建的自动证书-
domainsarray域名配置,可以是泛域名-

acmeIssuer 配置

字段类型说明默认
namestringACME Issuer 名称,只支持 letsencrypt-
emailstringACME Issuer 邮箱,用于通知证书变更等事件-

如何开启和关闭 ACME Issuer 自动管理证书

安装时默认启动 ACME Issuer 自动管理证书和系统随机生成邮箱地址,具体配置参数如下:

参数名参数说明默认值
higress-core.controller.automaticHttps.enabled是否开启ACME Issuer签发证书,只支持 letsencrypttrue
higress-core.controller.automaticHttps.emailACME Issuer 邮箱,如果为空,系统随机生成邮箱地址-