検索

3.2. Loki Operator のインストール

download PDF

Network Observability でサポートされている Loki Operator のバージョンは、Loki Operator バージョン 5.7 以降 です。これらのバージョンでは、openshift-network テナント設定モードを使用して LokiStack インスタンスを作成する機能が提供されており、Network Observability に対する完全に自動化されたクラスター内認証および認可がサポートされています。Loki をインストールするにはいくつかの方法があります。そのうちの 1 つが、OpenShift Container Platform Web コンソールの Operator Hub を使用する方法です。

前提条件

  • 対応ログストア (AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation)
  • OpenShift Container Platform 4.10 以上
  • Linux カーネル 4.18 以降

手順

  1. OpenShift Container Platform Web コンソールで、Operators OperatorHub をクリックします。
  2. 使用可能な Operator のリストから Loki Operator を選択し、Install をクリックします。
  3. Installation Mode で、All namespaces on the cluster を選択します。

検証

  1. Loki Operator がインストールされていることを確認します。OperatorsInstalled Operators ページにアクセスして、Loki Operator を探します。
  2. Loki Operator がすべてのプロジェクトで SucceededStatus でリストされていることを確認します。
重要

Loki をアンインストールするには、Loki のインストールに使用した方法に対応するアンインストールプロセスを参照してください。ClusterRoleClusterRoleBindings、オブジェクトストアに格納されたデータ、および削除する必要のある永続ボリュームが残っている可能性があります。

3.2.1. Loki ストレージのシークレットの作成

Loki Operator は、AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation など、いくつかのログストレージオプションをサポートしています。次の例は、AWS S3 ストレージのシークレットを作成する方法を示しています。この例で作成されたシークレット loki-s3 は、「LokiStack リソースの作成」で参照されています。このシークレットは、Web コンソールまたは CLI で作成できます。

  1. Web コンソールを使用して、Project All Projects ドロップダウンに移動し、Create Project を選択します。プロジェクトに netobserv という名前を付けて、Create をクリックします。
  2. 右上隅にあるインポートアイコン + に移動します。YAML ファイルをエディターにペーストします。

    以下は、S3 ストレージのシークレット YAML ファイルの例です。

    apiVersion: v1
    kind: Secret
    metadata:
      name: loki-s3
      namespace: netobserv   1
    stringData:
      access_key_id: QUtJQUlPU0ZPRE5ON0VYQU1QTEUK
      access_key_secret: d0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQo=
      bucketnames: s3-bucket-name
      endpoint: https://s3.eu-central-1.amazonaws.com
      region: eu-central-1
    1
    このドキュメントに記載されているインストール例では、すべてのコンポーネントで同じ namespace である netobserv を使用しています。オプションで、異なるコンポーネントで異なる namespace を使用できます。

検証

  • シークレットを作成すると、Web コンソールの Workloads Secrets の下に一覧表示されます。

3.2.2. LokiStack カスタムリソースの作成

Web コンソールまたは OpenShift CLI (oc) を使用して namespace または新しいプロジェクトを作成し、LokiStack カスタムリソース (CR) をデプロイできます。

手順

  1. Operators Installed Operators に移動し、Project ドロップダウンから All projects を表示します。
  2. Loki Operator を探します。詳細の Provided APIs で、LokiStack を選択します。
  3. Create LokiStack をクリックします。
  4. Form View または YAML view で次のフィールドが指定されていることを確認します。

    apiVersion: loki.grafana.com/v1
    kind: LokiStack
    metadata:
      name: loki
      namespace: netobserv 1
    spec:
      size: 1x.small 2
      storage:
        schemas:
        - version: v12
          effectiveDate: '2022-06-01'
        secret:
          name: loki-s3
          type: s3
      storageClassName: gp3 3
      tenants:
        mode: openshift-network
    1
    このドキュメントに記載されているインストール例では、すべてのコンポーネントで同じ namespace である netobserv を使用しています。必要に応じて、別の namespace を使用できます。
    2
    デプロイメントサイズを指定します。Loki Operator 5.8 以降のバージョンでは、Loki の実稼働インスタンスでサポートされているサイズオプションは 1x.extra-small1x.small、または 1x.medium です。
    重要

    デプロイメントサイズの 1x の数は変更できません。

    3
    ReadWriteOnce アクセスモードのクラスターで使用可能なストレージクラス名を使用します。oc get storageclasses を使用して、クラスターで利用できるものを確認できます。
    重要

    ログ記録に使用したのと同じ LokiStack CR を再利用しないでください。

  5. Create をクリックします。

3.2.3. cluster-admin ユーザーロールの新規グループの作成

重要

cluster-admin ユーザーとして複数の namespace のアプリケーションログをクエリーすると、クラスター内のすべての namespace の文字数の合計が 5120 を超え、Parse error: input size too long (XXXX > 5120) エラーが発生します。LokiStack のログへのアクセスをより適切に制御するには、cluster-admin ユーザーを cluster-admin グループのメンバーにします。cluster-admin グループが存在しない場合は、作成して必要なユーザーを追加します。

次の手順を使用して、cluster-admin 権限のあるユーザー用に、新しいグループを作成します。

手順

  1. 以下のコマンドを入力して新規グループを作成します。

    $ oc adm groups new cluster-admin
  2. 以下のコマンドを実行して、必要なユーザーを cluster-admin グループに追加します。

    $ oc adm groups add-users cluster-admin <username>
  3. 以下のコマンドを実行して cluster-admin ユーザーロールをグループに追加します。

    $ oc adm policy add-cluster-role-to-group cluster-admin cluster-admin

3.2.4. カスタム管理者グループのアクセス権

必ずしも管理者でなくてもクラスター全体のログを確認する必要がある場合、またはここで使用したいグループがすでに定義されている場合は、adminGroup フィールドを使用してカスタムグループを指定できます。LokiStack カスタムリソース (CR) の adminGroups フィールドで指定されたグループのメンバーであるユーザーには、管理者と同じログの読み取りアクセス権があります。

cluster-logging-application-view ロールも割り当てられている管理者ユーザーは、すべての namespace のすべてのアプリケーションログにアクセスできます。

管理者ユーザーは、クラスター全体のすべてのネットワークログにアクセスできます。

LokiStack CR の例

apiVersion: loki.grafana.com/v1
kind: LokiStack
metadata:
  name: loki
  namespace: netobserv
spec:
  tenants:
    mode: openshift-network 1
    openshift:
      adminGroups: 2
      - cluster-admin
      - custom-admin-group 3

1
カスタム管理者グループは、このモードでのみ使用できます。
2
このフィールドに空のリスト値 [] を入力すると、管理者グループが無効になります。
3
デフォルトのグループ (system:cluster-adminscluster-admindedicated-admin) をオーバーライドします。

3.2.5. Loki デプロイメントのサイズ

Loki のサイズは 1x.<size> の形式に従います。この場合の 1x はインスタンスの数を、<size> は性能を指定します。

重要

デプロイメントサイズの 1x の数は変更できません。

表3.2 Loki のサイズ
 1x.demo1x.extra-small1x.small1x.medium

Data transfer

デモ使用のみ

100 GB/日

500 GB/日

2 TB/日

1 秒あたりのクエリー数 (QPS)

デモ使用のみ

200 ミリ秒で 1 - 25 QPS

200 ミリ秒で 25 - 50 QPS

200 ミリ秒で 25 - 75 QPS

レプリケーション係数

なし

2

2

2

合計 CPU 要求

なし

仮想 CPU 14 個

仮想 CPU 34 個

仮想 CPU 54 個

合計メモリー要求

なし

31 Gi

67 Gi

139 Gi

合計ディスク要求

40Gi

430 Gi

430 Gi

590 Gi

3.2.6. LokiStack の取り込み制限とヘルスアラート

LokiStack インスタンスには、設定されたサイズに応じたデフォルト設定が付属しています。取り込みやクエリーの制限など、これらの設定の一部を上書きすることができます。コンソールプラグインまたは flowlogs-pipeline ログに Loki エラーが表示される場合は、それらを更新することを推奨します。これらの制限に達すると、Web コンソールの自動アラートで通知されます。

設定された制限の例を次に示します。

spec:
  limits:
    global:
      ingestion:
        ingestionBurstSize: 40
        ingestionRate: 20
        maxGlobalStreamsPerTenant: 25000
      queries:
        maxChunksPerQuery: 2000000
        maxEntriesLimitPerQuery: 10000
        maxQuerySeries: 3000

これらの設定の詳細は、LokiStack API リファレンス を参照してください。

3.2.7. Network Observability でのマルチテナンシーの有効化

Network Observability Operator のマルチテナンシーにより、Loki に保存されているフローへのユーザーアクセスまたはグループアクセスが個別に許可および制限されます。プロジェクト管理者のアクセスが有効になっています。一部の namespace へのアクセスが制限されているプロジェクト管理者は、それらの namespace のフローのみにアクセスできます。

前提条件

手順

  1. 次のコマンドを実行して、user1 に読み取り権限を付与します。

    $ oc adm policy add-cluster-role-to-user netobserv-reader user1

    現在、データは許可されたユーザー namespace のみに制限されています。たとえば、単一の namespace にアクセスできるユーザーは、この namespace 内部のフローすべてと、この namespace から出入りするフローを表示できます。プロジェクト管理者は、OpenShift Container Platform コンソールの Administrator パースペクティブにアクセスして、Network Flows Traffic ページにアクセスできます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.