3.3. CLI を使用した Cluster Logging Operator のインストール

OpenShift Container Platform CLI を使用して、Cluster Logging Operator をインストールできます。Cluster Logging Operator はロギングスタックのコンポーネントを作成し、管理します。

手順

CLI を使用して Cluster Logging Operator をインストールするには、以下を実行します。

  1. Cluster Logging Operator の namespace を作成します。

    1. 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"
    2. namespace を作成します。

      $ oc create -f <file-name>.yaml

      以下は例になります。

      $ oc create -f clo-namespace.yaml
  2. 以下のオブジェクトを作成して Elasticsearch Logging Operator をインストールします。

    1. 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
      1 2
      openshift-logging namespace を指定する必要があります。
    2. OperatorGroup オブジェクトを作成します。

      $ oc create -f <file-name>.yaml

      以下は例になります。

      $ oc create -f clo-og.yaml
    3. 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

      1
      openshift-logging namespace を指定する必要があります。
      2
      4.2 をチャネルとして指定します。
      3
      redhat-operators を指定します。OpenShift Container Platform クラスターが、非接続クラスターとも呼ばれる制限されたネットワークにインストールされている場合、Operator Lifecycle Manager (OLM) の設定時に作成した CatalogSource オブジェクトの名前を指定します。
    4. Subscription オブジェクトを作成します。

      $ oc create -f <file-name>.yaml

      以下は例になります。

      $ oc create -f clo-sub.yaml

      Cluster Logging Operator は openshift-logging namespace にインストールされます。

  3. 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
    ...
  4. クラスターロギングのインスタンスを作成します。

    1. 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 データノードの数と等しくなります。

    2. インスタンスを作成します。

      $ oc create -f <file-name>.yaml

      以下は例になります。

      $ oc create -f clo-instance.yaml
  5. 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