ECK 简化:在 GCP GKE Autopilot 上部署 Elasticsearch

作者:来自 Elastic Eduard Martin

学习如何使用 GKE Autopilot 和 ECK 在 GCP 上部署 Elasticsearch 集群。

想要获得 Elastic 认证?了解下一次 Elasticsearch Engineer 培训的时间!

Elasticsearch 拥有丰富的新功能,可以帮助你为你的使用场景构建最佳搜索解决方案。深入了解我们的示例笔记本,开始免费 cloud 试用,或者立即在本地机器上试用 Elastic。


在本文中,我们将学习如何使用 Autopilot 在 Google Cloud Kubernetes( GKE )上部署 Elasticsearch。

对于 Elasticsearch,我们将使用 Elastic Cloud on Kubernetes( ECK ),这是官方的 Elasticsearch Kubernetes 运维工具,可以简化对所有 Elastic Stack 组件在 Kubernetes 上的部署编排。

什么是 GKE Autopilot?

Google Kubernetes Engine( GKE )Autopilot 提供了一个全托管的 Kubernetes 体验,Google 负责集群配置、节点管理、安全性和扩展性,而开发者专注于部署应用程序,使团队可以借助内置的最佳实践在几分钟内将代码投入生产环境。

来源: https://cloud.google.com/blog/products/containers-kubernetes/introducing‑gke‑autopilot

何时在 Google Cloud 中使用 ECK?

Elastic Cloud on Kubernetes( ECK )最适合那些已经拥有 Kubernetes 基础设施、希望部署具备专用节点角色、高可用性和自动化等高级功能的 Elasticsearch 的组织。

如何设置

  1. 登录 Google Cloud 控制台。

  2. 在右上角点击 Cloud Shell 按钮访问控制台,并从那里部署 GKE 集群。或者,你也可以使用 gcloud CLI。在教程过程中,记得将项目 ID 替换为你自己的。

  3. 启用 Google Kubernetes Engine API。

    点击 “Next”。

    现在,当搜索 Kubernetes Engine API 时,应该显示为已启用。

  4. 在 Cloud Shell 中创建一个 Autopilot 集群。我们将其命名为 autopilot-cluster-1,并将 autopilot-test 替换为你项目的 ID。

    gcloud beta container --project "autopilot-test-457216" clusters create-auto "autopilot-cluster-1" --region "us-central1" --release-channel "regular" --tier "standard" --enable-ip-access --no-enable-google-cloud-access --network "projects/autopilot-test-457216/global/networks/default" --subnetwork "projects/autopilot-test-457216/regions/us-central1/subnetworks/default" --cluster-ipv4-cidr "/17" --binauthz-evaluation-mode=DISABLED
  5. 等待直到准备好。创建大约需要 10 分钟。

    正确设置集群后,会显示确认消息。

  6. 配置 kubectl 命令行访问权限。

    gcloud container clusters get-credentials autopilot-cluster-1 --region us-central1 --project autopilot-test-457216

    你应该看到:

    为 autopilot-cluster-1 生成了 kubeconfig 条目。

  7. 安装 Elastic Cloud on Kubernetes( ECK )operator。

    # Install ECK Custom Resource Definitions
    kubectl create -f https://download.elastic.co/downloads/eck/2.16.1/crds.yaml# Install the ECK operator
    kubectl apply -f https://download.elastic.co/downloads/eck/2.16.1/operator.yaml
  8. 让我们用默认值创建一个单节点 Elasticsearch 实例。

    如果你想查看不同配置的示例,可以访问这个链接。

    请注意,如果你没有指定 storageClass,ECK 会使用默认设置。对于 GKE,默认是 standard-rwo,它使用 Compute Engine 持久磁盘 CSI 驱动,并创建一个 1GB 的存储卷。

    cat <<EOF | kubectl apply -f -
    apiVersion: elasticsearch.k8s.elastic.co/v1
    kind: Elasticsearch
    metadata:name: quickstart
    spec:version: 9.0.0nodeSets:- name: defaultcount: 1config:node.store.allow_mmap: false
    EOF

    我们禁用了 nmap,因为默认的 GKE 机器的 vm.max_map_count 值太低。禁用它不建议用于生产环境,应该提高 vm.max_map_count 的值。你可以在这里了解更多如何操作。

  9. 我们也来部署一个单节点 Kibana 集群。对于 Kibana,我们将添加一个 LoadBalancer,这样可以获得一个外部 IP,方便我们从设备访问 Kibana。

    cat <<EOF | kubectl apply -f -
    apiVersion: kibana.k8s.elastic.co/v1
    kind: Kibana
    metadata:name: quickstart
    spec:version: 9.0.0http:service:metadata:annotations:cloud.google.com/l4-rbs: "enabled"spec:type: LoadBalancercount: 1elasticsearchRef:name: quickstart
    EOF

    注意这个注解:

    cloud.google.com/l4-rbs: "enabled"

    这非常重要,因为它告诉 Autopilot 提供一个面向公网的 LoadBalancer。如果不设置,LoadBalancer 将是内部的

  10. 检查你的 pods 是否正在运行。

    kubectl get pods

  11. 你也可以运行 kubectl get elasticsearch 和 kubectl get kibana,查看更具体的信息,比如 Elasticsearch 版本、节点和健康状态。

  12. 访问你的服务。

    kubectl get svc

    这会在 EXTERNAL-IP 下显示 Kibana 的外部 URL。LoadBalancer 可能需要几分钟来配置。复制 EXTERNAL-IP 的值

  13. 获取 ‘elastic’ 用户的 Elasticsearch 密码:

    kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode

  14. 通过浏览器访问 Kibana:网址:https://< EXTERNAL_IP >:5601
    用户名: elastic
    密码:28Pao50lr2GpyguX470L2uj5(来自上一步)

  15. 通过浏览器访问时,你会看到欢迎界面。

如果你想更改 Elasticsearch 集群配置,比如更改或调整节点大小,可以用新的设置重新应用 yml 清单:

cat <<EOF | kubectl apply -f -
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:name: quickstart
spec:version: 9.0.0nodeSets:- name: defaultcount: 2config:node.store.allow_mmap: falsepodTemplate:spec:containers:- name: elasticsearchresources:requests:memory: 1.5Gicpu: 2limits:memory: 1.5Gicpu: 2
EOF

在这个例子中,我们将增加一个节点,并修改内存和 CPU。你可以看到,现在运行 kubectl get elasticsearch 显示有 2 个节点:

Kibana 也同样适用:

cat <<EOF | kubectl apply -f -
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:name: quickstart
spec:version: 9.0.0http:service:metadata:annotations:cloud.google.com/l4-rbs: "enabled"spec:type: LoadBalancercount: 1elasticsearchRef:name: quickstartpodTemplate:spec:containers:- name: kibanaenv:- name: NODE_OPTIONSvalue: "--max-old-space-size=1024"resources:requests:memory: 0.5Gicpu: 0.5limits:memory: 1Gicpu: 1
EOF

我们可以调整容器的 CPU/内存,还有 Node.js 的内存使用(max-old-space-size)。

请注意,已有的存储卷声明不能缩小。应用更新后,运维工具会尽量以最小中断时间完成更改。

测试结束后,记得删除集群,避免产生不必要的费用。

gcloud container clusters delete autopilot-cluster-1

下一步

如果你想了解更多关于 Kubernetes 和 Google Kubernetes Engine 的内容,可以查看这些文章:

  • Elastic Cloud on Kubernetes | Elastic Docs
  • Introducing GKE Autopilot | Google Cloud Blog
  • Autopilot overview | Google Kubernetes Engine (GKE)

原文:ECK made simple: Deploying Elasticsearch on GCP GKE Autopilot - Elasticsearch Labs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84889.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试一个软件的性能有哪些指标?

在测试软件性能时,通常会关注多个维度的指标,以评估系统在不同负载下的表现。以下是关键的性能测试指标分类和详细说明: 📊 核心性能指标分类 1. 响应时间(Response Time) 定义:从发送请求到接收到响应所花费的时间 细分: 平均响应时间:所有请求的平均耗时 *P90/P95…

浅析std::atomic<T>::compare_exchange_weak和std::atomic<T>::compare_exchange_strong

目录 std::atomic ::compare_exchange_weak 和 std::atomic ::compare_exchange_strong 核心原理 函数签名 核心区别 典型用法 1. compare_exchange_weak&#xff08;循环内重试&#xff09; 2. compare_exchange_strong&#xff08;单次尝试&#xff09; 底层机制 总…

举出一个异步接口测试的例子

以下是一个完整的 ​异步接口测试​ 实际案例&#xff0c;包含问题场景、解决方案、代码实现和面试回答技巧&#xff0c;适合在面试中展示技术深度&#xff1a; ​案例背景​ ​业务场景​&#xff1a; 测试一个AI图片生成平台的异步接口&#xff0c;用户提交生成请求后&#…

更新麒麟连不上外网

问题&#xff1a;更新麒麟连不上外网 处理&#xff1a;本地建个下载地址 建立文件夹/root/x86.rpm&#xff0c;子文件夹&#xff1a;Packages、repodata&#xff0c;和在线站点建的一样&#xff1a;Index of /NS/V10/V10SP1.1/os/adv/lic/base/x86_64/&#xff0c;然后就下载…

TensorFlow深度学习实战——使用Hugging Face构建Transformer模型

TensorFlow深度学习实战——使用Hugging Face构建Transformer模型 0. 前言1. 安装 Hugging Face2. 文本生成3. 自动模型选择和自动分词4. 命名实体识别5. 摘要生成6. 模型微调相关链接 0. 前言 除了需要实现特定的自定义结构&#xff0c;或者想要了解 Transformer 工作原理外&…

SAP-ABAP:SAP全模块的架构化解析,涵盖核心功能、行业方案及技术平台

一、核心业务模块&#xff08;Logistics & Operations&#xff09; 模块代号核心功能典型流程关键事务码物料管理MM采购/库存/发票校验采购到付款 (P2P)ME21N&#xff08;采购订单&#xff09;, MI31&#xff08;库存盘点&#xff09;销售与分销SD订单/定价/发货/开票订单…

实时预警!机场机坪井室无线智能液位监测系统助力安全降本

某沿海机场因地处多雨区域&#xff0c;每年雨季均面临排水系统超负荷运行压力。经勘测发现&#xff0c;5个井室因长期遭受地下水渗透侵蚀&#xff0c;井壁出现细微结构性裂缝&#xff0c;导致内部水位异常升高。作为机坪地下管网系统的核心节点&#xff0c;这些井室承担着雨水导…

边云协同 AI 视频分析系统设计方案

目录 一、项目背景与目标 二、系统架构概述 总体架构图 三、ER 图&#xff08;核心数据库设计&#xff09; 实体关系图简述 数据表设计&#xff08;简要&#xff09; 四、模型结构图&#xff08;边缘云端AI推理架构&#xff09; 边缘模型&#xff08;YOLOv5-tiny/PP-YO…

vue3整合element-plus

为项目命名 选择vue 框架 选择TS 启动测试&#xff1a; npm run dev 开始整合 element-plus npm install element-plus --save npm install unplugin-vue-components unplugin vitejs/plugin-vue --save-dev 修改main.ts import { createApp } from vue import ./style.cs…

【AI 测试】测试用例设计:人工智能语言大模型性能测试用例设计

目录 一、性能测试可视化架构图 &#xff08;1&#xff09;测试整体架构图 &#xff08;2&#xff09;测试体系架构图 &#xff08;3&#xff09;测试流程时序图 二、性能测试架构总览 &#xff08;1&#xff09;性能测试功能点 &#xff08;2&#xff09;测试环境要…

Windsurf SWE-1模型评析:软件工程的AI革命

引言 软件开发领域正经历着前所未有的变革&#xff0c;AI辅助编程工具层出不穷&#xff0c;但大多数仅专注于代码生成这一环节。Windsurf公司近期推出的SWE-1系列模型打破了这一局限&#xff0c;首次将AI应用扩展至软件工程的全流程。这一举措不仅反映了行业对AI工具认知的深化…

Qt for OpenHarmony 编译鸿蒙调用的动态库

简介 Qt for Harmony​ 是跨平台开发框架 ​Qt​ 与华为 ​OpenHarmony​ 操作系统的深度集成方案&#xff0c;由 Qt Group 与华为联合推动。其核心目标是为开发者提供一套高效工具链&#xff0c;实现 ​​“一次开发&#xff0c;多端部署”​&#xff0c;加速 OpenHarmony 生…

退休时,按最低基数补缴医疗保险15年大概需要多少钱

在南京退休时&#xff0c;如果医保缴费年限不足&#xff08;男需满25年/女需满20年&#xff09;&#xff0c;需补缴差额年限。若按最低基数一次性补缴15年医保&#xff0c;费用估算如下&#xff08;以2024年政策为例&#xff09;&#xff1a; 一、补缴金额计算公式 总补缴费用…

wireshark过滤显示rtmp协议

wireshark中抓包显示的数据报文中&#xff0c;明明可以看到有 rtmp 协议的报文&#xff0c;但是过滤的时候却显示一条都没有 查看选项中的配置&#xff0c;已经没有 RTMP 这个协议了&#xff0c;已经被 RTMPT 替换了&#xff0c;过滤框中输入 rtmpt 过滤即可

《哈希表》K倍区间(解题报告)

文章目录 零、题目描述一、算法概述二、算法思路三、代码实现四、算法解释五、复杂度分析 零、题目描述 题目链接&#xff1a;K倍区间 一、算法概述 计算子数组和能被k整除的子数组数量的算法。通过前缀和与哈希表的结合&#xff0c;高效地统计满足条件的子数组。  需要注…

OpenShift 在 Kubernetes 多出的功能中,哪些开源?

OpenShift 在 Kubernetes 基础上增加的功能中&#xff0c;部分组件是开源的&#xff08;代码可公开访问&#xff09;&#xff0c;而另一些则是 Red Hat 专有&#xff08;闭源&#xff09;。以下是详细分类&#xff1a; 1. 完全开源的功能&#xff08;代码可查&#xff09; 这些…

【每天一个知识点】CITE-seq 技术

一、技术背景 单细胞RNA测序&#xff08;scRNA-seq&#xff09;自问世以来&#xff0c;极大推动了细胞异质性和组织复杂性的研究。但RNA水平并不能完全代表蛋白质水平&#xff0c;因为蛋白质的表达受转录后调控、翻译效率及蛋白降解等多种因素影响。此外&#xff0c;许多细胞类…

中文Windows系统下程序输出重定向乱码问题解决方案

导言 最近我在用 Rust 开发时&#xff0c;遇到了一个让人头疼的问题&#xff1a;运行 cargo run -- version Cargo.toml > output.txt 将输出重定向到文件后&#xff0c;打开 output.txt 却发现里面全是乱码&#xff01;我的程序确实是UTF8但是输出的文件却是UTF16LE编码的…

Python管理工具UV

常用 UV 命令 安装 pip install uv 版本相关 uv python list 打印所有uv支持的python版本uv python install cpython-3.12 安装指定的python版本uv run -p 3.12 test.py 用指定的python版本运行python代码uv run -p 3.12 python 进入python执行环境。假如输入的版本是一个本…

论文略读:ASurvey on Intent-aware Recommender Systems

202406 arxiv 推荐系统在许多现代在线服务中发挥着关键作用&#xff0c;例如电子商务或媒体流服务&#xff0c;它们能够为消费者和服务提供商创造巨大的价值。因此&#xff0c;过去几十年来&#xff0c;研究人员提出了大量生成个性化推荐的技术方法。传统算法——从早期的 Gro…