第 5 章 修复的问题
Cryostat 版本可以包括对早期版本里发现的问题的修复。请参阅以下备注以了解每个问题及其解决方案的详细信息。
在 Cryostat 3.0.1 中修复的问题
在 Cryostat 3.0.1 版本中解决了以下问题:
因为 Webhook TLS 错误,无法创建或更新 Cryostat 自定义资源
在 Cryostat 3.0.1 之前,如果您安装了与 Cryostat Operator 相同的命名空间中使用 webhook 的其他 Operator,请尝试创建或更新 Cryostat 自定义资源可能会失败。这个行为会导致以下类型的错误消息:
Error "failed calling webhook "vcryostat.kb.io": failed to call webhook: Post "https://cryostat-operator-controller-manager-service.openshift-operators.svc:443/validate-operator-cryostat-io-v1beta2-cryostat?timeout=10s": tls: failed to verify certificate: x509: certificate is valid for infinispan-operator-controller-manager-service.openshift-operators, infinispan-operator-controller-manager-service.openshift-operators.svc, not cryostat-operator-controller-manager-service.openshift-operators.svc" for field "undefined".
Error "failed calling webhook "vcryostat.kb.io": failed to call webhook: Post "https://cryostat-operator-controller-manager-service.openshift-operators.svc:443/validate-operator-cryostat-io-v1beta2-cryostat?timeout=10s": tls: failed to verify certificate: x509: certificate is valid for infinispan-operator-controller-manager-service.openshift-operators, infinispan-operator-controller-manager-service.openshift-operators.svc, not cryostat-operator-controller-manager-service.openshift-operators.svc" for field "undefined".
发生此错误的原因是 Cryostat Operator 的 Webhook 服务上的标签选择器不足够具体,并可与其他 Operator 匹配。
Cryostat 3.0.1 通过使 Cryostat Operator 的 webhook 服务的标签选择器设置为只与 Cryostat Operator pod 匹配,从而解决了这个问题。
无法上传 JMC ByteCode Agent 检测模板
在 Cryostat 3.0.1 之前,Cryostat 无法接受 JDK Mission Control (JMC) ByteCode Agent 集成功能中的 bytecode 探测定义模板。在这种情况下,服务器收到上传的模板 XML 文件,但服务器无法找到验证模式并拒绝请求。
Cryostat 3.0.1 通过正确找到模板架构文件来解决这个问题,该文件使服务器能够验证和接受上传的 XML 文件。
使用标签文件上传存档记录时解析失败
将 JDK Flight Recorder (JFR)文件从工作站上传到 Cryostat 存储时,您还可以选择一个包含与上传的 JFR 记录相关的元数据和标签信息的 JSON 文件。
在 Cryostat 3.0.1 之前,所选 JSON 文件被错误地解析,标签信息没有应用到 JFR 记录。
Cryostat 3.0.1 通过更正提供的元数据文件的解析过程来解决这个问题,这样可确保标签正确上传到服务器,并与上传的 JFR 记录相关联。
拓扑视图无法根据标签或注解过滤目标 JVM
Cryostat Web 控制台的 Topology 视图显示用户发现的目标 JVM 应用程序的图形或列表视图。Topology 视图包含一个下拉菜单,可用于根据各种属性过滤这些目标,包括任何可能出现的 OpenShift 标签或注解。
在 Cryostat 3.0.1 之前,Cryostat 服务器会错误地处理这些标签和注解。在这种情况下,服务器会将标签和注解替换为 [object Object] 文本,这会阻止基于这些属性进行任何过滤。
从 Cryostat 3.0.1 开始,Topology 视图可以正确地显示任何标签和注解,作为可用于过滤目标 JVM 列表的键值对。
匹配表达式无法使用 target.agent 属性
API 端点,如 /api/v3/discovery 或 /api/v3/targets 列表带有各种属性的目标 JVM 对象,包括 代理 属性。agent 属性反映了目标 JVM 使用 JMX 连接还是 Cryostat 代理 HTTP 连接。
在 Cryostat 3.0.1 之前,您无法参考或选择 agent 属性以过滤目的:
- 为存储的凭证或自动化规则创建匹配表达式时
- 当在 Cryostat Web 控制台的 Topology 视图中以图形方式过滤目标 JVM 时
从 Cryostat 3.0.1 开始,您可以引用匹配表达式中的 agent 属性。您还可以在 Topology 视图中选择 agent 属性作为过滤器,只显示使用 Cryostat 代理的目标 JVM。