常用应用属性

可以在您的 application.properties 文件、application.yml 文件中指定各种属性,或将其作为命令行开关。本附录提供了常用的 Spring Cloud Kubernetes 属性列表以及对使用这些属性的底层类的引用。

属性贡献可能来自类路径上的其他 jar 文件,因此不应将其视为详尽列表。此外,您还可以定义自己的属性。
名称 默认值 描述

spring.cloud.kubernetes.client.api-version

spring.cloud.kubernetes.client.apiVersion

v1

Kubernetes API 版本

spring.cloud.kubernetes.client.ca-cert-data

spring.cloud.kubernetes.client.ca-cert-file

spring.cloud.kubernetes.client.caCertData

Kubernetes API CACertData

spring.cloud.kubernetes.client.caCertFile

Kubernetes API CACertFile

spring.cloud.kubernetes.client.client-cert-data

spring.cloud.kubernetes.client.client-cert-file

spring.cloud.kubernetes.client.client-key-algo

spring.cloud.kubernetes.client.client-key-data

spring.cloud.kubernetes.client.client-key-file

spring.cloud.kubernetes.client.client-key-passphrase

spring.cloud.kubernetes.client.clientCertData

Kubernetes API ClientCertData

spring.cloud.kubernetes.client.clientCertFile

Kubernetes API ClientCertFile

spring.cloud.kubernetes.client.clientKeyAlgo

RSA

Kubernetes API ClientKeyAlgo

spring.cloud.kubernetes.client.clientKeyData

Kubernetes API ClientKeyData

spring.cloud.kubernetes.client.clientKeyFile

Kubernetes API ClientKeyFile

spring.cloud.kubernetes.client.clientKeyPassphrase

changeit

Kubernetes API ClientKeyPassphrase

spring.cloud.kubernetes.client.connection-timeout

spring.cloud.kubernetes.client.connectionTimeout

10s

连接超时

spring.cloud.kubernetes.client.http-proxy

spring.cloud.kubernetes.client.https-proxy

spring.cloud.kubernetes.client.logging-interval

spring.cloud.kubernetes.client.loggingInterval

20s

日志记录间隔

spring.cloud.kubernetes.client.master-url

spring.cloud.kubernetes.client.masterUrl

https://kubernetes.default.svc

Kubernetes API 主节点 URL

spring.cloud.kubernetes.client.namespace

true

Kubernetes 命名空间

spring.cloud.kubernetes.client.no-proxy

spring.cloud.kubernetes.client.oauth-token

spring.cloud.kubernetes.client.oauthToken

Kubernetes API Oauth Token

spring.cloud.kubernetes.client.password

Kubernetes API 密码

spring.cloud.kubernetes.client.proxy-password

spring.cloud.kubernetes.client.proxy-username

spring.cloud.kubernetes.client.request-timeout

spring.cloud.kubernetes.client.requestTimeout

10s

请求超时

spring.cloud.kubernetes.client.rolling-timeout

spring.cloud.kubernetes.client.rollingTimeout

900s

滚动超时

spring.cloud.kubernetes.client.service-account-namespace-path

/var/run/secrets/kubernetes.io/serviceaccount/namespace

spring.cloud.kubernetes.client.trust-certs

spring.cloud.kubernetes.client.trustCerts

false

Kubernetes API 信任证书

spring.cloud.kubernetes.client.user-agent

Spring-Cloud-Kubernetes-Application

spring.cloud.kubernetes.client.username

Kubernetes API 用户名

spring.cloud.kubernetes.client.watch-reconnect-interval

spring.cloud.kubernetes.client.watch-reconnect-limit

spring.cloud.kubernetes.client.watchReconnectInterval

1s

重连间隔

spring.cloud.kubernetes.client.watchReconnectLimit

-1

重连间隔限制重试次数

spring.cloud.kubernetes.config.enable-api

true

spring.cloud.kubernetes.config.enabled

true

启用 ConfigMap property source locator。

spring.cloud.kubernetes.config.fail-fast

false

spring.cloud.kubernetes.config.include-profile-specific-sources

true

spring.cloud.kubernetes.config.labels

spring.cloud.kubernetes.config.name

spring.cloud.kubernetes.config.namespace

spring.cloud.kubernetes.config.paths

spring.cloud.kubernetes.config.retry

spring.cloud.kubernetes.config.sources

spring.cloud.kubernetes.config.use-name-as-prefix

false

spring.cloud.kubernetes.discovery.all-namespaces

false

如果为所有命名空间启用了服务发现

spring.cloud.kubernetes.discovery.cache-loading-timeout-seconds

60

初始化服务发现缓存的超时时间,如果超出该时间,将中止应用程序。

spring.cloud.kubernetes.discovery.discovery-server-url

spring.cloud.kubernetes.discovery.enabled

true

如果启用了 kubernetes 服务发现

spring.cloud.kubernetes.discovery.filter

用于从 Kubernetes API 服务器检索服务后过滤服务的 SpEL 表达式。

spring.cloud.kubernetes.discovery.include-external-name-services

false

服务发现是否也应搜索 spec 中包含 "type: ExternalName" 的服务。

spring.cloud.kubernetes.discovery.include-not-ready-addresses

false

如果端点地址未被 Kubernetes 标记为 'ready',也包含在发现结果中

spring.cloud.kubernetes.discovery.known-secure-ports

[443, 8443]

已知安全端口集

spring.cloud.kubernetes.discovery.metadata.add-annotations

true

包含 annotation 作为元数据

spring.cloud.kubernetes.discovery.metadata.add-labels

true

包含 label 作为元数据

spring.cloud.kubernetes.discovery.metadata.add-pod-annotations

false

将 pod annotations 添加到响应中。

spring.cloud.kubernetes.discovery.metadata.add-pod-labels

false

将 pod labels 添加到响应中。

spring.cloud.kubernetes.discovery.metadata.add-ports

true

包含 port 作为元数据

spring.cloud.kubernetes.discovery.metadata.annotations-prefix

annotation 的前缀

spring.cloud.kubernetes.discovery.metadata.labels-prefix

label 的前缀

spring.cloud.kubernetes.discovery.metadata.ports-prefix

port.

port 的前缀,默认为 "port."

spring.cloud.kubernetes.discovery.namespaces

如果设置此属性且 allNamespaces 为 false,则仅从 Kubernetes API 服务器获取与这些命名空间匹配的服务和端点。

spring.cloud.kubernetes.discovery.order

0

spring.cloud.kubernetes.discovery.primary-port-name

如果设置此属性,则当为服务定义了多个端口时,具有给定名称的端口将用作主端口。

spring.cloud.kubernetes.discovery.service-labels

如果设置此属性,则仅从 Kubernetes API 服务器获取与这些标签匹配的服务。

spring.cloud.kubernetes.discovery.use-endpoint-slices

false

使用 EndpointSlice 而不是 Endpoints

spring.cloud.kubernetes.discovery.wait-cache-ready

true

等待服务发现缓存(服务和端点)完全加载,否则将在启动时中止应用程序

spring.cloud.kubernetes.leader.auto-startup

true

Leader 选举是否应在启动时自动开始。默认值:true

spring.cloud.kubernetes.leader.config-map-name

leaders

存储 leader 信息的 Kubernetes ConfigMap。默认值:leaders

spring.cloud.kubernetes.leader.create-config-map

true

启用/禁用在 ConfigMap 不存在时创建它。默认值:true

spring.cloud.kubernetes.leader.enabled

true

Leader 选举是否应启用。默认值:true

spring.cloud.kubernetes.leader.leader-id-prefix

leader.id.

ConfigMap 中 leader id 属性的前缀。默认值:leader.id.

spring.cloud.kubernetes.leader.namespace

leader ConfigMap 和候选者所在的 Kubernetes 命名空间。

spring.cloud.kubernetes.leader.publish-failed-events

false

启用/禁用在获取 leader 身份失败时发布事件。默认值:false

spring.cloud.kubernetes.leader.role

此候选者将竞争 leader 身份的角色。

spring.cloud.kubernetes.leader.update-period

60000ms

Leader 身份状态检查周期。默认值:60s

spring.cloud.kubernetes.loadbalancer.cluster-domain

cluster.local

集群域。

spring.cloud.kubernetes.loadbalancer.enabled

true

负载均衡器已启用,默认值为 true。

spring.cloud.kubernetes.loadbalancer.mode

pod

{@link KubernetesLoadBalancerMode} 设置负载均衡器服务器列表使用 pod 的 IP 或服务名称。默认值为 POD。

spring.cloud.kubernetes.loadbalancer.port-name

http

服务端口名称。

spring.cloud.kubernetes.reload.enable-reload-filtering

false

仅为具有 'spring.cloud.kubernetes.config.informer.enabled=true' 标签的源创建 informer。此属性仅与基于事件的热加载相关。

spring.cloud.kubernetes.reload.enabled

false

启用 Kubernetes 配置更改时的热加载。

spring.cloud.kubernetes.reload.max-wait-for-restart

2s

使用 Restart 或 Shutdown 策略时,Spring Cloud Kubernetes 会在重启前等待一段随机时间。这样做是为了避免同一应用程序的所有实例同时重启。此属性配置从收到需要重启的信号到实际触发重启之间的最长等待时间。

spring.cloud.kubernetes.reload.mode

EVENT

设置 Kubernetes 配置热加载的检测模式。

spring.cloud.kubernetes.reload.monitoring-config-maps

true

启用对 secrets 的监控以检测更改。

spring.cloud.kubernetes.reload.monitoring-secrets

false

是否监控 secrets。

spring.cloud.kubernetes.reload.namespaces

将设置 informer 的命名空间。此属性仅与基于事件的热加载相关。

spring.cloud.kubernetes.reload.period

15000ms

当检测模式为 POLLING 时使用的轮询周期。

spring.cloud.kubernetes.reload.strategy

REFRESH

设置 Kubernetes 配置更改时的热加载策略。

spring.cloud.kubernetes.secrets.enable-api

false

spring.cloud.kubernetes.secrets.enabled

true

启用 Secrets property source locator。

spring.cloud.kubernetes.secrets.fail-fast

false

spring.cloud.kubernetes.secrets.include-profile-specific-sources

true

spring.cloud.kubernetes.secrets.labels

spring.cloud.kubernetes.secrets.name

spring.cloud.kubernetes.secrets.namespace

spring.cloud.kubernetes.secrets.paths

spring.cloud.kubernetes.secrets.retry

spring.cloud.kubernetes.secrets.sources

spring.cloud.kubernetes.secrets.use-name-as-prefix

false