21:00概要KubernetesでElasticsearchのイメージを動かして見たので、その方法を紹介します。Elasticsearchは、ひとつだけ起動するシングルノード構成です。Elasticsearchの説明はしないので、分からない人は調べてください。一言だけ言うのであれば、全文検索のためのツールです。6.2ストレージElasticsearchのデータをいれておくためのストレージを用意します。今回は、PersistentVolumesとPersistentVolumeClaimsを使いNFSストレージをマウントして使います。PersisteVolumesを作成するymlファイルは次のようなものです。******NFSの設定などは適当に置き換えてください。PersistentVolumeClaimsを作成するymlファイルは次ようなものです。elasticsearch-pvPersistentVolumesも含めてですが、accessModesは、ReadWriteOnceにしましょう。これは、複数の場所から書き込むことによるデータの破損を防ぐことができます。サーバの設定Kubernetesのノードサーバの方で、Elasticsearchの起動のために設定をする必要があります。ノードサーバの方で/etc/sysctl.confに次の内容を追加します。次の内容を追加します。unlimited設定を反映するために、ノードサーバを再起動しましょう。Elasticsearchの起動ElasticsearchのPodを作成するymlファイルは次です。elasticsearch-pvcElasticsearchのイメージは、Elastic社の方で用意しているレジストリサーバから取得しています。イメージとして、OSS版のElasticsearchを使用しています。OSS版を使いたくない場合はイメージのURLをdocker.elastic.co/elasticsearch/elasticsearch:6.2.2としましょう。環境変数として、いくつかの値を設定しています。これは、Elasticsearchの設定ファイルの内容と対応しているので、詳細はそれぞれの設定項目について調べてください。ちなみに、bootstrap.memory_lockにfalseを設定していますが、私の環境ではこうしないとうまくElasticsearchを起動できませんでした。resourcesで、メモリの使用を制限していますが、ElasticsearchはJavaのソフトウェアのためか、メモリをたくさん使います。メモリを確保できるようにしましょう。ここを変更する場合は、合わせてES_JAVA_OPTSも一緒に変更してJavaの使用できるメモリも変更しましょう。アクセスElasticsearchに外部からアクセスできるようにするには、KubernetesのServiceを作る必要があります。Serviceの作成には次のymlファイルを使います。elasticsearchあくまでも例なので、目標としている構成に合わせて内容を書き換えてください。さいごにElasticsearchは、かなりのリソースを使います。そのため起動まではそれほど難しくないですが、今後運用していくとなればパフォーマンスの面など色々考えなくてはならなくなると思います。私自身も今回ログを集約する目的で初めてElasticsearchを使い始めたので、Elasticsearchを使うノウハウがなく、今後障害が発生することもあると思います。今後のためにも、Elasticsearchを運用して手に入れた情報はなるべく発信をしていきたいと思います。