3.3. CLI を使用した Cluster Logging Operator のインストール
OpenShift Container Platform CLI を使用して、Cluster Logging Operator をインストールできます。Cluster Logging Operator はロギングスタックのコンポーネントを作成し、管理します。
手順
CLI を使用して Cluster Logging Operator をインストールするには、以下を実行します。
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-logging: "true" openshift.io/cluster-monitoring: "true"
namespace を作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f clo-namespace.yaml
以下のオブジェクトを作成して Elasticsearch 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 を Operator にサブスクライブします。サブスクリプションの例
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging 1 spec: channel: "4.2" 2 name: cluster-logging source: redhat-operators 3 sourceNamespace: openshift-marketplace
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 --all-namespaces NAMESPACE NAME DISPLAY VERSION REPLACES PHASE ... openshift-logging clusterlogging.4.2.1-202002032140 Cluster Logging 4.2.1-202002032140 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: gp2 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 (Custom Resource) を使用してシャードのレプリケーションポリシーおよび永続ストレージを設定できます。詳細は「Elasticsearch の設定」を参照してください。
- 4
- Elasticsearch ノードの数を指定します。この一覧に続く注記を確認してください。
- 5
- クラスターの各 Elasticsearch ノードが Persistent Volume Claim(永続ボリューム要求、PVC)にバインドされるように指定します。
- 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