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
英文地址,請注明出處:http://en.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…