创建 Analytics CR
为 API Connect 分析创建安装 CR,以便部署分析子系统。
准备工作
重要信息: 安装分析子系统时,必须配置分析子系统,以便使用 mTLS 或 JWT 保护来自管理子系统的通信。 有关子系统间通信的更多信息,请参阅 子系统间通信的网络需求。
查看 分析安装前规划 以决定部署选项。
关于此任务
要安装分析子系统,请在 YAML 文件中定义分析定制资源 (CR)。 YAML 文件包含分析部署的所有配置设置。 可使用该文件来安装、升级和更新 Analytics 子系统的配置。
注: analytics_cr.yaml 模板文件存储在 helper_files.zip解压缩到的目录中。
过程
- 从 helper_files 创建或复制 analytics_cr.yaml 文件。
- 编辑 CR 文件并更新以下设置:
在将这些占位符替换为您环境的实际值之前,无法安装 Analytics 子系统。
$APP_PRODUCT_VERSION- API Connect 子系统的应用程序版本。
version: <version_number>示例版本号: 10.0.8.6
$PROFILE$SECRET_NAME- 用于从 Docker 注册表中提取映像的秘钥的名称。
imagePullSecrets: - apic-registry-secret $DOCKER_REGISTRY- 将安装映像上载到的 Docker 注册表的主机名。 例如:
my.docker.registry.domain.example.com. - $INGRESS_CLASS
- 您希望端点使用的入口类。 此属性是可选的,如果未指定此属性,那么将使用带有注释
ingressclass.kubernetes.io/is-default-class: true的入口类。 如果此类入口类在 Kubernetes 环境中不存在,那么将使用nginx。 如果设置此值,那么它必须引用在 Kubernetes 系统中配置的有效入口类。 例如:spec: ... ingestion: endpoint: #ingressClassName: $INGRESS_CLASS注: 此属性在模板 CR 文件中已注释掉。 如果设置此值,请确保同时取消注释。 $STACK_HOST- API Connect 堆栈的入口子域。 用于采集端点。 用于端点的域名不能包含下划线“_”字符。 您可以定制子域或完整主机名:
- 仅子域定制
接受为入口主机名预定义的前缀,以使用
$STACK_HOST的所有实例并将其替换为 API Connect 堆栈的入口子域。 例如,如果主机为myhost.subnet.example.com:ingestion: endpoint: < ... > hosts: - name: ai.myhost.subnet.example.com secretName: analytics-ai-endpoint < .... >
- 仅子域定制
$STORAGE_TYPE- 如果在
$PROFILE中选择了 n1 (一个副本) 概要文件,请将$STORAGE_TYPE设置为shared。 如果选择了 n3 (三个副本) 概要文件,请将$STORAGE_TYPE设置为dedicated。 有关分析存储类型的更多信息,请参阅 存储类型。 $STORAGE_CLASS- 要用于持久卷声明的 Kubernetes 存储类。 有关更多信息,请参阅 分析安装前规划。 通过运行以下命令来查找目标集群中的可用存储类:
kubectl get sc。- 对于共享存储器部署 (将
$STORAGE_TYPE设置为shared):storage: type: shared shared: volumeClaimTemplate: storageClassName: local_storage - 对于专用存储器部署 (将
$STORAGE_TYPE设置为dedicated) ,请在以下两个位置设置$STORAGE_CLASS:storage: type: dedicated shared: volumeClaimTemplate: storageClassName: local_storage ... master: volumeClaimTemplate: storageClassName: local_storage ...
- 对于共享存储器部署 (将
- $data_volume_size
- 将
$DATA_VOLUME_SIZE替换为您在 估算存储需求中计算的值。 如果无法估算存储需求,请将其设置为 500Gi。storage: ... shared: volumeClaimTemplate: ... volumeSize: 500Gi
- 编辑
license设置。- 将
accept:设置为true以接受许可证。 缺省值为false。 如果您不接受许可证,那么操作员不会安装子系统。 - 设置
metric:以跟踪产品使用情况。 输入用于程序许可证的计量单位:- PROCESSOR_VALUE_UNIT-缺省值。 如果将该字段留空,那么将使用此值。
- MONTHLY_API_CALL - 仅适用于 IBM API Connect 混合津贴计划。
有关跟踪每月调用量的信息,请参阅 计算 API 调用总数。
- 将
use:设置为production或nonproduction以匹配您购买的许可证。 - 将
license:设置为您购买的 API Connect 版本的许可证 ID。 请参见 API Connect 许可证.
用于接受生产系统许可证的示例条目:
license: accept: true metric: PROCESSOR_VALUE_UNIT use: production license: L-RJON-CEBL97 - 将
- 可选: 如果要对 管理和分析子系统之间以及网关和分析子系统之间的通信禁用 mTLS , 并改为启用 JWT ,请添加并设置属性
mtlsValidateClient和jwksUrl。
其中, <JWKS URL > 是托管在管理子系统上的JWKS端点的 URL。 要了解spec: ... mtlsValidateClient: false jwksUrl: <JWKS URL>jwksUrl,请描述管理 CR 并检查status:部分:
有关 JWT 安全性的更多信息,请参阅 启用 JWT 安全性而不是 mTLS。kubectl describe mgmt -n <namespace> ... status: - name: jwksUrl secretName: api-endpoint type: API uri: https://api.apic.acme.com/api/cloud/oauth2/certs注: 无法在 V5 兼容网关到分析消息流上使用 JWT。 - 可选: 启用 Amazon SNS for Engagement ,请完成以下步骤:
- 创建 AWS 凭据机密。 运行以下命令,创建包含 AWS 凭据的 Kubernetes/OpenShift secret:
此处,kubectl create secret generic <aws-creds-secret> \ --from-literal=access_key_id=<aws_access_key_id> \ --from-literal=secret_access_key=<aws_secret_access_key> \ -n <namespace>- aws-凭证-密钥
- 秘密的名称
- AWS_ACCESS_KEY_ID
- 您的实际 AWS IAM 访问密钥 ID
- AWS_SECRET_ACCESS_KEY
- 您的实际 AWS IAM 秘密访问密钥
- 名称空间
- 部署分析 CR 的命名空间
重要信息: 密钥的名称必须完全一致:- ACCESS_KEY_ID
- SECRET_ACCESS_KEY
- 参考分析 CR 中的秘密。 在分析自定义资源 YAML 中,添加以下条目:
awsCredentialsSecret: secretName: <aws-creds-secret>将 aws-creds-secret 替换为您在步骤 a 中创建的秘密的确切名称。 分析服务现在可以使用 AWS 凭据访问 Amazon SNS。
- 创建 AWS 凭据机密。 运行以下命令,创建包含 AWS 凭据的 Kubernetes/OpenShift secret:
- 可选: 如果计划 配置分析数据库备份,请定义备份所需的存储器:通过在
spec.storage中添加backup.volumeClaimTemplate属性来定义备份 PVC。 例如:spec: storage: backup: volumeClaimTemplate: storageClassName: <storage class> volumeSize: <size>如果不确定所需的卷大小,那么可以在安装后配置
backup.volumeClaimTemplate。 - 保存该文件。