1.24. Service Mesh control plane 配置参考
您可以通过修改默认的 ServiceMeshControlPlane (SMCP) 资源或创建完全自定义 SMCP 资源来自定义 Red Hat OpenShift Service Mesh。本参考部分记录了可用于 SMCP 资源的配置选项。
1.24.1. Service Mesh Control plane 参数
下表列出了 ServiceMeshControlPlane 资源的顶级参数。
表 1.32. ServiceMeshControlPlane 资源参数
| 名称 | 描述 | 类型 |
|---|---|---|
|
|
APIVersion 定义对象的这个表示法的版本化的 schema。服务器将识别的模式转换为最新的内部值,并可拒绝未识别的值。 |
|
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。 |
|
|
|
关于这个 | 字符串 |
|
|
此 | 如需更多信息,请参阅表 2。 |
|
|
此 | 如需更多信息,请参阅表 3。 |
下表列出了 ServiceMeshControlPlane 资源规格。更改这些参数配置 Red Hat OpenShift Service Mesh 组件。
表 1.33. ServiceMeshControlPlane 资源规格
| 名称 | 描述 | 可配置参数 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
您可以使用 |
|
|
|
|
|
|
|
您可以使用 |
|
|
|
您可以使用 |
|
|
|
您可以使用 |
|
|
|
您可以使用 |
|
|
|
|
|
|
|
| 不适用 |
|
|
如果 |
|
|
|
您可以使用 |
|
|
|
您可以使用 | 字符串 |
ControlPlaneStatus 代表服务网格的当前状态。
表 1.34. ServiceMeshControlPlane 资源 ControlPlaneStatus
| 名称 | 描述 | 类型 |
|---|---|---|
|
|
| 无法配置 |
|
|
代表对象当前状态的最新可用影响。 | 字符串 |
|
| 显示每个部署的 Service Mesh control plane 组件的状态。 | 字符串 |
|
| 应用所有配置集后生成的配置选项规格。 |
|
|
| 用于生成 chart 的 values.yaml。 |
|
|
| 最后一次为此资源处理的图表版本。 | 字符串 |
|
|
控制器在最新协调期间观察到的生成。状态中的信息与对象的特定生成有关。如果 | 整数 |
|
| 最后处理此资源的 operator 版本。 | 字符串 |
|
| 组件和拥有资源的就绪状态。 | 字符串 |
这个示例 ServiceMeshControlPlane 定义包含所有支持的参数。
ServiceMeshControlPlane 资源示例
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
version: v2.2
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: {}
1.24.2. spec 参数
1.24.2.1. 常规参数
下面是一个示例,它演示了 ServiceMeshControlPlane 对象的 spec.general 参数,以及可用参数和值的信息。
常规参数示例
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
general:
logging:
componentLevels: {}
# misc: error
logAsJSON: false
validationMessages: true
表 1.35. Istio 常规参数
| 参数 | 描述 | 值 | 默认值 |
|---|---|---|---|
logging: | 用于为 Service Mesh control plane 组件配置日志记录。 | 不适用 | |
logging: componentLevels: | 用于指定组件日志级别。 |
可能的值有: | 不适用 |
logging: logLevels: |
可能的值有: | 不适用 | |
logging: logAsJSON: | 用于启用或禁用 JSON 日志。 |
| 不适用 |
validationMessages: | 用于在 istio.io 资源的状态字段中启用或禁用验证信息。这对于检测资源中的配置错误非常有用。 |
| 不适用 |
1.24.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)。
1.24.2.3. techPreview 参数
spec.techPreview 参数允许早期访问技术预览的功能。
技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅技术预览支持范围。
1.24.2.4. 追踪参数
以下示例演示了 ServiceMeshControlPlane 对象的 spec.tracing 参数,以及可用参数和值的信息。
追踪参数示例
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
version: v2.2
tracing:
sampling: 100
type: Jaeger
表 1.36. Istio 追踪参数
| 参数 | 描述 | 值 | 默认值 |
|---|---|---|---|
tracing: sampling: | 抽样率决定了 Envoy 代理生成 trace 的频率。您可以使用抽样率来控制向追踪系统报告的请求百分比。 |
0 到 10000 之间的整数值,代表 0.01% 的增长(0 到 100%)。例如,将值设置为 |
|
tracing: type: |
目前 |
|
|
1.24.2.5. version 参数
Red Hat OpenShift Service Mesh Operator 支持安装不同版本的 ServiceMeshControlPlane。您可以使用 version 参数指定要安装的 Service Mesh control plane 版本。如果您在创建 SMCP 时没有指定 version 参数,Operator 会将值设为最新版本:(2.2)。现有 ServiceMeshControlPlane 对象会在 Operator 升级过程中保留其版本设置。
1.24.2.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
表 1.37. 3scale 参数
| 参数 | 描述 | 值 | 默认值 |
|---|---|---|---|
|
| 是否使用 3scale 适配器 |
|
|
|
| 为 gRPC 服务器设定侦听地址 | 有效端口号 |
|
|
| 设置最小日志输出级别。 |
|
|
|
| 是否将日志格式转化为 JSON |
|
|
|
| 日志是否包含 gRPC 信息 |
|
|
|
| 是否收集 3scale 系统和后端的指标数据并报告给 Prometheus |
|
|
|
|
设置 3scale | 有效端口号 |
|
|
| 在从缓存中移除过期项目前等待的时间(以秒为单位) | 时间间隔(以秒为单位) |
|
|
| 尝试刷新缓存元素的过期时间 | 时间间隔(以秒为单位) |
|
|
|
在任何时间可以保存在缓存中的最大项目数。设为 | 有效数量 |
|
|
| 在缓存更新循环中检索无法访问的主机的次数 | 有效数量 |
|
|
|
在调用 |
|
|
|
| 终止到 3scale 系统和后端请求前等待的秒数 | 时间间隔(以秒为单位) |
|
|
| 在连接关闭前设置连接的最大秒数(+/-10% 抖动) | 时间间隔(以秒为单位) | 60 |
|
| 如果为 true,则尝试为授权请求创建一个内存 apisonator 缓存 |
|
|
|
| 如果启用了后端缓存,这会在 3scale 中设置刷新缓存的时间间隔(以秒为单位) | 时间间隔(以秒为单位) | 15 |
|
| 每当后端缓存无法检索授权数据时,无论是拒绝(已关闭)还是允许(打开)请求 |
|
|
1.24.3. 状态参数
status 参数描述了服务网格的当前状态。这些信息由 Operator 生成,且为只读。
表 1.38. Istio 状态参数
| 名称 | 描述 | 类型 |
|---|---|---|
|
|
控制器在最新协调期间观察到的生成。状态中的信息与对象的特定生成有关。如果 | 整数 |
|
|
| 无法配置 |
|
| 组件和拥有资源的就绪状态。 | 字符串 |
|
| 最后处理此资源的 Operator 版本。 | 字符串 |
|
| 显示每个部署的 Service Mesh control plane 组件的状态。 | 字符串 |
|
| 应用所有配置集后生成的配置选项规格。 |
|
|
|
代表对象当前状态的最新可用影响。 | 字符串 |
|
| 最后一次为此资源处理的图表版本。 | 字符串 |
|
|
生成的 |
|