配置定制资源
了解如何在 Red Hat® OpenShift® Container Platform上为 IBM Robotic Process Automation 配置定制资源。
有关配置私钥的更多信息,请参阅 私钥 🡥。
开始之前
在创建 IBM RPA 定制资源之前,需要创建四个私钥:
数据库连接私钥
创建包含数据库连接字符串的私钥。SMTP 密钥
创建包含 SMTP 服务器的用户名和密码的密钥。第一个租户所有者私钥
从 V 21.0.6: 开始 创建包含第一个租户所有者的名称和电子邮件的私钥。仪表板密码私钥
如果多个 IBM RPA 实例共享数据库服务器,那么它们必须共享仪表板密码。 为共享数据库服务器的每个 IBM RPA 实例创建包含相同密码的私钥。从 V 21.0.3开始,您不再需要创建仪表板私钥。 如果您的版本为 21.0.3 或更高版本,请跳过此步骤。
Redis password secret
可选。 在输入 IBM RPA 操作程序之前,请为 Redis 创建密码密钥。如果跳过此步骤,那么操作程序将生成缺省凭证,但您将收到一条警告消息以更改 Redis 密码。 您必须使用新的 Redis 私钥重新安装 IBM RPA 操作程序,以有效更改密码并除去警告消息。
有关配置私钥的更多信息,请参阅 私钥 🡥。
创建数据库私钥
使用以下命令创建该私钥:
oc create secret generic <NAME> -n <NAMESPACE> --from-literal=AddressContext='<ADDRESS_CONTEXT_CONNECTION_STRING>' --from-literal=AutomationContext='<AUTOMATION_CONTEXT_CONNECTION_STRING>' --from-literal=KnowledgeBase='<KNOWLEDGEBASE_CONTEXT_CONNECTION_STRING>' --from-literal=WordnetContext='<WORDNET_CONTEXT_CONNECTION_STRING>' --from-literal=AuditContext='<AUDIT_CONTEXT_CONNECTION_STRING>'
替换以下值:
NAME
您私钥的名称。 它必须与 CR 的externalConnection部分中指定的名称相匹配。NAMESPACE
您要在其中创建私钥的名称空间。 它可以是您在其中创建 IBM RPA 实例的名称空间。ADDRESS_CONTEXT_CONNECTION_STRING
与地址数据库的连接字符串。AUTOMATION_CONTEXT_CONNECTION_STRING
到自动化数据库的连接字符串。KNOWLEDGEBASE_CONTEXT_CONNECTION_STRING
与知识库数据库的连接字符串。WORDNET_CONTEXT_CONNECTION_STRING
与 wordnet 数据库的连接字符串。AUDIT_CONTEXT_CONNECTION_STRING
与审计数据库的连接字符串。
这些连接字符串必须与您创建的 Microsoft SQL Server 数据库相对应,如 数据库需求 文档中所述。
下面是示例连接字符串:
Data Source=dbserver.example.com\SQLEXPRESS,1433;Initial Catalog=automation;User ID=dbuser;Password=dbpass;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
创建 SMTP 私钥
使用以下命令创建该私钥:
oc create secret generic <NAME> -n <NAMESPACE> --from-literal=username=<USERNAME> --from-literal=password=<PASSWORD>
替换以下值:
NAME
您私钥的名称。 它必须与 CR 的smtp部分的userSecret属性中指定的名称相匹配。NAMESPACE
您要在其中创建私钥的名称空间。 它需要与您在其中创建 IBM RPA 实例的名称空间相同。USERNAME
smtp 服务器的用户名。PASSWORD
smtp 服务器的密码。
创建第一个租户所有者私钥
从 21.0.6: 现在需要此私钥。
使用以下命令创建该私钥:
oc create secret generic <NAME> -n <NAMESPACE> --from-literal=name=<USERNAME> --from-literal=email=<EMAIL>
替换以下值:
NAME
您私钥的名称。 它必须与 CR 的firstTenant部分的ownerSecret属性中指定的名称相匹配。NAMESPACE
您要在其中创建私钥的名称空间。 它必须与您在其中创建 RPA 实例的名称空间相同。USERNAME
租户管理员的用户名。EMAIL
租户管理员用户的电子邮件地址。
创建仪表板私钥
使用以下命令创建该私钥:
oc create secret generic <INSTANCE-NAME>-apiserver-rpa-dashboard -n <NAMESPACE> --from-literal=DASHBOARD_PASSWORD='<PASSWORD>'
替换以下值:
INSTANCE-NAME
IBM RPA 实例的名称,在 Robotic Process Automation CR 的name属性中指定。PASSWORD
符合托管您的数据库服务器的系统密码要求的安全密码。 对于共享数据库服务器的每个 IBM RPA 实例,此密码必须相同。
🛈 请记住: 在 IBM RPA 21.0.3 或更高版本中不再需要仪表板私钥。
创建 Redis 密码密钥
使用指定的密码在本地创建 YAML 密钥:
apiVersion: v1 kind: Secret metadata: name: <RPA-INSTANCE-NAME>-redis-rpa namespace: <NAMESPACE> labels: app.kubernetes.io/component: rpa app.kubernetes.io/instance: <RPA-INSTANCE-NAME> app.kubernetes.io/managed-by: ibm-rpa-operator app.kubernetes.io/name: redis rpa.automation.ibm.com/cr-name: <RPA-INSTANCE-NAME> data: default_password: <PASSWORD> type: Opaque替换以下值:
RPA-INSTANCE-NAME
IBM RPA 实例的名称,在 Robotic Process Automation CR 的name属性中指定。NAMESPACE
您要在其中创建私钥的名称空间。 它需要与您在其中创建 IBM RPA 实例的名称空间相同。PASSWORD
Redis的 base64-encoded 密码。 在 21.0.7-FP012之前的版本中,此字段为ADMIN_PASSWORD而不是default_password。
应用文件:
oc apply -f <FILENAME>.yaml将
FILENAME替换为 YAML 文件的路径。
- 从 V 21.0.7-FP012开始,现在可以在安装操作程序后更改密码。
- 如果您未创建密码私钥,那么操作员将生成缺省密码,并且您将收到警告消息,建议您更改密码。
- 要除去警告消息并更改密码,您可以更改 Redis 密码私钥中的
default_password字段。 在 21.0.7-FP012之前的版本中,必须创建新的 Redis 密码密钥并重新安装 IBM RPA 操作程序。
基本设置
以下示例显示了包含所有必需部分和属性的最小 IBM RPA 定制资源:
apiVersion: rpa.automation.ibm.com/v1beta1
kind: RoboticProcessAutomation
metadata:
name: rpa-sample
spec:
license:
accept: true
version: 1.7.14
tls: {}
api:
externalConnection:
secretName: rpa-db
firstTenant:
name: ibm
owner:
ownersecret:
secretName: rpa-owner
replicas: 1
smtp:
port: 587
server: smtp.example.com
userSecret:
secretName: rpa-smtp
storage: {}
ui:
replicas: 1
ocr:
replicas: 1
了解必需的 CR 部分
license
接受许可证。 有关许可证详细信息,请参阅 IBM RPA 许可证 🡥 。version
请指定 IBM RPA 操作数的版本。 请参阅版本控制参考,了解可用选项。tls
指定空 TLS 部分,以便操作程序创建自签名证书。externalConnection
指定包含数据库连接字符串的私钥的名称。apifirstTenant
指定第一个租户的认证配置。groupMappings(从 21.0.2开始不推荐)
指定身份提供者中映射到特定 IBM RPA 角色的组。 在上一个示例中, LDAP 中的 IBM 用户组映射到 IBM RPA 用户角色。 要指定多个组,请使用分号进行分隔。adminGroups
指定管理用户组的名称。superAdminsGroups
指定超级管理员用户组的名称。userGroups
指定用户组的名称。
注: 需要将 IBM RPA 租户组映射到有效 LDAP 组,用户才能访问 UI。
指定身份提供者中映射到特定 IBM RPA 角色的组。 在上一个示例中, LDAP 中的 IBM 用户组映射到 IBM RPA 用户角色。 要指定多个组,请使用分号进行分隔。
注: 需要将 IBM RPA 租户组映射到有效 LDAP 组,用户才能访问 UI。
name
第一个租户的名称ownerownerSecret
21.0.6: 包含第一个租户所有者的用户名和电子邮件的私钥的名称。name
在 21.0.6: 租户所有者的用户名。 请改为使用ownerSecret。email
21.0.6: 租户所有者的电子邮件。 请改为使用ownerSecret。
replicas
IBM RPA的 API 服务器 pod 的副本数。smtp
配置 IBM RPA 用于发送电子邮件通知的 SMTP 服务器。port
使用 TLS 连接到 SMTP 服务器时使用的端口号。server
SMTP 服务器的主机名userSecret
包含 SMTP 服务器的用户名和密码的私钥的名称。
storage
通过指定空存储部分,操作程序将使用集群缺省存储类来创建持久卷声明。
uireplicas
UI 服务器 pod 的副本数。
ocrreplicas
ABBYY™ 光学字符识别 (OCR) pod 的副本数。 如果指定 0,那么不会创建任何 OCR pod。
可选配置
缺省情况下,您会获得多个部分,但不需要在 CR 中指定这些部分。 如果要定制其值并更改缺省行为,那么可以包含这些部分:
antiVirus
配置 IBM RPA的防病毒组件。 此部分是可选的。 如果您未指定此值,那么缺省副本数为 1。replicas
反病毒 pod 的副本数。 如果指定 0,那么不会创建反病毒 pod。autoUpdateEnabled
配置 IBM RPA 反病毒服务是否自动更新病毒签名数据库。 如果true,那么它将使反病毒服务能够与因特网建立出口连接。 缺省值为false。
nlp
配置 IBM RPA的 NLP 提供程序组件。 此部分是可选的。 如果您未指定此值,那么缺省副本数为 1。replicas
NLP pod 的副本数。 如果指定 0 ,那么不会创建任何 NLP pod。
webDriverUpdates
配置服务器是否应查找 Web 浏览器驱动程序更新。systemQueueProvider
为 IBM RPA配置系统队列提供程序。highAvailability
如果未在 CR 中指定highAvailability,那么缺省值为false,并将 IBM MQ 的单个实例部署为系统队列提供程序。 如果true,那么它将部署 IBM MQ的高可用性配置。supplementalGroups
提供要在容器上设置的 Linux™ 组标识的列表。 使用 NFS 存储器时可能需要执行此操作,如:supplementalGroups: - 4001 - 4002如果在 Red Hat® OpenShift® Kubernetes Service on IBM Cloud (ROKS) 或 Red Hat® OpenShift® Service on AWS (ROSA) 上安装 IBM RPA ,请使用以下配置:
supplementalGroups: - 65534重要信息:对于具有 Red Hat Enterprise Linux™ 7 的集群,请使用99而不是65534。要了解更多信息,请参阅配置存储器。 有关其他设置,请参阅 容器和 IBM Cloud Pak for Integration 中的 IBM MQ。
queueManagerVersion
您可以指定要在当前安装中使用的 IBM MQ 操作程序的版本。 如果将 IBM RPA 与其他 IBM Cloud Paks 一起安装在同一名称空间中,那么可以使用此选项。 请参阅 IBM MQ Operator 的发布历史记录 ,以获取受支持的 IBM MQ 版本的完整列表。queueManagerLicense
输入 IBM MQ 操作程序版本的许可参考。 请参阅 mq.ibm.com/v1beta1 ,以获取受支持值的完整列表。queueManagerLicenseUsage
输入 IBM MQ 操作程序版本的许可使用参考。 请参阅 mq.ibm.com/v1beta1 ,以获取受支持值的完整列表。
createRoutes
配置 IBM RPA 操作程序是否为 IBM RPA创建 Red Hat® OpenShift® Container Platform 路径。
false 表示 IBM RPA 不创建自己的路由, true 表示 IBM RPA 创建的是自己的路由。 如果未指定 createRoutes,那么缺省值为 false。
❕ 重要信息: 仅当您在 21.0.2之前安装了 IBM RPA 操作程序时,才会将此值设置为 true 。 如果要安装较新版本,那么不再需要此配置,并且仅为向后兼容旧路由系统而保留此配置。
示例:
apiVersion: rpa.automation.ibm.com/v1beta1
kind: RoboticProcessAutomation
metadata:
name: rpa-sample
spec:
license:
accept: true
version: 1.7.14
tls: {}
api:
externalConnection:
secretName: rpa-db
firstTenant:
name: ibm
owner:
ownersecret:
secretName: rpa-owner
replicas: 1
smtp:
port: 587
server: smtp.example.com
userSecret:
secretName: rpa-smtp
storage: {}
webDriverUpdates:
enabled: true
systemQueueProvider:
storage:
class: my-storage-class
ui:
replicas: 1
ocr:
replicas: 1
注: 在基本配置中,缺省情况下会获得一个副本,但不需要在 CR 中指定。
模板
还可以使用以下字段为容器创建模板:
template(可选)
描述创建 pod 时使用的 pod 覆盖的对象。pod(可选)
包含 pod 信息。metadata(可选)
定制任务管理器 pod 元数据。annotations
在任务管理器 pod 上设置或覆盖注释。
spec(可选)
包含 pod 容器和调度信息。containers(可选)
包含 pod 容器覆盖的规范。name(必需): 例如,taskmanager。resources
描述计算资源需求。image
覆盖容器映像。imagePullPolicy覆盖imagePullPolicy。
affinity(可选)
pod 调度的亲缘关系信息。 有关更多信息,请参阅 Kubernetes 文档 🡥。nodeAffinity(可选)
用于选择调度程序选择的节点。podAffinity(可选)
使用它可根据已部署的 pod 来影响 pod 的部署位置。podAntiAffinity(可选)
描述 pod 反亲缘关系调度规则,例如避免将此 pod 与其他某个 pod 放在同一节点或区域中。
tolerations
可选core/v1/Tolerations数组,用于指定调度污点的容错。 有关更多信息,请参阅 Kubernetes 文档 🡥。
模板的示例包括:
spec:
template:
pod:
spec:
containers:
- name: svc
resources:
requests:
cpu: 8
memory: 64Gi
limits:
cpu: 10
memory: 128Gi
- name: sidecar
resources:
requests:
cpu: 1
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- amd64
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/component: rpa
app.kubernetes.io/instance: test-instance
app.kubernetes.io/managed-by: ibm-rpa-operator
app.kubernetes.io/name: apiserver
rpa.automation.ibm.com/cr-name: test-instance
topologyKey: kubernetes.io/hostname
weight: 80
标签和注释
在 CR 上定义的标签和注释可以与操作程序定义的标签和注释合并。 根据优先级,这些标签和注释的顺序如下:
- 模板格式标签和注释(最高优先级)
- 短格式标签和注释
- 操作程序的缺省值(最低优先级)
标签和注释可以应用于 pod。
如果 CR 只有一个主部署,或者如果部署无需独立配置,那么可以使用 labels 和 annotations 键来配置标签和注释:
spec:
labels:
my.custom/label: "foo"
annotations:
my.custom/annotation: "bar"
如果 CR 有多个需要独立配置的组件,那么可以将这些键包含在组件的子部分中:
spec:
ui:
labels:
my.custom/label: "foo"
annotations:
my.custom/annotation: "bar"
api:
labels:
my.custom/label: "fizz"
annotations:
my.custom/annotation: "buzz"
或者,可以按组件拆分块:
spec:
labels:
ui:
my.custom/label: "foo"
api:
my.custom/label: "fizz"
annotations:
ui:
my.custom/annotation: "bar"
api:
my.custom/annotation: "buzz"
使用节点选择器的工作负载布置
模式必须使用选择器 spec 描述符来标记 nodeSelector 字段。
如果 CR 只有一个主部署,或者部署无需独立配置,请使用 nodeSelector 键来配置节点选择器:
spec:
nodeSelector:
disktype: ssd
如果有多个需要独立配置的组件,那么可以将这些键包含在组件的子部分中:
spec:
ui:
nodeSelector:
type: edge
api:
nodeSelector:
disktype: ssd
或者,可以按组件拆分块:
spec:
nodeSelector:
ui:
type: edge
api:
disktype: ssd
Redis 的定制
这是可选的 Redis 资源覆盖,它对所有 Redis 资源(即 ProxyLog、DB、Proxy 和 Mgmt)应用统一的内存和 CPU 限制更改。
CR 覆盖是一个顶级 CR 属性 sharedCache,如下所示:
sharedCache:
memoryLimit: 250Mi
cpuLimit: 0.8
缺省情况下,memoryLimit 的值为 100Mi,且 cpuLimit 设置为 0.4。
sharedCache 属性。 现在,您可以直接在 Redis 操作程序规范中定义 CPU 和内存限制。计算资源限制
您可以定制 CPU 和内存等计算资源的限制。 这将使用字段名称 resources。
这可按如下所示进行指定:
| 字段 | 描述 |
|---|---|
| requests(对象) | requests 描述所需的最低计算资源量。 如果省略容器的 requests,而且已显式指定 limits,那么会缺省为 limits,否则会缺省为实现所定义的值。 |
| requests.cpu(数量) | CPU 请求。 |
| requests.memory(数量) | 内存请求。 |
| limits(对象) | limits 描述允许的最低计算资源量。 |
| limits.cpu(数量) | CPU 限制。 |
| limits.memory(数量) | 内存限制。 |
下面是示例:
resources:
requests:
cpu: "8"
memory: 64Gi
limits:
cpu: "12"
memory: 128Gi
此外,这还能以模板格式用作要合并到容器的覆盖。 仅当容器的资源限制不可能由用户更改时,才应使用此项:
spec:
template:
pod:
containers:
- name: helper-pod
resources:
requests:
cpu: 0.5
memory: 128Mi
limits:
cpu: 1
memory: 128Mi