2.27. Service Mesh control plane 配置参考
您可以通过修改默认的 ServiceMeshControlPlane
(SMCP) 资源或创建完全自定义 SMCP 资源来自定义 Red Hat OpenShift Service Mesh。本参考部分记录了可用于 SMCP 资源的配置选项。
2.27.1. Service Mesh Control plane 参数
下表列出了 ServiceMeshControlPlane
资源的顶级参数。
名称 | 描述 | 类型 |
---|---|---|
|
APIVersion 定义对象的这个表示法的版本化的 schema。服务器将识别的模式转换为最新的内部值,并可拒绝未识别的值。 |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。 |
|
|
关于这个 | 字符串 |
|
此 | 如需更多信息,请参阅表 2。 |
|
此 | 如需更多信息,请参阅表 3。 |
下表列出了 ServiceMeshControlPlane
资源规格。更改这些参数配置 Red Hat OpenShift Service Mesh 组件。
名称 | 描述 | 可配置参数 |
---|---|---|
|
|
|
|
|
|
|
您可以使用 |
|
|
|
|
|
您可以使用 |
|
|
您可以使用 |
|
|
您可以使用 |
|
|
您可以使用 |
|
|
|
|
|
| N/A |
|
如果 |
|
|
您可以使用 |
|
|
您可以使用 | 字符串 |
ControlPlaneStatus
代表服务网格的当前状态。
名称 | 描述 | 类型 |
---|---|---|
|
| 无法配置 |
|
代表对象当前状态的最新可用影响。 | 字符串 |
| 显示每个部署的 Service Mesh control plane 组件的状态。 | 字符串 |
| 应用所有配置集后生成的配置选项规格。 |
|
| 用于生成 chart 的 values.yaml。 |
|
| 最后一次为此资源处理的图表版本。 | 字符串 |
|
控制器在最新协调期间观察到的生成。状态中的信息与对象的特定生成有关。如果 | 整数 |
| 最后处理此资源的 operator 版本。 | 字符串 |
| 组件和拥有资源的就绪状态。 | 字符串 |
这个示例 ServiceMeshControlPlane
定义包含所有支持的参数。
ServiceMeshControlPlane
资源示例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic spec: version: v2.6 proxy: runtime: container: resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 128Mi tracing: type: Jaeger gateways: ingress: # istio-ingressgateway service: type: ClusterIP ports: - name: status-port port: 15020 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshExpansionPorts: [] egress: # istio-egressgateway service: type: ClusterIP ports: - name: status-port port: 15020 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 additionalIngress: some-other-ingress-gateway: {} additionalEgress: some-other-egress-gateway: {} policy: type: Mixer mixer: # only applies if policy.type: Mixer enableChecks: true failOpen: false telemetry: type: Istiod # or Mixer mixer: # only applies if telemetry.type: Mixer, for v1 telemetry sessionAffinity: false batching: maxEntries: 100 maxTime: 1s adapters: kubernetesenv: true stdio: enabled: true outputAsJSON: true addons: grafana: enabled: true install: config: env: {} envSecrets: {} persistence: enabled: true storageClassName: "" accessMode: ReadWriteOnce capacity: requests: storage: 5Gi service: ingress: contextPath: /grafana tls: termination: reencrypt kiali: name: kiali enabled: true install: # install kiali CR if not present dashboard: viewOnly: false enableGrafana: true enableTracing: true enablePrometheus: true service: ingress: contextPath: /kiali jaeger: name: jaeger install: storage: type: Elasticsearch # or Memory memory: maxTraces: 100000 elasticsearch: nodeCount: 3 storage: {} redundancyPolicy: SingleRedundancy indexCleaner: {} ingress: {} # jaeger ingress configuration runtime: components: pilot: deployment: replicas: 2 pod: affinity: {} container: resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 128Mi grafana: deployment: {} pod: {} kiali: deployment: {} pod: {}
2.27.2. spec 参数
2.27.2.1. 常规参数
下面是一个示例,它演示了 ServiceMeshControlPlane
对象的 spec.general
参数,以及可用参数和值的信息。
常规参数示例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic spec: general: logging: componentLevels: {} # misc: error logAsJSON: false validationMessages: true
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
logging: | 用于为 Service Mesh control plane 组件配置日志记录。 | N/A | |
logging: componentLevels: | 用于指定组件日志级别。 |
可能的值包括: | N/A |
logging: logAsJSON: | 用于启用或禁用 JSON 日志。 |
| N/A |
validationMessages: | 用于在 istio.io 资源的状态字段中启用或禁用验证信息。这对于检测资源中的配置错误非常有用。 |
| N/A |
2.27.2.2. 配置集参数
您可以使用 ServiceMeshControlPlane
对象配置集创建可重复使用的配置。如果没有配置 profile
设置,Red Hat OpenShift Service Mesh 将使用默认配置集。
下面是一个示例,它演示了 ServiceMeshControlPlane
对象的 spec.profiles
参数:
配置集参数示例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic spec: profiles: - YourProfileName
有关创建配置集的详情,请参阅创建 control plane 配置集。
有关安全配置的详情,请参阅 Mutual Transport Layer Security(mTLS)。
2.27.2.3. techPreview 参数
spec.techPreview
参数允许早期访问技术预览的功能。
技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
2.27.2.4. 追踪参数
以下示例演示了 ServiceMeshControlPlane
对象的 spec.tracing
参数,以及可用参数和值的信息。
追踪参数示例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic spec: version: v2.6 tracing: sampling: 100 type: Jaeger
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
tracing: sampling: | 抽样率决定了 Envoy 代理生成 trace 的频率。您可以使用抽样率来控制向追踪系统报告的请求百分比。 |
0 到 10000 之间的整数值,代表 0.01% 的增长(0 到 100%)。例如,将值设置为 |
|
tracing: type: |
目前 |
|
|
2.27.2.5. version 参数
Red Hat OpenShift Service Mesh Operator 支持安装不同版本的 ServiceMeshControlPlane
。您可以使用 version 参数指定要安装的 Service Mesh control plane 版本。如果您在创建 SMCP 时没有指定 version 参数,Operator 会将值设置为最新版本:(2.6)。现有 ServiceMeshControlPlane
对象会在 Operator 升级过程中保留其版本设置。
2.27.2.6. 3scale 配置
下表解释了 ServiceMeshControlPlane
资源中的 3scale Istio 适配器的参数。
3scale 参数示例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic 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 |
| 每当后端缓存无法检索授权数据时,无论是拒绝(已关闭)还是允许(打开)请求 |
|
|
2.27.3. 状态参数
status
参数描述了服务网格的当前状态。这些信息由 Operator 生成,且为只读。
名称 | 描述 | 类型 |
---|---|---|
|
控制器在最新协调期间观察到的生成。状态中的信息与对象的特定生成有关。如果 | 整数 |
|
| 无法配置 |
| 组件和拥有资源的就绪状态。 | 字符串 |
| 最后处理此资源的 Operator 版本。 | 字符串 |
| 显示每个部署的 Service Mesh control plane 组件的状态。 | 字符串 |
| 应用所有配置集后生成的配置选项规格。 |
|
|
代表对象当前状态的最新可用影响。 | 字符串 |
| 最后一次为此资源处理的图表版本。 | 字符串 |
|
生成的 |
|