跳转到内容

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

apiVersion: v1
data:
higress: |-
tracing:
enable: true
sampling: 100
timeout: 500
skywalking:
service: skywalking-oap-server.op-system.svc.cluster.local
port: 11800
gzip:
enable: false
minContentLength: 1024
contentType:
- text/html
- application/json
- text/css
- application/javascript
- application/xhtml+xml
- image/svg+xml
disableOnEtagHeader: true
memoryLevel: 5
windowBits: 12
chunkSize: 4096
compressionLevel: BEST_COMPRESSION
compressionStrategy: DEFAULT_STRATEGY
addXRealIpHeader: false
disableXEnvoyHeaders: false
downstream:
connectionBufferLimits: 32768
http2:
initialConnectionWindowSize: 1048576
initialStreamWindowSize: 65535
maxConcurrentStreams: 100
idleTimeout: 180
maxRequestHeadersKb: 60
upstream:
connectionBufferLimits: 1048576
idleTimeout: 10
...
kind: ConfigMap
metadata:
name: higress-config
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 默认值
字段类型说明默认
enableboolean是否开启 tracing 功能false
samplingfloat采样率,0.0 - 100.0 之间100.0
timeoutint链路跟踪中间件 grpc 连接超时,单位毫秒500
skywalking参考下面 skywalking 设置skywalking 配置未设置
zipkin参考下面 zipkin 设置zipkin 配置未设置
opentelemetry参考下面 opentelemetry 设置opentelemetry 配置未设置
字段类型说明默认
servicestringSkywalking grpc 服务名称,即控制台服务列表看到的服务名称,例如 my-server.dns、my-server.my-ns.svc.cluster.local
portstringSkywalking grpc 服务端口
access_tokenstringSkywalking grpc 服务访问凭证
字段类型说明默认
servicestringzipkin 服务名称,即控制台服务列表看到的服务名称,例如 my-server.dns、my-server.my-ns.svc.cluster.local
portstringzipkin 服务端口
字段类型说明默认
servicestringopentelemetry grpc 服务名称,即控制台服务列表看到的服务名称,例如 my-server.dns、my-server.my-ns.svc.cluster.local
portstringopentelemetry grpc 服务端口

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

字段类型说明默认
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

字段类型说明默认
connectionBufferLimitsint连接缓冲区大小,单位字节32768
http2参考下面 http2 设置http2 设置参考下面 http2 默认值
idleTimeoutint连接空闲超时时间,单位秒,0表示关闭该配置180
maxRequestHeadersKbint最大请求头大小,单位Kb,最大为8192Kb60
字段类型说明默认
initialConnectionWindowSizeinthttp2 连接窗口大小,单位字节,范围为65535~21474836471048576
initialStreamWindowSizeinthttp2 流窗口大小,单位字节,范围为65535~214748364765535
maxConcurrentStreamsinthttp2 最大并发流数量,范围为1~2147483647100
字段类型说明默认
connectionBufferLimitsint连接缓冲区大小,单位字节1048576
idleTimeoutint连接空闲超时时间(空闲定义是没有未处理完的请求,如果有请求在处理中,不会判定为idle),单位秒,配为0时会使用envoy的默认值,是1小时10

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

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

apiVersion: v1
kind: ConfigMap
metadata:
name: higress-https
namespace: higress-system
data:
cert: |
automaticHttps: true
renewBeforeDays: 30
fallbackForInvalidSecret: true
acmeIssuer:
- name: letsencrypt
email: test@example.com
credentialConfig:
- tlsIssuer: letsencrypt
domains:
- foo.com
tlsSecret: foo-com-secret
字段类型说明默认
automaticHttpsboolean是否启动通过 ACME Issuer 来签发证书true
renewBeforeDaysint证书过期前多少天自动Renew, 最大值为90天30
fallbackForInvalidSecretboolean如果开启,当 ingress TLS 里配置 secretName 不存在时,会在 credentialConfig 配置里根据域名匹配 secretfalse
acmeIssuerarrayacmeIssuer 设置参考下面 acmeIssuer
credentialConfigarraycredentialConfig 设置参考下面 credentialConfig
字段类型说明默认
tlsSecretstring证书 secret 名称-
tlsIssuerstring对应 ACME Issuer 名称,现在只支持 letsencrypt。不填 tlsIssuer 时,domains可以填列表或泛域名,用于全局管理这些域名的secret配置; 如果设置为 letsencrypt, domains 下只能配置一个域名,而且不能是泛域名,并且 tlsSecret 不能是已经存在的非 Higress 创建的自动证书-
domainsarray域名配置,可以是泛域名-
字段类型说明默认
namestringACME Issuer 名称,只支持 letsencrypt-
emailstringACME Issuer 邮箱,用于通知证书变更等事件-

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

Section titled “如何开启和关闭 ACME Issuer 自动管理证书”

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

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