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