下表列出了ServiceMeshControlPlane
资源的顶级参数。
表1. ServiceMeshControlPlane
资源参数
名称 |
描述 |
类型 |
apiVersion
|
APIVersion定义了对象的此表示形式的版本化模式。服务器将已识别的模式转换为最新的内部值,并可能拒绝无法识别的值。对于ServiceMeshControlPlane 2.0版本,值为maistra.io/v2 。 |
对于ServiceMeshControlPlane 2.0版本,值为maistra.io/v2 。 |
kind
|
Kind是一个字符串值,表示此对象表示的REST资源。 |
ServiceMeshControlPlane 是ServiceMeshControlPlane的唯一有效值。
|
metadata
|
关于此ServiceMeshControlPlane 实例的元数据。您可以为您的Service Mesh控制平面安装提供一个名称来跟踪您的工作,例如basic 。 |
字符串 |
spec
|
此ServiceMeshControlPlane 所需状态的规范。这包括构成Service Mesh控制平面的所有组件的配置选项。 |
更多信息,请参见表2。 |
status
|
此ServiceMeshControlPlane 以及构成Service Mesh控制平面的组件的当前状态。 |
更多信息,请参见表3。 |
下表列出了ServiceMeshControlPlane
资源的规范。更改这些参数将配置Red Hat OpenShift Service Mesh组件。
表2. ServiceMeshControlPlane
资源spec
名称 |
描述 |
可配置参数 |
addons
|
addons 参数用于配置核心服务网格控制平面组件之外的附加功能,例如可视化或指标存储。
|
3scale 、grafana 、jaeger 、kiali 和 prometheus 。
|
集群
|
cluster 参数设置集群的常规配置(集群名称、网络名称、多集群、网格扩展等)。
|
meshExpansion 、multiCluster 、name 和 network
|
网关
|
您可以使用 gateways 参数配置网格的入口和出口网关。 |
enabled 、additionalEgress 、additionalIngress 、egress 、ingress 和 openshiftRoute
|
常规
|
general 参数表示不适合其他任何位置的常规服务网格控制平面配置。
|
logging 和 validationMessages
|
策略
|
您可以使用 policy 参数配置服务网格控制平面的策略检查。可以通过将 spec.policy.enabled 设置为 true 来启用策略检查。 |
mixer 、remote 或 type 。type 可以设置为 Istiod 、Mixer 或 None 。
|
配置文件
|
您可以使用 profiles 参数选择要用于默认值的 ServiceMeshControlPlane 配置文件。 |
默认
|
代理
|
您可以使用 proxy 参数配置 sidecar 的默认行为。 |
accessLogging 、adminPort 、concurrency 和 envoyMetricsService
|
运行时
|
您可以使用 runtime 参数配置服务网格控制平面组件。 |
components 和 defaults
|
安全
|
security 参数允许您配置服务网格控制平面的安全方面。
|
certificateAuthority 、controlPlane 、identity 、dataPlane 和 trust
|
技术预览
|
techPreview 参数启用对处于技术预览阶段的功能的抢先访问。
|
N/A |
遥测
|
如果将 spec.mixer.telemetry.enabled 设置为 true ,则启用遥测。 |
mixer 、remote 和 type 。type 可以设置为 Istiod 、Mixer 或 None 。
|
追踪
|
您可以使用 tracing 参数启用网格的分布式追踪。 |
sampling 、type 。type 可以设置为 Jaeger 或 None 。
|
版本
|
您可以使用 version 参数指定要安装的服务网格控制平面的 Maistra 版本。创建具有空版本的 ServiceMeshControlPlane 时,准入 Webhook 会将版本设置为当前版本。具有空版本的新的 ServiceMeshControlPlanes 设置为 v2.0 。具有空版本的现有 ServiceMeshControlPlanes 保持其设置。 |
字符串 |
ControlPlaneStatus
表示服务网格的当前状态。
表 3. ServiceMeshControlPlane
资源 ControlPlaneStatus
名称 |
描述 |
类型 |
注释
|
annotations 参数存储额外的、通常是冗余的状态信息,例如 ServiceMeshControlPlane 部署的组件数量。这些状态由命令行工具 oc 使用,该工具尚不允许在 JSONPath 表达式中计数对象。
|
不可配置 |
条件
|
表示对象当前状态的最新可用观察结果。Reconciled 指示操作员是否已完成将已部署组件的实际状态与 ServiceMeshControlPlane 资源中的配置进行协调。Installed 指示服务网格控制平面是否已安装。Ready 指示所有服务网格控制平面组件是否已准备就绪。 |
字符串 |
组件
|
显示每个已部署的服务网格控制平面组件的状态。 |
字符串 |
应用规范
|
应用所有配置文件后的配置选项的结果规范。 |
ControlPlaneSpec
|
应用值
|
用于生成图表的结果 values.yaml。 |
ControlPlaneSpec
|
为此资源最后处理的图表的版本。
|
图表版本 |
字符串 |
观察到的世代
|
控制器在最近一次协调期间观察到的世代。状态中的信息与对象的这一特定世代有关。如果 status.observedGeneration 字段与 metadata.generation 不匹配,则 status.conditions 不会是最新的。 |
整数 |
操作符版本
|
最后处理此资源的操作符的版本。 |
字符串 |
就绪状态
|
组件和自有资源的就绪状态。 |
字符串 |
此示例 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: {}