安装
Alauda Data Services Search Engine E1 通过平台的 OperatorHub,使用 Operator Lifecycle Manager (OLM) 安装。
先决条件
- 集群版本为 ACP 4.1、4.2、4.3 或 4.4,节点架构为 amd64 或 arm64,网络配置为 IPv4、IPv6 或双栈。
- 在所有可能运行 OpenSearch pod 的节点上,内核设置
vm.max_map_count的值为 262144 或更高。请参阅在节点上设置 vm.max_map_count。 - 用于存储 OpenSearch 数据卷的 StorageClass。请参阅存储。
安装信息
该 operator 为其自定义资源提供验证准入 Webhook。OLM 会配置 Webhook 服务证书;无需安装 cert-manager。
在 Web 控制台中安装
- 在 ACP Web 控制台中,打开 Marketplace 中的 OperatorHub。
- 找到 Alauda Data Services Search Engine E1 并打开。
- 单击 安装。
- 选择
stable通道和AllNamespaces安装模式。除非有理由使用其他命名空间,否则请使用建议的命名空间opensearch-system。 - 确认安装,并等待 operator 状态变为 Succeeded。
如果列表中没有 Alauda Data Services Search Engine E1,请联系平台管理员,让其在平台 Marketplace 中提供此软件包。
使用 CLI 安装
如果要从命令行安装,请创建命名空间、一个适用于所有命名空间的 OperatorGroup,以及一个 Subscription。请将 <catalog-source> 和 <catalog-namespace> 替换为平台上提供 opensearch-operator 软件包的 catalog source。
spec 为空的 OperatorGroup 会选择所有命名空间,这与该 operator 支持的唯一安装模式一致。
对于 installPlanApproval: Manual,请批准 OLM 创建的 InstallPlan:
检查 operator 是否正在运行:
ClusterServiceVersion opensearch-operator.v3.0.0-acp.3 必须达到 Succeeded 阶段。
已创建 Pod 的 Pod Security
operator Pod 本身以非 root 用户运行,使用 RuntimeDefault seccomp 配置文件,不允许权限提升,删除所有 capabilities,并使用只读根文件系统。
对于它创建的 Pod(OpenSearch 节点池、引导 Pod、安全配置作业和 OpenSearch Dashboards),当您的 OpenSearchCluster 未设置以下字段时,operator 会填充相应的默认值:
使用这些默认值时,Pod 与 Kubernetes restricted Pod Security 级别兼容,因此您可以在标记为 pod-security.kubernetes.io/enforce=restricted 的命名空间中创建集群。
您自行设置的值始终按字段优先:
- OpenSearch Pod 的
spec.general.podSecurityContext和spec.general.securityContext。 - OpenSearch Dashboards 的
spec.dashboards.podSecurityContext和spec.dashboards.securityContext。
如果您设置的值不被 restricted 级别允许(例如 runAsUser: 0、privileged: true、添加的 capabilities 或 hostPath 持久性),Pod 将不再与 restricted 兼容,并会在强制执行该级别的命名空间中被拒绝。
上游 operator 会以 root 身份运行 init 容器,以更改数据目录的所有者。E1 不会运行该容器。相反,数据卷通过 Pod fsGroup(默认为 1000)变为可写。如果您使用不同的用户或组运行 OpenSearch,请相应设置 spec.general.podSecurityContext.fsGroup。
在节点上设置 vm.max_map_count
OpenSearch 要求 Linux 内核设置 vm.max_map_count 至少为 262144。上游 operator 会通过特权 init 容器设置该值。无论 spec.general.setVMMaxMapCount 的值是什么,E1 都不会运行该容器,因为 restricted Pod Security 级别不允许特权容器。您必须在创建集群之前在节点上设置该值。
检查当前值
在节点上:
或者,在装有 kubectl 的工作站上,使用节点调试 Pod。替换 <node-name>,并使用任何包含 sysctl 且集群可用的小型映像:
检查后删除调试 Pod(kubectl get pods 会显示带有 node-debugger- 前缀的 Pod)。
要列出所有节点上的值,请使用您常用的节点管理工具,在每个节点上运行该命令。
持久设置该值
在每个可运行 OpenSearch Pod 的节点上,以 root 身份运行:
如果您使用节点选择器、亲和性或容忍度,将 OpenSearch 调度到专用节点上,则只需配置这些节点。之后添加到集群的节点也需要进行相同设置。
如果该值过低,OpenSearch 节点将无法通过启动引导检查,Pod 会反复重启。Pod 日志中会包含类似 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 的消息。
卸载
请按以下顺序卸载:先删除集群,然后删除 operator,最后删除自定义资源定义(CRD)。
-
删除所有命名空间中的每个
OpenSearchCluster及相关自定义资源。请先列出它们:数据 PVC 会保留。如果不再需要这些数据,也请删除它们。请参阅 存储。
如果集群是从 operator 2.8.0 升级而来,operator 还会删除其
opensearch.opster.io副本。继续操作前,请等待以下命令不再列出任何内容,因为删除 operator 后将无法删除这些副本: -
删除 operator。在 Web 控制台中,从 OperatorHub 卸载 Alauda Data Services Search Engine E1。使用 kubectl 时,请删除 Subscription 和 ClusterServiceVersion:
-
可选:删除 CRD。卸载 operator 时,OLM 不会删除这些 CRD。删除 CRD 会删除集群中该类型的所有剩余资源,因此只有在完成步骤 1 后才能执行此操作。
使用
kubectl delete删除命令列出的 CRD。
后续步骤
OpenSearch® 是 LF Projects, LLC 的注册商标。