2.10. 自定义资源
查看不再支持的 Red Hat OpenShift Service Mesh 发行版本的文档。
Service Mesh 版本 1.0 和 1.1 control plane 不再被支持。有关升级服务网格 control plane 的详情,请参阅 升级 Service Mesh。
有关特定 Red Hat OpenShift Service Mesh 发行版本的支持状态的信息,请参阅产品生命周期页面。
您可以通过修改默认的 Service Mesh 自定义资源或者创建新的自定义资源来定制 Red Hat OpenShift Service Mesh。
2.10.1. 先决条件
-
具有
cluster-admin
角色的帐户。 - 完成了准备安装 Red Hat OpenShift Service Mesh 的过程。
- 已安装了 operator。
2.10.2. Red Hat OpenShift Service Mesh 自定义资源
在整个 Service Mesh 文档中,使用 istio-system
项目作为一个示例,您可以根据需要使用其他项目。
自定义资源 允许您在 Red Hat OpenShift Service Mesh 项目或集群中扩展 API。当部署 Service Mesh 时,它会创建一个默认的 ServiceMeshControlPlane
,可以修改它来更改项目参数。
Service Mesh operator 可以通过添加 ServiceMeshControlPlane
资源类型来扩展 API,这可让您在项目中创建 ServiceMeshControlPlane
对象。通过创建一个 ServiceMeshControlPlane
对象,指示 Operator 将一个 Service Mesh control plane 安装到项目中,并使用在 ServiceMeshControlPlane
中设置的参数。
这个示例 ServiceMeshControlPlane
定义包含所有支持的参数,并部署基于 Red Hat Enterprise Linux(RHEL)的 Red Hat OpenShift Service Mesh 1.1.18.2 镜像。
3scale Istio 适配器在自定义资源文件中被部署并配置。它还需要一个可以正常工作的 3scale 帐户(SaaS 或 On-Premises)。
istio-installation.yaml 的示例
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane metadata: name: basic-install spec: istio: global: proxy: resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 128Mi gateways: istio-egressgateway: autoscaleEnabled: false istio-ingressgateway: autoscaleEnabled: false ior_enabled: false mixer: policy: autoscaleEnabled: false telemetry: autoscaleEnabled: false resources: requests: cpu: 100m memory: 1G limits: cpu: 500m memory: 4G pilot: autoscaleEnabled: false traceSampling: 100 kiali: enabled: true grafana: enabled: true tracing: enabled: true jaeger: template: all-in-one
2.10.3. ServiceMeshControlPlane 参数
以下示例演示了使用 ServiceMeshControlPlane
参数,并提供了有关支持参数的附加信息。
您使用这些参数为 Red Hat OpenShift Service Mesh 配置的资源(包括 CPU、内存和 pod 数量)取决于 OpenShift Container Platform 集群的配置。根据当前集群配置中的可用资源配置这些参数。
2.10.3.1. Istio 全局示例
下面是一个示例,它演示了ServiceMeshControlPlane
的 Istio 全局参数,以及可用参数和值的信息。
为了使 3scale Istio 时配器可以正常工作,disablePolicyChecks
必须为 false
。
全局参数示例
istio: global: tag: 1.1.0 hub: registry.redhat.io/openshift-service-mesh/ proxy: resources: requests: cpu: 10m memory: 128Mi limits: mtls: enabled: false disablePolicyChecks: true policyCheckFailOpen: false imagePullSecrets: - MyPullSecret
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
| 启用/禁用策略检查。 |
|
|
| 指定在 Mixer 策略服务无法访问时,是否允许流量传递给 Envoy sidecar。 |
|
|
| Operator 用来抓取 Istio 镜像的 tag。 | 有效的容器镜像 tag。 |
|
| Operator 用来抓取 Istio 镜像的中心。 | 有效的镜像仓库。 |
|
| 控制是否默认在服务间启用/禁用传输层安全 (mTLS) 。 |
|
|
| 如果对提供 Istio 镜像的 registry 的访问是安全的,在这里列出一个 imagePullSecret 。 | redhat-registry-pullSecret 或 quay-pullSecret | 无 |
这些参数专用于全局参数的代理子集。
类型 | 参数 | 描述 | 值 | 默认值 |
---|---|---|---|---|
|
| 为 Envoy proxy 要求的 CPU 资源量。 | 基于环境配置的 CPU 资源,以 cores 或 millicores 为单位(例如,200m 、0.5 、1)指定。 |
|
| Envoy proxy 内存量请求 | 可用内存,以字节为单位(例如: 200Ki, 50Mi, 5Gi),基于您的环境配置。 |
| |
|
| 为 Envoy proxy 请求的最大 CPU 资源量。 | 基于环境配置的 CPU 资源,以 cores 或 millicores 为单位(例如,200m 、0.5 、1)指定。 |
|
| Envoy proxy 允许使用的最大内存数量。 | 可用内存,以字节为单位(例如: 200Ki, 50Mi, 5Gi),根据您的环境配置而定。 |
|
2.10.3.2. Istio 网关配置
下面是一个示例,它演示了 ServiceMeshControlPlane
的 Istio 网关参数 以及相关的信息。
网关参数示例
gateways: egress: enabled: true runtime: deployment: autoScaling: enabled: true maxReplicas: 5 minReplicas: 1 enabled: true ingress: enabled: true runtime: deployment: autoScaling: enabled: true maxReplicas: 5 minReplicas: 1
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
| 启用/禁用自动扩展。 |
|
|
|
根据 | 基于环境配置的可分配 pods 的有效数量。 |
|
|
根据 | 基于环境配置的可分配 pods 的有效数量。 |
|
| 启用/禁用自动扩展。 |
|
|
|
根据 | 基于环境配置的可分配 pods 的有效数量。 |
|
|
根据 | 基于环境配置的可分配 pods 的有效数量。 |
|
集群管理员可以参阅 使用通配符路由 来获得如何启用子域的说明。
2.10.3.3. Istio Mixer 配置
下面是一个示例,它演示了ServiceMeshControlPlane
的 Mixer 参数,以及可用参数和值的信息。
Mixer 参数示例
mixer: enabled: true policy: autoscaleEnabled: false telemetry: autoscaleEnabled: false resources: requests: cpu: 10m memory: 128Mi limits:
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
| 参数启用/禁用 Mixer。 |
|
|
| 启用/禁用自动扩展。在小型环境中禁用它。 |
|
|
|
根据 | 基于环境配置的可分配 pods 的有效数量。 |
|
|
根据 | 基于环境配置的可分配 pods 的有效数量。 |
|
类型 | 参数 | 描述 | 值 | Default(默认) |
---|---|---|---|---|
|
| Mixer 遥测所需的 CPU 资源百分比。 | 基于环境配置的 CPU 资源(以毫秒为单位)。 |
|
| Mixer 遥测所需的内存量。 | 可用内存,以字节为单位(例如: 200Ki, 50Mi, 5Gi),根据您的环境配置而定。 |
| |
|
| Mixer 遥测可以使用的 CPU 资源的最大百分比。 | 基于环境配置的 CPU 资源(以毫秒为单位)。 |
|
| Mixer 遥测允许使用的最大内存数量。 | 可用内存,以字节为单位(例如: 200Ki, 50Mi, 5Gi),根据您的环境配置而定。 |
|
2.10.3.4. Istio Pilot 配置
您可以将 Pilot 配置为在资源分配上调度或设置限制。以下示例描述了 ServiceMeshControlPlane
的 Pilot 参数,以及可用参数和值的信息。
pilot 参数示例
spec: runtime: components: pilot: deployment: autoScaling: enabled: true minReplicas: 1 maxReplicas: 5 targetCPUUtilizationPercentage: 85 pod: tolerations: - key: node.kubernetes.io/unreachable operator: Exists effect: NoExecute tolerationSeconds: 60 affinity: podAntiAffinity: requiredDuringScheduling: - key: istio topologyKey: kubernetes.io/hostname operator: In values: - pilot container: resources: limits: cpu: 100m memory: 128M
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
| Pilot 请求的 CPU 资源的百分比。 | 基于环境配置的 CPU 资源(以毫秒为单位)。 |
|
| Pilot 请求的内存量。 | 可用内存,以字节为单位(例如: 200Ki, 50Mi, 5Gi),根据您的环境配置而定。 |
|
| 启用/禁用自动扩展。在小型环境中禁用它。 |
|
|
| 这个值控制随机抽样的频率。注: 在开发或测试时可以增加这个值。 | 有效百分比。 |
|
2.10.4. 配置 Kiali
当 Service Mesh Operator 创建 ServiceMeshControlPlane
时,它也会处理 Kiali 资源。然后,当 Kiali Operator 创建 Kiali 实例时会使用这个对象。
在 ServiceMeshControlPlane
中指定的默认 Kiali 参数如下:
Kiali 参数示例
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: kiali: enabled: true dashboard: viewOnlyMode: false ingress: enabled: true
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
enabled | 启用/禁用 Kiali。默认情况下启用 Kiali 。 |
|
|
dashboard viewOnlyMode | 为 Kiali 控制台启用/禁用只读视图模式。启用只读视图模式时,用户无法使用控制台来更改 Service Mesh。 |
|
|
ingress enabled | 为 Kiali 启用/禁用 ingress。 |
|
|
2.10.4.1. 为 Grafana 配置 Kiali
当将 Kiali 和 Grafana 作为 Red Hat OpenShift Service Mesh 的一部分安装时,Operator 会默认配置以下内容:
- Grafana 作为 Kiali 的外部服务启用
- Kiali 控制台的 Grafana 授权
- Kiali 控制台的 Grafana URL
Kiali 可自动检测 Grafana URL。然而,如果您有不能轻易被 Kiali 自动探测到的自定义 Grafana 安装,则需要更新 ServiceMeshControlPlane
资源中的 URL 值。
额外的 Grafana 参数
spec: kiali: enabled: true dashboard: viewOnlyMode: false grafanaURL: "https://grafana-istio-system.127.0.0.1.nip.io" ingress: enabled: true
2.10.4.2. 为 Jaeger 配置 Kiali
当您将 Kiali 和 Jaeger 作为 Red Hat OpenShift Service Mesh 的一部分安装时,Operator 会默认配置以下内容:
- Jaeger 作为 Kiali 的外部服务启用
- Kiali 控制台的 Jaeger 授权
- Kiali 控制台的 Jaeger URL
Kiali 可以自动检测 Jaeger URL。然而,如果您有不能轻易被 Kiali 自动探测到的自定义 Jaeger 安装,则需要更新 ServiceMeshControlPlane
资源中的 URL 值。
额外的 Jaeger 参数
spec: kiali: enabled: true dashboard: viewOnlyMode: false jaegerURL: "http://jaeger-query-istio-system.127.0.0.1.nip.io" ingress: enabled: true
2.10.5. 配置 Jaeger
当 Service Mesh Operator 创建 ServiceMeshControlPlane
资源时,它也可以为分布式追踪创建资源。Service Mesh 使用 Jaeger 进行分布式追踪。
您可以通过两种方式之一指定 Jaeger 配置:
-
在
ServiceMeshControlPlane
资源中配置 Jaeger。这个方法有一些限制。 -
在自定义 Jaeger 资源中配置
Jaeger
,然后在ServiceMeshControlPlane
资源中引用 Jaeger 实例。如果存在与名称
值匹配的 Jaeger 资源,control plane 将使用现有安装。这种方法可让您完全自定义 Jaeger 配置。
ServiceMeshControlPlane
中指定的默认 Jaeger 参数如下:
默认的 all-in-one
Jaeger 参数
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: version: v1.1 istio: tracing: enabled: true jaeger: template: all-in-one
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
tracing: enabled: |
启用/禁用 Service Mesh Operator 安装和部署追踪。安装 Jaeger 会被默认启用。要使用现有的 Jaeger 部署,请将此值设置为 |
|
|
jaeger: template: | 指定使用哪个 Jaeger 部署策略。 |
|
|
ServiceMeshControlPlane
资源中的默认模板是 all-in-one
部署策略,它使用 in-memory 存储。对于生产环境,唯一支持的存储选项是 Elasticsearch,因此您必须配置 ServiceMeshControlPlane
来在生产环境中部署 Service Mesh 时请求 production-elasticsearch
模板。
2.10.5.1. 配置 Elasticsearch
默认的 Jaeger 部署策略使用 all-in-one
模板,以便可使用最小资源完成安装。但是,因为 all-in-one
模板使用 in-memory 存储,所以只建议用于开发、演示或者测试目的。在生产环境中不应该使用它。
如果要在产品环境中部署 Service Mesh 和 Jaeger,则需要将模板改为 production-elasticsearch
模板,该模板使用 Elasticsearch 来满足 Jaeger 的存储需要。
elasticsearch 是一个需要消耗大量内存的应用程序。在默认的 OpenShift Container Platform 安装中指定的初始节点可能不足以支持 Elasticsearch 集群。您应该修改默认的 Elasticsearch 配置,使其与您的用例和为 OpenShift Container Platform 安装请求的资源相匹配。您可以使用有效的 CPU 和内存值来修改每个组件的 CPU 和内存限值。如果要使用推荐的内存数量(或更多)运行,则必须在集群中添加额外的节点。请确定没有超过 OpenShift Container Platform 安装所请求的资源。
Elasticsearch 默认的 "生产环境" Jaeger 参数
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: istio: tracing: enabled: true ingress: enabled: true jaeger: template: production-elasticsearch elasticsearch: nodeCount: 3 redundancyPolicy: resources: requests: cpu: "1" memory: "16Gi" limits: cpu: "1" memory: "16Gi"
参数 | 描述 | 值 | 默认值 | 示例 |
---|---|---|---|---|
tracing: enabled: | 在 Service Mesh 中启用/禁用追踪。Jaeger 被默认安装。 |
|
| |
ingress: enabled: | 为 Jaeger 启用/禁用 ingress。 |
|
| |
jaeger: template: | 指定使用哪个 Jaeger 部署策略。 |
|
| |
elasticsearch: nodeCount: | 要创建的 Elasticsearch 节点数量。 | 整数值。 | 1 | 概念验证 = 1, 最小部署 =3 |
requests: cpu: | 根据您的环境配置,请求的 CPU 数量。 | 以 core 或者 millicores 指定(例如: 200m, 0.5, 1)。 | 1Gi | 概念证明 = 500m, 最小部署 =1 |
requests: memory: | 根据您的环境配置,可用于请求的内存。 | 以字节为单位指定(例如: 200Ki, 50Mi, 5Gi)。 | 500m | 概念证明 = 1Gi, 最小部署 = 16Gi* |
limits: cpu: | 根据您的环境配置,CPU 数量的限值。 | 以 core 或者 millicores 指定(例如: 200m, 0.5, 1)。 | 概念证明 = 500m, 最小部署 =1 | |
limits: memory: | 根据您的环境配置,可用的内存限值。 | 以字节为单位指定(例如: 200Ki, 50Mi, 5Gi)。 | 概念证明 = 1Gi, 最小部署 = 16Gi* | |
* 通过这个设置可以使每个 Elasticsearch 节点使用较低内存进行操作,但对于生产环境部署,不建议这样做。对于生产环境,您应该默认为每个 pod 分配不少于 16Gi 内存,但最好为每个 pod 最多分配 64Gi 内存。 |
流程
-
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform web 控制台。 -
导航到 Operators
Installed Operators。 - 点 Red Hat OpenShift Service Mesh Operator。
- 点 Istio Service Mesh Control Plane 标签页。
-
点 control plane 文件的名称,例如
basic-install
。 - 点 YAML 标签。
-
编辑 Jaeger 参数,根据您的具体用例,使用
production-elasticsearch
模板参数替换默认的all-in-one
模板。确定缩进格式正确。 - 点 Save。
- 点 Reload。OpenShift Container Platform 重新部署 Jaeger,并根据指定的参数创建 Elasticsearch 资源。
2.10.5.2. 连接至现有的 Jaeger 实例
要让 SMCP 连接到现有的 Jaeger 实例,您必须满足以下条件:
-
Jaeger 实例与 control plane 部署到同一个命名空间中,例如,部署到
istio-system
命名空间中。 - 要启用服务间的安全通信,您应该启用 oauth-proxy,以保护与 Jaeger 实例的通信,并确保 secret 挂载到 Jaeger 实例,以便 Kiali 与其通信。
-
要使用自定义或已存在的 Jaeger 实例,请将
spec.istio.tracing.enabled
设置为 "false" 来禁用 Jaeger 实例的部署。 -
通过将
spec.istio.global.tracer.zipkin.address
设置为 jaeger-collector 服务的主机名和端口,为 Mixer 提供正确的 jaeger-collector 端点。该服务的主机名通常为<jaeger-instance-name>-collector.<namespace>.svc.cluster.local
。 -
通过将
spec.istio.kiali.jaegerInClusterURL
设置为您的 jaeger-query 服务的主机名(端口通常不需要,它会使用默认的 443 端口),向 Kiali 提供正确的 jaeger-query 端点来收集 trace。该服务的主机名通常为<jaeger-instance-name>-query.<namespace>.svc.cluster.local
。 向 Kiali 提供 Jaeger 实例的仪表板 URL,以便通过 Kiali 控制台启用 Jaeger 访问。您可以从 Jaeger Operator 创建的 OpenShift 路由中检索 URL。如果您的 Jaeger 资源称为
external-jaeger
,且位于istio-system
项目中,您可以使用以下命令检索路由:$ oc get route -n istio-system external-jaeger
输出示例
NAME HOST/PORT PATH SERVICES [...] external-jaeger external-jaeger-istio-system.apps.test external-jaeger-query [...]
HOST/PORT
下的值是 Jaeger 仪表板的外部访问 URL。
Jaeger 资源示例
apiVersion: jaegertracing.io/v1 kind: "Jaeger" metadata: name: "external-jaeger" # Deploy to the Control Plane Namespace namespace: istio-system spec: # Set Up Authentication ingress: enabled: true security: oauth-proxy openshift: # This limits user access to the Jaeger instance to users who have access # to the control plane namespace. Make sure to set the correct namespace here sar: '{"namespace": "istio-system", "resource": "pods", "verb": "get"}' htpasswdFile: /etc/proxy/htpasswd/auth volumeMounts: - name: secret-htpasswd mountPath: /etc/proxy/htpasswd volumes: - name: secret-htpasswd secret: secretName: htpasswd
以下 ServiceMeshControlPlane
示例假定您使用 Jaeger Operator 和示例 Jaeger 资源部署了 Jaeger。
使用外部 Jaeger 的 ServiceMeshControlPlane
示例
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane metadata: name: external-jaeger namespace: istio-system spec: version: v1.1 istio: tracing: # Disable Jaeger deployment by service mesh operator enabled: false global: tracer: zipkin: # Set Endpoint for Trace Collection address: external-jaeger-collector.istio-system.svc.cluster.local:9411 kiali: # Set Jaeger dashboard URL dashboard: jaegerURL: https://external-jaeger-istio-system.apps.test # Set Endpoint for Trace Querying jaegerInClusterURL: external-jaeger-query.istio-system.svc.cluster.local
2.10.5.3. 配置 Elasticsearch
默认的 Jaeger 部署策略使用 all-in-one
模板,以便可使用最小资源完成安装。但是,因为 all-in-one
模板使用 in-memory 存储,所以只建议用于开发、演示或者测试目的。在生产环境中不应该使用它。
如果要在产品环境中部署 Service Mesh 和 Jaeger,则需要将模板改为 production-elasticsearch
模板,该模板使用 Elasticsearch 来满足 Jaeger 的存储需要。
elasticsearch 是一个需要消耗大量内存的应用程序。在默认的 OpenShift Container Platform 安装中指定的初始节点可能不足以支持 Elasticsearch 集群。您应该修改默认的 Elasticsearch 配置,使其与您的用例和为 OpenShift Container Platform 安装请求的资源相匹配。您可以使用有效的 CPU 和内存值来修改每个组件的 CPU 和内存限值。如果要使用推荐的内存数量(或更多)运行,则必须在集群中添加额外的节点。请确定没有超过 OpenShift Container Platform 安装所请求的资源。
Elasticsearch 默认的 "生产环境" Jaeger 参数
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: istio: tracing: enabled: true ingress: enabled: true jaeger: template: production-elasticsearch elasticsearch: nodeCount: 3 redundancyPolicy: resources: requests: cpu: "1" memory: "16Gi" limits: cpu: "1" memory: "16Gi"
参数 | 描述 | 值 | 默认值 | 示例 |
---|---|---|---|---|
tracing: enabled: | 在 Service Mesh 中启用/禁用追踪。Jaeger 被默认安装。 |
|
| |
ingress: enabled: | 为 Jaeger 启用/禁用 ingress。 |
|
| |
jaeger: template: | 指定使用哪个 Jaeger 部署策略。 |
|
| |
elasticsearch: nodeCount: | 要创建的 Elasticsearch 节点数量。 | 整数值。 | 1 | 概念验证 = 1, 最小部署 =3 |
requests: cpu: | 根据您的环境配置,请求的 CPU 数量。 | 以 core 或者 millicores 指定(例如: 200m, 0.5, 1)。 | 1Gi | 概念证明 = 500m, 最小部署 =1 |
requests: memory: | 根据您的环境配置,可用于请求的内存。 | 以字节为单位指定(例如: 200Ki, 50Mi, 5Gi)。 | 500m | 概念证明 = 1Gi, 最小部署 = 16Gi* |
limits: cpu: | 根据您的环境配置,CPU 数量的限值。 | 以 core 或者 millicores 指定(例如: 200m, 0.5, 1)。 | 概念证明 = 500m, 最小部署 =1 | |
limits: memory: | 根据您的环境配置,可用的内存限值。 | 以字节为单位指定(例如: 200Ki, 50Mi, 5Gi)。 | 概念证明 = 1Gi, 最小部署 = 16Gi* | |
* 通过这个设置可以使每个 Elasticsearch 节点使用较低内存进行操作,但对于生产环境部署,不建议这样做。对于生产环境,您应该默认为每个 pod 分配不少于 16Gi 内存,但最好为每个 pod 最多分配 64Gi 内存。 |
流程
-
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform web 控制台。 -
导航到 Operators
Installed Operators。 - 点 Red Hat OpenShift Service Mesh Operator。
- 点 Istio Service Mesh Control Plane 标签页。
-
点 control plane 文件的名称,例如
basic-install
。 - 点 YAML 标签。
-
编辑 Jaeger 参数,根据您的具体用例,使用
production-elasticsearch
模板参数替换默认的all-in-one
模板。确定缩进格式正确。 - 点 Save。
- 点 Reload。OpenShift Container Platform 重新部署 Jaeger,并根据指定的参数创建 Elasticsearch 资源。
2.10.5.4. 配置 Elasticsearch 索引清理任务
当 Service Mesh Operator 创建 ServiceMeshControlPlane
时,它还会为 Jaeger 创建自定义资源 (CR) 。Red Hat OpenShift 分布式追踪平台 Operator 在创建 Jaeger 实例时使用此 CR。
当使用 Elasticsearch 存储时,默认会创建一个任务来清理旧的 trace。要配置这个任务的选项,请编辑 Jaeger 自定义资源 (CR) 以便为您的用例进行定制。以下列出了相关的选项。
apiVersion: jaegertracing.io/v1 kind: Jaeger spec: strategy: production storage: type: elasticsearch esIndexCleaner: enabled: false numberOfDays: 7 schedule: "55 23 * * *"
参数 | 值 | 描述 |
---|---|---|
已启用: | true/ false | 启用或者禁用索引清理任务。 |
numberOfDays: | 整数值 | 删除索引前等待的天数。 |
schedule: | "55 23 * * *" | 运行任务的 cron 设置 |
有关在 OpenShift Container Platform 中配置 Elasticsearch 的详情,请参考配置日志存储。
2.10.6. 3scale 配置
下表解释了 ServiceMeshControlPlane
资源中的 3scale Istio 适配器的参数。
3scale 参数示例
spec: addons: 3Scale: enabled: false PARAM_THREESCALE_LISTEN_ADDR: 3333 PARAM_THREESCALE_LOG_LEVEL: info PARAM_THREESCALE_LOG_JSON: true PARAM_THREESCALE_LOG_GRPC: false PARAM_THREESCALE_REPORT_METRICS: true PARAM_THREESCALE_METRICS_PORT: 8080 PARAM_THREESCALE_CACHE_TTL_SECONDS: 300 PARAM_THREESCALE_CACHE_REFRESH_SECONDS: 180 PARAM_THREESCALE_CACHE_ENTRIES_MAX: 1000 PARAM_THREESCALE_CACHE_REFRESH_RETRIES: 1 PARAM_THREESCALE_ALLOW_INSECURE_CONN: false PARAM_THREESCALE_CLIENT_TIMEOUT_SECONDS: 10 PARAM_THREESCALE_GRPC_CONN_MAX_SECONDS: 60 PARAM_USE_CACHED_BACKEND: false PARAM_BACKEND_CACHE_FLUSH_INTERVAL_SECONDS: 15 PARAM_BACKEND_CACHE_POLICY_FAIL_CLOSED: true
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
| 是否使用 3scale 适配器 |
|
|
| 为 gRPC 服务器设定侦听地址 | 有效端口号 |
|
| 设置最小日志输出级别。 |
|
|
| 是否将日志格式转化为 JSON |
|
|
| 日志是否包含 gRPC 信息 |
|
|
| 是否收集 3scale 系统和后端的指标数据并报告给 Prometheus |
|
|
|
设置 3scale | 有效端口号 |
|
| 在从缓存中移除过期项目前等待的时间(以秒为单位) | 时间间隔(以秒为单位) |
|
| 尝试刷新缓存元素的过期时间 | 时间间隔(以秒为单位) |
|
|
在任何时间可以保存在缓存中的最大项目数。设为 | 有效数量 |
|
| 在缓存更新循环中检索无法访问的主机的次数 | 有效数量 |
|
|
在调用 |
|
|
| 终止到 3scale 系统和后端请求前等待的秒数 | 时间间隔(以秒为单位) |
|
| 在连接关闭前设置连接的最大秒数(+/-10% 抖动) | 时间间隔(以秒为单位) | 60 |
| 如果为 true,则尝试为授权请求创建一个内存 apisonator 缓存 |
|
|
| 如果启用了后端缓存,这会在 3scale 中设置刷新缓存的时间间隔(以秒为单位) | 时间间隔(以秒为单位) | 15 |
| 每当后端缓存无法检索授权数据时,无论是拒绝(已关闭)还是允许(打开)请求 |
|
|