跳到主要内容

配置文件

APISIX Ingress Controller 使用 config.yaml 配置文件来定义核心设置,例如日志级别、领导者选举行为、指标端点和同步间隔。

配置在 Kubernetes ConfigMap 中定义,并在运行时作为文件挂载到控制器 Pod 中。建议通过 Helm 管理这些配置,以便于更新和版本控制。如果你直接修改 ConfigMap,则必须重启控制器部署以使更改生效。

以下是所有可用的配置选项,包括它们的默认值和用法:

config.yaml
log_level: "info"                               # APISIX Ingress Controller 的日志级别。
# 默认值为 "info"。

controller_name: apisix.apache.org/apisix-ingress-controller # APISIX Ingress Controller 的控制器名称,
# 用于在 GatewayClass 中标识控制器。
# 默认值为 "apisix.apache.org/apisix-ingress-controller"。
leader_election_id: "apisix-ingress-controller-leader" # APISIX Ingress Controller 的领导者选举 ID。
# 默认值为 "apisix-ingress-controller-leader"。
leader_election:
lease_duration: 30s # lease_duration 是非领导者候选者在观察到领导权续期后,在尝试获取领导者选举领导权之前等待的持续时间。
renew_deadline: 20s # renew_deadline 是当前控制器在放弃之前尝试刷新领导权的秒数。
retry_period: 2s # retry_period 是当前控制器在重试控制器操作之间等待的秒数。
disable: false # 是否禁用领导者选举。

metrics_addr: ":8080" # 指标端点绑定的地址。
# 默认值为 ":8080"。
enable_server: false # 调试 API 位于此服务器之后,出于安全原因默认禁用。
server_addr: "127.0.0.1:9092" # 可用端点:/debug 可用于调试内存中待同步到数据平面的已转换 ADC 配置状态。

enable_http2: false # 是否为服务器启用 HTTP/2。
# 默认值为 false。

probe_addr: ":8081" # 探针端点绑定的地址。
# 默认值为 ":8081"。

secure_metrics: false # 安全指标配置。
# 默认值为 ""(空)。

exec_adc_timeout: 15s # ADC 执行的超时时间。
# 默认值为 15 秒。

provider:
type: "apisix" # 提供者类型。
# 值可以是 "apisix" 或 "apisix-standalone"。

sync_period: 1h # 两次连续同步之间的周期。
# 默认值为 1 小时,这意味着控制器不会同步。
# 如果你想启用同步,请将其设置为正值。
init_sync_delay: 20m # 首次同步前的初始延迟,仅在控制器启动时使用。
# 默认值为 20 分钟。

webhook:
enable: false # 是否启用 Webhook 服务器。
# 默认值为 false。
tls_cert_file: "tls.crt" # tls_cert_dir 中包含 Webhook 服务器 TLS 证书的文件名。
# 默认值为 "tls.crt"。
tls_key_file: "tls.key" # tls_cert_dir 中包含 Webhook 服务器 TLS 私钥的文件名。
# 默认值为 "tls.key"。
tls_cert_dir: "/certs" # 包含 Webhook 服务器 TLS 证书文件的目录。
# 默认值为 "/certs"。
port: 9443 # Webhook 服务器监听的端口。
# 默认值为 9443。