第 2 章 安装 Cryostat
您可以使用 Operator Lifecycle Manager (OLM)在 Red Hat OpenShift 上的项目中安装 Red Hat build of Cryostat Operator。
安装 Red Hat build of Cryostat Operator 后,您可以从 Red Hat OpenShift Web 控制台创建 Cryostat 实例。
您还可以从红帽生态系统目录下载最新的 Cryostat 组件镜像。
2.1. 使用 Red Hat build of Cryostat Operator 在 Red Hat OpenShift 上安装 Cryostat
您可以使用 Operator Lifecycle Manager (OLM)在 Red Hat OpenShift 集群的项目中安装 Red Hat build of Cryostat Operator。您可以使用 Red Hat build of Cryostat Operator 创建单个命名空间或多命名空间 Cryostat 实例。您可以使用 Red Hat OpenShift Web 控制台访问的 GUI 控制这些实例。
如果需要将 Red Hat build of Cryostat Operator 订阅从 Cryostat 2.0 升级到 Cryostat 2.4,您必须将更新频道从 stable-2.0
改为 stable
。
先决条件
- 创建 OpenShift Container Platform 4.11 或更高版本的集群。
- 创建一个 Red Hat OpenShift 用户帐户,它有权在项目中安装 Red Hat build of Cryostat Operator。
- 在集群中安装了 Operator Lifecycle Manager (OLM)。
使用 Red Hat OpenShift 的 cert-manager Operator 安装 cert-manager。
- 如果使用 OpenShift Container Platform 4.11 或更高版本,您可以为 Red Hat OpenShift 安装 cert-manager Operator。如需更多信息,请参阅 Red Hat OpenShift (OpenShift Container Platform)的 cert-manager Operator。
- 使用 Red Hat OpenShift Web 控制台登录到 Red Hat OpenShift。
流程
- 在浏览器中,使用 Web 控制台进入到 Home > Projects。
- 选择您要在其中安装 Red Hat build of Cryostat Operator 的项目的名称。
安装 Red Hat build of Cryostat Operator:
- 在 Web 控制台的导航菜单中导航到 Operators > OperatorHub。
- 从列表中选择 Red Hat build of Cryostat Operator。您可以使用屏幕右上角的搜索框来查找 Red Hat build of Cryostat Operator。
要在项目中安装 Red Hat build of Cryostat Operator,请点 Install。
Red Hat OpenShift Web 控制台提示您创建 Cryostat 自定义资源(CR)。
注意如果您要安装为多个命名空间启用的 Cryostat 实例,请在 安装模式 中点击 All namespaces on the cluster (default) 单选按钮。
您可以手动或自动创建 CR。如果要手动创建 CR,请参阅第 4 步。如果要自动创建 CR,请参阅第 5 步。
如果要手动创建 CR,请完成以下步骤:
使用 Web 控制台进入到 Operators > Installed Operators,然后从已安装的 Operator 列表中选择 Red Hat build of Cryostat Operator :
图 2.1. 在安装的 operator 列表中查看 Red Hat build of Cryostat operator
- 点 Details 标签页。
要创建单命名空间 Cryostat 实例,请转至 Provided APIs 部分。然后,在 Cryostat 下,单击 Create instance。
注意如果要创建为多个命名空间启用的 Cryostat 实例,请在 Provided APIs 部分中选择 Cluster Cryostat 并点 Create instance。Cluster Cryostat API 具有控制 Cryostat 应用程序的部署及其相关组件的配置选项。如需更多信息,请参阅 在多个命名空间中创建 Cryostat。
图 2.2. 选择由 Red Hat build of Cryostat Operator 提供的 Cryostat API
- 点 Form view 单选按钮或 YAML 视图 单选按钮。如果要在 YAML 配置文件中输入您的信息,点 YAML 视图。
- 为您要创建的 Cryostat 实例指定一个名称。
可选: 在 Labels 字段中,为您要部署的 Operand 工作负载指定一个标签或注解。
您还可以为部署指定额外的配置选项:
图 2.3. 使用 web 控制台中的表单创建 Cryostat 实例
另外,您可以使用 YAML 模板来创建实例并指定额外的配置选项,而不是使用表单:
图 2.4. 使用 web 控制台中的 YAML 模板创建 Cryostat 实例
如果要使用自动提示选项创建 CR,请按照提示的说明操作,然后完成以下步骤:
- 点 Form view 单选按钮或 YAML 视图 单选按钮。如果要在 YAML 配置文件中输入您的信息,点 YAML 视图。
- 为您要创建的 Cryostat 实例指定一个名称。
可选: 在 Labels 字段中,为您要部署的 Operand 工作负载指定一个标签或注解。
您还可以为部署指定额外的配置选项:
图 2.5. 使用 web 控制台中的表单创建 Cryostat 实例
另外,您可以使用 YAML 模板来创建实例并指定额外的配置选项,而不是使用表单:
图 2.6. 使用 web 控制台中的 YAML 模板创建 Cryostat 实例
要为 Cryostat 实例启动创建过程,请点击 Create。
您必须等待 Cryostat 实例的所有资源就绪,然后才能访问它。
验证
- 在 Web 控制台的导航菜单中点 Operators,然后点 Installed Operators。
- 在安装的 Operator 表中,选择 Red Hat build of Cryostat Operator。
选择 Cryostat 选项卡。
您的 Cryostat 实例在实例表中打开,并列出以下条件:
-
TLSSetupComplete
设置为true
。 -
MainDeploymentAvailable
设置为true
。 可选:如果您启用了报告生成器服务,则会显示
ReportsDeploymentAvailable
并设置为true
。图 2.7. OpenShift 中 Cryostat 实例的 Status 列中设置为 True 的条件示例
-
可选: 从 Cryostat 表中选择您的 Cryostat 实例。进入 Cryostat Conditions 表,您可以在其中查看每个条件的更多信息。
图 2.8. 列出每个条件及其条件的 Cryostat Conditions 表示例
2.1.1. 使用 Web 控制台访问 Cryostat
您可以使用 Red Hat OpenShift Web 控制台访问的 Web 控制台访问和控制 Cryostat。
Cryostat 与 Red Hat OpenShift 中构建的 OAuth 服务器集成。当您尝试访问 Red Hat OpenShift 上的 Cryostat 时,OAuth 服务器会将您定向到 Red Hat OpenShift 登录页面,您可以在其中输入您的 Red Hat OpenShift 凭证。输入凭证后,OAuth 服务器会将您定向到 Cryostat web 控制台。
如果要访问 OpenShift Container Platform 上的所有 Cryostat 功能,您必须为 Red Hat OpenShift 用户帐户请求特定于 Cryostat 的基于角色的访问控制(RBAC)权限。
请参阅 RBAC 权限。
先决条件
- 在项目中创建 Cryostat 实例。
- 使用 Red Hat OpenShift Web 控制台登录。
流程
- 在 Red Hat OpenShift Web 控制台中,导航到 Installed Operators,然后从列表中选择 Red Hat build of Cryostat Operator。
选择您要访问的 Cryostat 实例:
- 对于单命名空间 Cryostat 实例,点 Cryostat 选项卡,然后从表中选择 Cryostat 实例。
对于多命名空间 Cryostat 实例,点 Cluster Cryostat 选项卡,然后从表中选择 Cluster Cryostat 实例。
图 2.9. 在 Cryostat 选项卡下选择单命名空间 Cryostat 实例的示例
选择应用程序 URL 以访问 Cryostat 登录屏幕:
对于单命名空间 Cryostat 实例,点 Application URL 部分中的链接访问 Cryostat 登录屏幕。OAuth 服务器会重定向到 OpenShift Container Platform 登录页面,以便您可以获取 OAuth 访问令牌以向 Cryostat API 进行身份验证。
图 2.10. 在 Application URL 部分下选择链接的示例
对于多命名空间 Cryostat 实例,请使用以下方法之一访问应用程序 URL:
在 Red Hat OpenShift 命令行控制台(CLI)中,输入以下命令,并将 "clustercryostatinstance-name" 替换为 multi-namespace Cryostat 实例的名称:
oc get clustercryostat clustercryostatinstance-name
返回应用程序 URL,您可以直接从命令行打开或复制到浏览器。
-
点 YAML 选项卡,再进入
status:
部分。将applicationURL
下可用的链接复制到您的浏览器中。
输入您的凭据详细信息,然后单击 登录。第一次通过 OAuth 服务器登录时,网页浏览器上会打开 Authorize Access 页面。
图 2.11. 在 Web 浏览器中打开的 Authorize Access 页面示例
- 检查 Requested permissions 选项,然后选中所需复选框。要获得最佳性能,请选中这两个复选框。
选择以下选项之一:
- 如果要接受您选择的请求权限,请点击 Allow selected permissions 按钮。
如果要拒绝所有请求的权限选项,请点击 Deny 按钮。
您的 Web 浏览器会将您重定向到 Cryostat Web 控制台,您可以在其中监控在 Java 虚拟机(JVM)中运行的 Java 应用程序。
2.1.2. RBAC 权限
您可能需要为 Red Hat OpenShift 用户帐户请求特定于 Cryostat 的基于角色的访问控制(RBAC)权限,以便您可以访问 OpenShift Container Platform 上的所有 Cryostat 功能。
设置与 Red Hat OpenShift 用户帐户相关的 RBAC 权限。Cryostat 读取您的 Red Hat OpenShift 帐户,以确定用户可以在 Cryostat 上访问哪些功能。如果要为 Cryostat 用户帐户设置特定权限,请参阅使用 Web 控制台访问 Cryostat。
如果您有有限的用户权限,则只能访问 Red Hat OpenShift 授权您使用的 Cryostat 功能。如果您有只读权限,则只能查看由其他用户创建的 JDK flight 记录。您不能创建新的记录或删除现有的记录。
您可以使用特定于 Cryostat 的 RBAC 权限创建自定义角色,然后将此角色绑定到用户的 Red Hat OpenShift 帐户。当您想为在同一 Cryostat 命名空间中运行的每个用户设置特定权限时,这个用例很有用。
在您想要对 JFR 记录进行只读访问权限时,请考虑另一个用例。您可以创建一个自定义角色,并为角色的 pods/exec
资源的 verbs:
字符串指定 get
。
Red Hat OpenShift 根据 YAML 配置中的 apiGroups
配置字符串中指定的值授予用户权限。Cryostat 将 Red Hat OpenShift 端点映射到目标应用程序,以便属于该角色的用户可以在目标应用程序上执行某些任务,如在目标应用程序上启动记录。
以下 YAML 配置演示了定义了所有特定于 Cryostat 的 RBAC 权限的 ClusterRole
:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: creationTimestamp: null name: oauth-client rules: - apiGroups: - operator.cryostat.io resources: - cryostats verbs: - create - patch - delete - get - apiGroups: - "" resources: - pods - pods/exec - services verbs: - create - patch - delete - get - apiGroups: - "" resources: - replicationcontrollers - endpoints verbs: - get - apiGroups: - apps resources: - deployments verbs: - create - get - apiGroups: - apps resources: - daemonsets - replicasets - statefulsets verbs: - get