创建 OpenSearch 集群
OpenSearch 集群由 OpenSearchCluster API 组中的 opensearch.org/v1 自定义资源描述。您可以在任何命名空间中创建它,因为 operator 会监视所有命名空间。
开始之前,请确保:
选择 TLS 或纯 HTTP
对于包含真实数据或可由受信任客户端之外的其他客户端访问的集群,请使用 TLS。不使用 TLS 时,任何能够访问该服务的人员都可以读取、更改和删除所有数据。
使用 TLS 的集群(推荐)
operator 会生成证书颁发机构并为您签发证书:
transport.generate: true与transport.perNode: true会为每个 OpenSearch 节点签发一个传输证书。http.generate: true会为 REST API 签发证书。
替换 my-namespace 和 <storage-class>,然后应用该文件:
字段说明:
spec.general.serviceName为必填项。它是 REST API 的 Kubernetes Service 名称。spec.general.version选择引擎版本:3.8.0(此版本的默认版本)或2.19.6。将spec.dashboards.version设置为相同的版本。- 至少有一个节点池必须具有
cluster_manager角色,并且replicas至少为 1。对于高可用集群,请使用 3 个符合集群管理器条件的节点。 component在集群内必须唯一。它是 StatefulSet 和 Pod 名称(<cluster-name>-<component>-<index>)的一部分。- 如果未为节点池设置
jvm,operator 会将 Java 堆(-Xms和-Xmx)设置为该池内存请求的一半。请始终设置内存请求。 - 未设置
diskSize时,其默认值为30Gi。
管理员凭据
除非您提供自己的凭据,否则 operator 会生成内置 admin 用户的密码,并将其存储在集群命名空间中名为 <cluster-name>-admin-password 的 Secret 中,键为 username 和 password。
如需使用您管理的凭据,请在创建集群之前创建包含 username 和 password 键的 Secret,并引用该 Secret:
连接到集群
REST API 由一个以 spec.general.serviceName 命名的 Service 暴露,端口为 9200(spec.general.httpPort)。如需从工作站快速检查:
在另一个终端中:
证书由 operator 生成的 CA 签发,而您的工作站不信任该 CA;-k 仅为本次测试跳过验证。
不使用 TLS 的集群
如果 OpenSearchCluster 未配置 TLS,operator 会在禁用安全插件的情况下启动 OpenSearch。REST API 通过端口 9200 上的普通 HTTP 提供服务,且无需身份验证。
检查集群:
注意事项:
- 如果未配置
spec.security.tls.transport和spec.security.tls.http(或两者均设为enabled: false),则会禁用安全插件。单独配置spec.security.config部分不会启用安全插件。 - operator 仍会创建
<cluster-name>-admin-passwordSecret,但 OpenSearch 不会检查凭据。 - 创建集群时,请决定使用 TLS 还是普通 HTTP。本文档不介绍如何在这两种模式之间切换现有集群。
OpenSearch Dashboards
设置 spec.dashboards.enable: true,即可像上面的 TLS 示例一样,随集群一起部署 OpenSearch Dashboards。operator 会:
- 创建一个包含
spec.dashboards.replicas个 Pod 的 Deployment,以及一个名为<serviceName>-dashboards、端口为 5601 的 Service; - 使用专用的内部用户(
kibanaserver)将 Dashboards 连接到集群,并将该用户的凭据存储在<cluster-name>-dashboards-passwordSecret 中。
Service 类型默认为 ClusterIP。如需将 Dashboards 暴露到集群外部,请将 spec.dashboards.service.type 设置为 NodePort 或 LoadBalancer,也可以在 Service 前配置 Ingress。快速检查方法如下:
然后打开 http://localhost:5601,使用用户名 admin 和 <cluster-name>-admin-password Secret 中的密码登录。
如需使用 operator 生成的证书通过 HTTPS 提供 Dashboards 服务,请添加:
Dashboards 未就绪
如果 Dashboards 持续记录另一实例正在迁移其索引,且始终无法就绪,请参阅 Dashboards 等待另一个迁移。
检查集群状态
首次创建集群时,operator 会启动一个临时引导 Pod(<cluster-name>-bootstrap-0)来组建集群,并在集群组建完成后将其删除。当 OpenSearchCluster 的 status.phase 为 RUNNING,且所有节点池 Pod 均为 Ready 时,集群即已就绪。
自定义资源上的事件会说明 operator 正在执行的操作:
删除集群
默认情况下,删除集群时会保留节点池的数据 PVC。如果在同一命名空间中再次创建同名集群,它会重新使用这些卷,并根据磁盘上的数据重新组建之前的集群。如果要创建全新的集群,也请删除 PVC。请参阅存储。
OpenSearch® 是 LF Projects, LLC 的注册商标。