下表列出了ServiceMeshControlPlane
资源的顶级参数。
表 1. ServiceMeshControlPlane
资源参数
名称 |
描述 |
类型 |
apiVersion
|
APIVersion 定义此对象表示的版本化模式。服务器将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。对于ServiceMeshControlPlane 版本 2.0,值为maistra.io/v2 。 |
对于ServiceMeshControlPlane 版本 2.0,值为maistra.io/v2 。 |
kind
|
Kind 是一个字符串值,表示此对象表示的 REST 资源。 |
对于 ServiceMeshControlPlane,唯一有效的值是ServiceMeshControlPlane 。 |
metadata
|
关于此ServiceMeshControlPlane 实例的元数据。您可以为您的服务网格控制平面安装提供名称以跟踪您的工作,例如basic 。 |
字符串 |
spec
|
此ServiceMeshControlPlane 的期望状态的规范。这包括构成服务网格控制平面的所有组件的配置选项。 |
更多信息,请参见表 2。 |
status
|
此ServiceMeshControlPlane 和构成服务网格控制平面的组件的当前状态。 |
更多信息,请参见表 3。 |
下表列出了ServiceMeshControlPlane
资源的规范。更改这些参数会配置 Red Hat OpenShift 服务网格组件。
表 2. ServiceMeshControlPlane
资源规范
名称 |
描述 |
可配置参数 |
addons
|
addons 参数配置除了核心服务网格控制平面组件之外的其他功能,例如可视化或指标存储。
|
3scale 、grafana 、jaeger 、kiali 和 prometheus 。
|
cluster
|
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: {}