「クラウドネイティブ」Elasticsearch + Kibana on k8sの解説と実践的な操作

「クラウドネイティブ」Elasticsearch + Kibana on k8sの解説と実践的な操作

1. 概要

Elasticsearch は Lucene をベースにした検索エンジンです。 HTTP Web インターフェイスとスキーマフリーの JSON ドキュメントを備えた、分散型のマルチテナント対応フルテキスト検索エンジンを提供します。 Elasticsearch は Java で開発され、Apache ライセンスの条件に基づいてオープンソースとしてリリースされています。

公式ドキュメント: https://www.elastic.co/guide/en/elasticsearch/reference/master/getting-started.htmlGitHub: https://github.com/elastic/elasticsearch

2. Elasticsearch オーケストレーションとデプロイメント

アドレス: https://artifacthub.io/packages/helm/elastic/elasticsearch

1) ソースを追加し、オーケストレーション展開パッケージをダウンロードします

 helmリポジトリにelasticを追加しますhttps://helm.elastic.co
helm pull elastic / elasticsearch --バージョン 7.17.3
tar - xf elasticsearch - 7.17.3.tgz

2) イメージを構築する

Elasticsearch のさまざまなバージョンのダウンロード アドレス: https://www.elastic.co/cn/downloads/past-releases#elasticsearch ここではイメージを再構築しません。ここでは、イメージのプルを高速化するために、リモート イメージをローカル ハーバーにプッシュします。

 docker pull docker .elastic .co / elasticsearch / elasticsearch : 7.17 .3

docker タグ docker .elastic .co / elasticsearch / elasticsearch : 7.17 .3 myharbor .com / bigdata / elasticsearch : 7.17 .3

# 画像をアップロードする
docker push myharbor .com / bigdata / elasticsearch : 7.17 .3

# 画像を削除する
docker rmi myharbor .com / bigdata / elasticsearch : 7.17 .3
crictl rmi myharbor .com / bigdata / elasticsearch : 7.17 .3

3) YAMLレイアウトを変更する

  • elasticsearch/値.yaml
画像: "myharbor.com/bigdata/elasticsearch"

...

...
### これらの行を削除します
ボリュームクレームテンプレート:
アクセスモード: [ "ReadWriteOnce" ]
リソース
リクエスト:
ストレージ: 30 Gi
....

持続性:
有効: true
ラベル:
# StatefulSet の volumeClaimTemplate にデフォルトのラベルを追加します
有効: false
注釈: { }
アクセスモード:
-一度だけ読み書き可能
サイズ: 1Gi
ストレージクラス: "elasticsearch-local-storage"
地元
-名前: elasticsearch - 0
ホスト: "local-168-182-110"
パス: "/opt/bigdata/servers/elasticsearch/data/data1"
-名前: elasticsearch - 1
ホスト: "local-168-182-111"
パス: "/opt/bigdata/servers/elasticsearch/data/data1"
-名前: elasticsearch - 2
ホスト: "local-168-182-112"
パス: "/opt/bigdata/servers/elasticsearch/data/data1"

...

プロトコル: http
httpポート: 9200
トランスポートポート: 9300
サービス
有効: true
タイプ: NodePort
ノードポート: 30920
httpポート名:
  • elasticsearch/テンプレート/ストレージクラス.yaml
種類:ストレージクラス
apiバージョン:ストレージ.k8s .io / v1
メタデータ:
名前: { { .Values ​​.persistence .storageClass } }
プロビジョナー: kubernetes .io / no -プロビジョナー
  • elasticsearch/テンプレート/pv.yaml

 {{- 範囲 .Values.persistence.local }}
---
APIバージョン: v1
種類: 永続ボリューム
メタデータ:
名前: {{.name}}
ラベル:
名前: {{.name}}
仕様:
ストレージクラス名: {{ $.Values.persistence.storageClass }}
容量:
ストレージ: {{ $.Values.persistence.size }}
アクセスモード:
{{- 範囲 $.Values.persistence.accessModes }}
- {{ . |引用 }}
{{- 終わり }}
地元:
パス: {{.path}}
ノードアフィニティ:
必須:
ノードセレクタ用語:
- 一致する表現:
- キー: kubernetes.io/hostname
演算子:
値:
- {{ 。ホスト }}
---
{{- 終わり }}

  • elasticsearch/テンプレート/statefulset.yaml

仕様:
ボリュームクレームテンプレート:
仕様:
# この行を削除
{{toYaml .Values.volumeClaimTemplate |インデント 6 }}

# 次のコンテンツを追加します。
アクセスモード:
{{- 範囲 .Values.persistence.accessModes }}
- {{ . |引用 }}
{{- 終わり }}
リソース:
リクエスト:
ストレージ: {{ .Values.persistence.size |引用 }}
{{- if .Values.persistence.storageClass }}
{{- if (eq "-" .Values.persistence.storageClass) }}
ストレージクラス名: ""
{{- それ以外 }}
ストレージクラス名: "{{ .Values.persistence.storageClass }}"
{{- 終わり }}
{{- 終わり }}

4) 展開を開始する

 # 最初にローカルストレージディレクトリを作成する
mkdir -p / opt / bigdata / servers / elasticsearch / data / data1
chmod -R 777 / opt / bigdata / servers / elasticsearch / data / data1

helm をインストールします- elasticsearch ./elasticsearch -n elasticsearch --create-namespace
# チェック
helm メモを取得- elasticsearch - n elasticsearch
kubectl get pods svc - n elasticsearch - wide を実行します。

注記

名前: my - elasticsearch
最終配備: 2022年1012水曜日23:47:17
名前空間: elasticsearch
ステータス:展開済み
改訂: 1
注記:
1.すべてのクラスタ メンバーが起動するのを確認します。
$ kubectl get pods --namespace=elasticsearch -l app=elasticsearch-master -w2 を実行します。 Helm テストを使用してクラスターの健全性をテストします。
$ helm --namespace=elasticsearch テスト my-elasticsearch

5) テスト検証

 : // 192.168 .182 .110 : 30920 /
カールhttp://192.168.182.110:30920/_cat/nodes
カールhttp://192.168.182.110:30920/_cat/health?pretty

6) エラスティックサーチヘッド

elasticsearch-head GitHubダウンロードアドレス: https://github.com/mobz/elasticsearch-head Googleブラウザelasticsearch-headプラグイン:

リンク: https://pan.baidu.com/s/1kYcTjBDPmSWVzsku2hEW7w?pwd=67v4 抽出コード: 67v4

7) アンインストール

 helm アンインストール my - elasticsearch - n elasticsearch
kubectl ns elasticsearchを削除します--force

rm - fr / opt / bigdata /サーバー/ elasticsearch /データ/ data1 /*
ssh local-168-182-111 "rm -fr /opt/bigdata/servers/elasticsearch/data/data1/* "
ssh local-168-182-112 "rm -fr /opt/bigdata/servers/elasticsearch/data/data1/* "

docker rmi myharbor.com/bigdata/elasticsearch:7.17.3
crictl rmi myharbor.com/bigdata/elasticsearch:7.17.3
ssh local-168-182-111 "crictl rmi myharbor.com/bigdata/elasticsearch:7.17.3"
ssh local-168-182-112 "crictl rmi myharbor.com/bigdata/elasticsearch:7.17.3"

3. Kibana オーケストレーションとデプロイメント

アドレス: https://artifacthub.io/packages/helm/bitnami/kibana?modal=install

1) ソースを追加し、オーケストレーション展開パッケージをダウンロードします

 helm リポジトリに bitnami を追加します https://charts.bitnami.com/bitnami
helm pull bitnami/kibana --バージョン 10.2.6
tar -xf キバナ-10.2.6.tgz

2) イメージを構築する

イメージはここで再構築されるのではなく、高速化のためにローカルの港にプッシュされます。 [注意] バージョン番号はESに対応している必要があります。バージョンが異なる場合、互換性のないストレージが発生する可能性があります。

 docker pull docker.io/bitnami/kibana:7.17.3
docker タグ docker.io/bitnami/kibana:7.17.3 myharbor.com/bigdata/kibana:7.17.3

# 画像をアップロードする
docker push myharbor.com/bigdata/kibana:7.17.3

# 画像を削除する
docker rmi myharbor.com/bigdata/kibana:7.17.3
crictl rmi myharbor.com/bigdata/kibana:7.17.3

3) YAMLレイアウトを変更する

  • キバナ/値.yaml

画像:
レジストリ: myharbor.com
リポジトリ: bigdata/kibana
タグ: 8.4.3-debian-11-r1

...

レプリカ数: 1

...

持続性:
有効: true
アクセスモード:
-一度だけ読み書き可能
サイズ: 1Gi
ストレージクラス: "kibana-local-storage"
地元:
- 名前: キバナ-0
ホスト: "local-168-182-111"
パス: "/opt/bigdata/servers/kibana/data/data1"

...

サービス:
ポート:
http: 5601
タイプ: NodePort
ノードポート:
http: "30601"

...

エラスティックサーチ:
ホスト:
-elasticsearch-マスター.elasticsearch
ポート: "9200"

  • キバナ/テンプレート/値.yaml

 {{- 範囲 .Values.persistence.local }}
---
APIバージョン: v1
種類: 永続ボリューム
メタデータ:
名前: {{.name}}
ラベル:
名前: {{.name}}
仕様:
ストレージクラス名: {{ $.Values.persistence.storageClass }}
容量:
ストレージ: {{ $.Values.persistence.size }}
アクセスモード:
{{- 範囲 $.Values.persistence.accessModes }}
- {{ . |引用 }}
{{- 終わり }}
地元:
パス: {{.path}}
ノードアフィニティ:
必須:
ノードセレクタ用語:
- 一致する表現:
- キー: kubernetes.io/hostname
演算子:
値:
- {{ 。ホスト }}
---
{{- 終わり }}

  • kibana/テンプレート/ストレージクラス.yaml

種類: ストレージクラス
APIバージョン: storage.k8s.io/v1
メタデータ:
名前: {{ .Values.persistence.storageClass }}
プロビジョナー: kubernetes.io/no-provisioner

  • キバナ/テンプレート/pv.yaml

 {{- 範囲 .Values.persistence.local }}
---
APIバージョン: v1
種類: 永続ボリューム
メタデータ:
名前: {{.name}}
ラベル:
名前: {{.name}}
仕様:
ストレージクラス名: {{ $.Values.persistence.storageClass }}
容量:
ストレージ: {{ $.Values.persistence.size }}
アクセスモード:
{{- 範囲 $.Values.persistence.accessModes }}
- {{ . |引用 }}
{{- 終わり }}
地元:
パス: {{.path}}
ノードアフィニティ:
必須:
ノードセレクタ用語:
- 一致する表現:
- キー: kubernetes.io/hostname
演算子:
値:
- {{ 。ホスト }}
---
{{- 終わり }}

4) 展開を開始する

 # 最初にローカルストレージディレクトリを作成する
mkdir -p /opt/bigdata/servers/kibana/data/data1
chmod -R 777 /opt/bigdata/servers/kibana/data/data1

helm で my-kibana をインストールします。/kibana -n kibana --create-namespace
# チェック
helm は、my-kibana -n kibana のメモを取得します。
kubectl ポッドの取得、svc -n kibana -owide

注記

名前: my-kibana
最終デプロイ: 2022年10月13日木曜日 22:43:30
名前空間: kibana
ステータス: 展開済み
改訂: 1
テストスイート: なし
注記:
チャート名: キバナ
チャートバージョン: 10.2.6
アプリバージョン: 8.4.3

** チャートが展開されるまでしばらくお待ちください **#####################################################################################################
### エラー: 'helm install' 呼び出しで Elasticsearch 外部ホストまたはポートを指定しませんでした ###
##############################################################################

次のコマンドを実行して Kibana のデプロイを完了します。

Helm upgrade --namespace kibana my-kibana my-repo/kibana \
--set elasticsearch.hosts[0]=YOUR_ES_HOST、elasticsearch.port=YOUR_ES_PORT

「YOUR_ES_HOST」および「YOUR_ES_PORT」プレースホルダーを、Elasticsearch デプロイメントの適切な値に置き換えます。

5) テスト検証

ウェブ: http://192.168.182.111:30601

6) アンインストール

 helm アンインストール my-kibana -n kibana
kubectl delete ns kibana --force

ssh local-168-182-111 rm -fr /opt/bigdata/servers/kibana/data/data1/*

docker rmi myharbor.com/bigdata/bigdata:8.4.3-debian-11-r1
crictl rmi myharbor.com/bigdata/bigdata:8.4.3-debian-11-r1

Elasticsearch オン K8S

ダウンロードアドレス: https://gitee.com/hadoop-bigdata/elasticsearch-on-k8skibana-on-k8s

ダウンロードアドレス: https://gitee.com/hadoop-bigdata/kibana-on-k8s

<<:  マイクロソフトの100を超えるグローバルインテリジェントクラウドイノベーションと複数のクラウドサービスが中国の新しいデータセンターに所在

>>:  クラウドネイティブなデータ ウェアハウスとデータ レイクを構築するためのベスト プラクティス

推薦する

「デジタルツインファースト」は英国にどのような革命をもたらすのでしょうか?

2013 年、英国政府は、公共部門の組織が他の選択肢よりも先にクラウド コンピューティング ソリュー...

NFV によってもたらされる新たな複雑さとネットワークの盲点をどう解決するか

仮想化は、データセンターの運用効率を向上させる優れたテクノロジーです。コンピューティングとストレージ...

百度とグーグルの検索調整の詳細な分析

Baidu が今年行った数回の調整によりランキングに大きな変動が生じ、SEO 担当者も頭を悩ませてい...

whitesandshosting-4.5 USD/4 コア/1 GB メモリ/100 GB ハードディスク/2 IP/4 TB トラフィック

Whitesandshosting は 2009 年に設立されました。同社は米国ニューメキシコ州に拠...

主要なフォーラムに記事を投稿する方法

投稿は、多くの SEO ウェブマスターが必ず行うべきことです。投稿の重要性は、非常に優れた外部リンク...

ウェブマスターネットワークからの毎日のレポート:電子商取引と物流企業が領土をめぐって競争、ハッカーは通信ネットワークに侵入したと主張

1. 電子商取引企業が物流領域をめぐって競争:速達ライセンスは7月にも取得可能もともと互恵的に共存し...

Baidu の Web ページ スナップショットの最適化ランキングに影響を与えるものは何ですか?

百度は独占的優位性を持つ世界的な検索エンジンに成長した。簡単に言えば、あなたのウェブサイトが Bai...

中国におけるクラウドコンピューティング:2025年までの展望

中国は、比較的ゆっくりとしたスタートの後、クラウドコンピューティングへの移行を急速に進め、現在では米...

vsyshost: ウクライナ VPS/オランダ VPS、苦情防止、月額 18 ドル、帯域幅 1Gbps、トラフィック無制限

vsys.host は 2009 年に設立されたウクライナの商人です。主にウクライナのキエフとオラン...

Discuz! X2.5 ベータ版がリリースされ、ウェブマスターが体験およびテストできるようになりました

今日のニュースは、主にウェブマスターがダウンロードして新しいバージョンの機能を体験できるように、Di...

Hostus-7 USD/3g RAM/3g Vswap/70 HDD/3T トラフィック

Hostus、新年のプロモーション、ここでは大容量メモリを備えた特別なVPSのみを選択します。母鶏は...

出会い系サイトの初期段階で人気を集める方法について議論する

著者の経験によると、フォーラムをうまく運営するには、特に初期段階でトラフィックや人気がない場合、多く...

孤立したパイパイダイ:滞納した借金を返済できず困っている

ハイトーク[中国初のオンライン融資プラットフォームとして、パイパイダイは先行者利益を持っていたが、「...