This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.2. CLI を使用したクラスターロギングのインストール
OpenShift Container Platform CLI を使って Elasticsearch および Cluster Logging Operator をインストールすることができます。
前提条件
Elasticsearch の必要な永続ストレージがあることを確認します。各 Elasticsearch ノードには独自のストレージボリュームが必要であることに注意してください。
Elasticsearch はメモリー集約型アプリケーションです。デフォルトで、OpenShift Container Platform はメモリー要求および 16 GB の制限を持つ 3 つの Elasticsearch ノードをインストールします。OpenShift Container Platform ノードの最初の 3 つのセットには、Elasticsearch をクラスター内で実行するのに十分なメモリーがない可能性があります。Elasticsearch に関連するメモリーの問題が発生した場合、既存ノードのメモリーを増やすのではなく、Elasticsearch ノードをクラスターにさらに追加します。
手順
CLI を使用して Elasticsearch Operator および Cluster Logging Operator をインストールするには、以下を実行します。
Elasticsearch Operator の namespace を作成します。
Elasticsearch Operator の namespace オブジェクト YAML ファイル (
eo-namespace.yaml
など) を作成します。apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat 1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true" 2
- 1
openshift-operators-redhat
namespace を指定する必要があります。メトリクスとの競合が発生する可能性を防ぐには、Prometheus のクラスターモニターリングスタックを、openshift-operators
namespace からではなく、openshift-operators-redhat
namespace からメトリクスを収集するように設定する必要があります。openshift-operators
namespace には信頼されていないコミュニティー Operator が含まれる可能性があり、OpenShift Container Platform メトリクスと同じ名前でメトリクスを公開する可能性があるため、これによって競合が生じる可能性があります。- 2
- クラスターモニターリングが
openshift-operators-redhat
namespace を収集できるように、このラベルを上記のように指定する必要があります。
namespace を作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f eo-namespace.yaml
Cluster Logging Operator の namespace を作成します。
Cluster Logging Operator の namespace オブジェクト YAML ファイル (
clo-namespace.yaml
など) を作成します。apiVersion: v1 kind: Namespace metadata: name: openshift-logging annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true"
namespace を作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f clo-namespace.yaml
以下のオブジェクトを作成して Elasticsearch Operator をインストールします。
Elasticsearch Operator の Operator グループオブジェクトの YAML ファイル (
eo-og.yaml
など) を作成します。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-operators-redhat namespace: openshift-operators-redhat 1 spec: {}
- 1
openshift-operators-redhat
namespace を指定する必要があります。
Operator グループオブジェクトを作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f eo-og.yaml
Subscription オブジェクト YAML ファイル (
eo-sub.yaml
など) を作成し、namespace を Elasticsearch Operator にサブスクライブします。Subscription の例
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: "elasticsearch-operator" namespace: "openshift-operators-redhat" 1 spec: channel: "4.4" 2 installPlanApproval: "Automatic" source: "redhat-operators" 3 sourceNamespace: "openshift-marketplace" name: "elasticsearch-operator"
Subscription オブジェクトを作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f eo-sub.yaml
Elasticsearch Operator は
openshift-operators-redhat
namespace にインストールされ、クラスター内の各プロジェクトにコピーされます。Operator のインストールを確認します。
oc get csv --all-namespaces NAMESPACE NAME DISPLAY VERSION REPLACES PHASE default elasticsearch-operator.4.4.0-202004222248 Elasticsearch Operator 4.4.0-202004222248 Succeeded kube-node-lease elasticsearch-operator.4.4.0-202004222248 Elasticsearch Operator 4.4.0-202004222248 Succeeded kube-public elasticsearch-operator.4.4.0-202004222248 Elasticsearch Operator 4.4.0-202004222248 Succeeded kube-system elasticsearch-operator.4.4.0-202004222248 Elasticsearch Operator 4.4.0-202004222248 Succeeded openshift-apiserver-operator elasticsearch-operator.4.4.0-202004222248 Elasticsearch Operator 4.4.0-202004222248 Succeeded openshift-apiserver elasticsearch-operator.4.4.0-202004222248 Elasticsearch Operator 4.4.0-202004222248 Succeeded openshift-authentication-operator elasticsearch-operator.4.4.0-202004222248 Elasticsearch Operator 4.4.0-202004222248 Succeeded openshift-authentication elasticsearch-operator.4.4.0-202004222248 Elasticsearch Operator 4.4.0-202004222248 Succeeded ...
それぞれの namespace には Elasticsearch Operator がなければなりません。バージョン番号が表示されるものと異なる場合があります。
以下のオブジェクトを作成して Cluster Logging Operator をインストールします。
Cluster Logging Operator の OperatorGroup オブジェクトの YAML ファイル (
eo-og.yaml
など) を作成します。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: cluster-logging namespace: openshift-logging 1 spec: targetNamespaces: - openshift-logging 2
OperatorGroup オブジェクトを作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f clo-og.yaml
Subscription オブジェクト YAML ファイル (
clo-sub.yaml
など) を作成し、namespace を Cluster Logging Operator にサブスクライブします。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging spec: channel: "4.4" name: cluster-logging source: redhat-operators sourceNamespace: openshift-marketplace
openshift-logging
namespace を指定する必要があります。4.4
をチャネルとして指定します。redhat-operators
を指定します。OpenShift Container Platform クラスターが、非接続クラスターとも呼ばれる制限されたネットワークにインストールされている場合、Operator Lifecycle Manager (OLM) の設定時に作成した CatalogSource オブジェクトの名前を指定します。
Subscription オブジェクトを作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f clo-sub.yaml
Cluster Logging Operator は
openshift-logging
namespace にインストールされます。Operator のインストールを確認します。
openshift-logging
namespace には Cluster Logging Operator がなければなりません。バージョン番号が表示されるものと異なる場合があります。oc get csv -n openshift-logging NAMESPACE NAME DISPLAY VERSION REPLACES PHASE ... openshift-logging clusterlogging.4.4.0-202004222248 Cluster Logging 4.4.0-202004222248 Succeeded ...
クラスターロギングのインスタンスを作成します。
Cluster Logging Operator のインスタンスオブジェクト YAML ファイル (
clo-instance.yaml
など) を作成します。注記このデフォルトのクラスターロギング設定は各種の環境をサポートすることが予想されます。クラスターロギングのクラスターに加えることのできる変更についての詳細は、クラスターロギングコンポーネントのチューニングおよび設定についてのトピックを確認してください。
apiVersion: "logging.openshift.io/v1" kind: "ClusterLogging" metadata: name: "instance" 1 namespace: "openshift-logging" spec: managementState: "Managed" 2 logStore: type: "elasticsearch" 3 elasticsearch: nodeCount: 3 4 storage: storageClassName: "<storage-class-name>" 5 size: 200G redundancyPolicy: "SingleRedundancy" visualization: type: "kibana" 6 kibana: replicas: 1 curation: type: "curator" 7 curator: schedule: "30 3 * * *" collection: logs: type: "fluentd" 8 fluentd: {}
- 1
- 名前は
instance
である必要があります。 - 2
- クラスターロギングの管理状態。ほとんどの場合、クラスターロギングのデフォルト値を変更する場合は、これを
Unmanaged
(管理外) に設定する必要があります。ただし、管理外のデプロイメントはクラスターロギングがManaged
(管理対象) の状態に戻されるまで更新を受信しません。 - 3
- Elasticsearch の設定に必要な設定。カスタムリソース (CR) を使用してシャードのレプリケーションポリシーおよび永続ストレージを設定できます。
- 4
- Elasticsearch ノードの数を指定します。この一覧に続く注記を確認してください。
- 5
- Elasticsearch ストレージの既存の StorageClass の名前を入力します。最適なパフォーマンスを得るには、ブロックストレージを割り当てる StorageClass を指定します。StorageClass を指定しない場合、OpenShift Container Platform は一時ストレージのみのクラスターロギングをデプロイします。
- 6
- Kibana の設定に必要な設定。CR を使用して、冗長性を確保するために Kibana をスケーリングし、Kibana ノードの CPU およびメモリーを設定できます。詳細はKibana の設定を参照してください。
- 7
- Curator の設定に必要な設定。CR を使用して Curator スケジュールを設定できます。詳細はCurator の設定を参照してください。
- 8
- Fluentd の設定に必要な設定。CR を使用して Fluentd の CPU およびメモリー制限を設定できます。詳細はFluentd の設定を参照してください。
注記Elasticsearch マスターノードの最大数は 3 です。
3
を超えるnodeCount
を指定する場合、OpenShift Container Platform は、マスター、クライアントおよびデータロールを使用して、3 つのマスターとしての適格性のあるノードである Elasticsearch ノードを作成します。追加の Elasticsearch ノードは、クライアントおよびデータロールを使用してデータのみのノードとして作成されます。マスターノードは、インデックスの作成および削除、シャードの割り当て、およびノードの追跡などのクラスター全体でのアクションを実行します。データノードはシャードを保持し、CRUD、検索、および集計などのデータ関連の操作を実行します。データ関連の操作は、I/O、メモリーおよび CPU 集約型の操作です。これらのリソースを監視し、現行ノードがオーバーロードする場合にデータノード追加することが重要です。たとえば、
nodeCount=4
の場合に、以下のノードが作成されます。$ oc get deployment cluster-logging-operator 1/1 1 1 18h elasticsearch-cd-x6kdekli-1 1/1 1 0 6m54s elasticsearch-cdm-x6kdekli-1 1/1 1 1 18h elasticsearch-cdm-x6kdekli-2 1/1 1 0 6m49s elasticsearch-cdm-x6kdekli-3 1/1 1 0 6m44s
インデックステンプレートのプライマリーシャードの数は Elasticsearch データノードの数と等しくなります。
インスタンスを作成します。
$ oc create -f <file-name>.yaml
以下に例を示します。
$ oc create -f clo-instance.yaml
openshift-logging プロジェクトに Pod を一覧表示して、インストールを検証します。
以下の一覧のようなクラスターロギング、Elasticsearch、Fluentd、および Kibana のいくつかの Pod が表示されるはずです。
oc get pods -n openshift-logging NAME READY STATUS RESTARTS AGE cluster-logging-operator-66f77ffccb-ppzbg 1/1 Running 0 7m elasticsearch-cdm-ftuhduuw-1-ffc4b9566-q6bhp 2/2 Running 0 2m40s elasticsearch-cdm-ftuhduuw-2-7b4994dbfc-rd2gc 2/2 Running 0 2m36s elasticsearch-cdm-ftuhduuw-3-84b5ff7ff8-gqnm2 2/2 Running 0 2m4s fluentd-587vb 1/1 Running 0 2m26s fluentd-7mpb9 1/1 Running 0 2m30s fluentd-flm6j 1/1 Running 0 2m33s fluentd-gn4rn 1/1 Running 0 2m26s fluentd-nlgb6 1/1 Running 0 2m30s fluentd-snpkt 1/1 Running 0 2m28s kibana-d6d5668c5-rppqm 2/2 Running 0 2m39s