OpenDistro#
OpenDistroクラスタをインストールするには、Lagoonがそれと安全に通信できるようにTLSとシークレットを設定する必要があります。いくつかのJSONファイルを作成する必要があります - これらを、インストールプロセス全体を通じて作成してきた値のファイルと同じディレクトリに置いてください。
OpenDistro Helmをインストールします。詳細はhttps://opendistro.github.io/for-elasticsearch-docs/docs/install/helm/を参照してください。
キーと証明書の作成#
- 証明書の生成
注意:
CFSSLはCloudFlareのPKI/TLSスイスアーミーナイフです。これはコマンドラインツールであり、TLS証明書の署名、検証、バンドル化を行うHTTP APIサーバです。ビルドにはGo 1.12+が必要です。
1. CFSSLをインストールします: https://github.com/cloudflare/cfssl 2. CAを生成します。次のファイルが必要です:
{
"CN": "ca.elasticsearch.svc.cluster.local",
"hosts": [
"ca.elasticsearch.svc.cluster.local"
],
"key": {
"algo": "ecdsa",
"size": 256
},
"ca": {
"expiry": "87600h"
}
}
-
次の2つのコマンドを実行します :
ca-key.pem
とca.pem
が生成されます。これがあなたのCAキーと自己署名証明書です。 -
次に、ノードのピーリング証明書を生成します。次の2つのファイルが必要です:
-
次の2つのコマンドを実行します:
証明書キーの生成cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer node.json | cfssljson -bare node rm node.csr
node.pem
とnode-key.pem
が得られます。これがESクラスターのノードで使用されるピア証明書になります。 -
次に、以下のコマンドでキーをJavaがサポートする形式に変換します:
-
次に、管理者証明書を生成します。次のファイルが必要です:
-
次の2つのコマンドを実行します:
管理者証明書キーの生成cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client admin.json | cfssljson -bare admin rm admin.csr
admin.pem
とadmin-key.pem
が得られます。これがopendistro-securityプラグインで管理コマンドを実行するために使用される証明書になります。 -
次に、以下のコマンドでキーをJavaがサポートする形式に変換します:
OpenDistroのインストール#
キーと証明書を手に入れたので、インストールを続けることができます。
-
ハッシュ化されたパスワードを生成します。
elasticsearch-secrets-values.yaml
には2つのハッシュ化されたパスワードが必要です。以下のコマンドでそれらを作成します(2回実行し、ランダムなパスワードを入力し、プレーンテキストとハッシュ化されたパスワードの両方を保存します)。
-
secretsを作成します:
elasticsearch-secrets-values.yaml
を作成する必要があります。このgistを参考にしてください:https://gist.github.com/Schnitzel/43f483dfe0b23ca0dddd939b12bb4b0b
-
以下のコマンドでsecretsをインストールします:
-
あなたは必要とするでしょう
elasticsearch-values.yaml
を作成します。例としてこのgistを参照してください:(すべての<\>に値を埋めてください)https://gist.github.com/Schnitzel/1e386654b6abf75bf4d66a544db4aa6a -
Elasticsearchをインストール:
-
Elasticsearch内のセキュリティを次のように設定:
セキュリティを設定kubectl exec -n elasticsearch -it elasticsearch-opendistro-es-master-0 -- bash chmod +x /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh -nhnv -cacert /usr/share/elasticsearch/config/admin-root-ca.pem -cert /usr/share/elasticsearch/config/admin-crt.pem -key /usr/share/elasticsearch/config/admin-key.pem -cd /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/
-
lagoon-core-values.yaml
を次のように更新: -
ロールアウトLagoon Core:
-
すべてのLagoonグループをOpendistro Elasticsearchと同期させる