このトピックでは、Tanzu Kubernetes Grid のスタンドアローン管理またはワークロード クラスタに Fluent Bit を展開する方法について説明します。
Fluent Bit は軽量なログ プロセッサおよびフォワーダです。このリリースの Tanzu Kubernetes Grid で提供される Fluent Bit 実装では、vSphere 8、Amazon Web Services (AWS)、および Azure で実行されているクラスタからログを収集できます。その後、Elastic Search、Kafka、Splunk、HTTP エンドポイントなどのログ ストレージ プロバイダに転送できます。
ログの収集元となる任意のスタンドアローン管理クラスタまたはワークロード クラスタに Fluent Bit を展開できます。最初に、使用するエンドポイントに応じて、ログの収集元となるクラスタで出力プラグインを構成します。次に、Fluent Bit をクラスタに展開します。
kubectl
(「スタンドアローン管理クラスタで使用する Tanzu CLI と Kubernetes CLI のインストール」を参照)。注ログの収集元となる各クラスタに Fluent Bit を展開する必要があります。
クラスタを準備するには、次の手順を実行します。
Fluent Bit を展開するクラスタの管理者認証情報を取得します。例:
tanzu cluster kubeconfig get my-cluster --admin
kubectl のコンテキストをクラスタに設定します。例:
kubectl config use-context my-cluster-admin@my-cluster
次の手順に従って、クラスタに Fluent Bit を展開します。
クラスタに、tanzu-standard
リポジトリなどの、Fluent Bit パッケージがインストールされたパッケージ リポジトリがない場合は次の方法でインストールします。
tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
ここで、
PACKAGE-REPO-NAME
はパッケージ リポジトリの名前です。tanzu-standard
や、ADDITIONAL_IMAGE_REGISTRY
変数で構成されたプライベート イメージ レジストリの名前が入ります。PACKAGE-REPO-ENDPOINT
はパッケージ リポジトリの URL です。
tanzu-standard
の URL は projects.registry.vmware.com/tkg/packages/standard/repo:v2023.10.16
です。Tanzu CLI からこの値を取得するには、「パッケージ リポジトリの一覧表示」を参照してください。また、Tanzu Mission Control では [クラスタ (Cluster)] ペインの [アドオン (Addons)] > [リポジトリ (Repositories)] リストを参照してください。まだクラスタに cert-manager をインストールしていない場合は、インストールします。手順については、「証明書管理用の cert-manager のインストール」を参照してください。
Fluent Bit パッケージがクラスタで使用可能であることを確認します。
tanzu package available list -A
使用可能なパッケージのバージョンを取得します。
tanzu package available list fluent-bit.tanzu.vmware.com -A
Fluent Bit パッケージの構成ファイルを準備します。
パッケージのデフォルト構成を取得します。
tanzu package available get fluent-bit.tanzu.vmware.com/PACKAGE-VERSION --default-values-file-output FILE-PATH
ここで、PACKAGE-VERSION
はインストールする Fluent Bit パッケージのバージョンで、FILE-PATH
は fluent-bit-data-values.yaml
などの構成ファイルを保存する場所です。
構成するログ管理バックエンドに基づいて、fluent-bit-data-values.yaml
ファイルの fluent_bit.config.outputs
キーに 1 つ以上の [Output]
構成を追加します。
確認し、必要に応じて他の構成パラメータを変更します。fluent-bit-data-values.yaml
で設定できる構成パラメータの完全なリストへのリンクについては、以下の「Fluent Bit パッケージ構成パラメータ」を参照してください。
fluent-bit-data-values.yaml
ファイルを準備したら、ファイル内のすべてのコメントを削除します。
yq -i eval '... comments=""' fluent-bit-data-values.yaml
tanzu package install
を実行して、パッケージを展開します。
tanzu package install fluent-bit \
--package fluent-bit.tanzu.vmware.com \
--version AVAILABLE-PACKAGE-VERSION \
--values-file fluent-bit-data-values.yaml \
--namespace TARGET-NAMESPACE
ここで、
TARGET-NAMESPACE
は、Fluent Bit パッケージをインストールする名前空間です。たとえば、my-packages
名前空間などです。
--namespace
フラグが指定されていない場合、Tanzu CLI は default
名前空間を使用します。Fluent Bit ポッドおよび Fluent Bit コンポーネントに関連付けられているその他のリソースは、fluent-bit-data-values.yaml
で指定した名前空間に作成されます。Fluent Bit パッケージをこの名前空間にインストールしないでください。kubectl create namespace my-packages
を実行することによってすでに存在している必要があります。AVAILABLE-PACKAGE-VERSION
は、上記の tanzu package available
を実行して取得したバージョンです。
例:
tanzu package install fluent-bit --package fluent-bit.tanzu.vmware.com --namespace my-packages --version 2.1.2+vmware.1-tkg.1
次の表に、Fluent Bit パッケージの構成パラメータとそのデフォルト値を示します。上記の「クラスタへの Fluent Bit の展開」で作成した fluent-bit-data-values.yml
ファイルに次の構成値を設定できます。
パラメータ | 説明 | タイプ | デフォルト |
---|---|---|---|
namespace |
Fluent Bit が展開される名前空間。 | 文字列 | tanzu-system-logging |
fluent_bit.config.outputs |
Fluent Bit 出力の構成の詳細については、Fluent Bit のドキュメントを参照してください。 | マルチライン YAML | Standard output |
fluent_bit.config.parsers |
Fluent Bit パーサの構成の詳細については、Fluent Bit のドキュメントを参照してください。 | マルチライン YAML | JSON parser |
fluent_bit.config.plugins |
Fluent Bit プラグイン構成のコンテンツ。 | 文字列 | <nil> |
fluent_bit.config.service |
Fluent Bit サービスの構成の詳細については、Fluent Bit のドキュメントを参照してください。 | マルチライン YAML | デフォルトの Fluent Bit サービス構成。 |
fluent_bit.config.streams |
Fluent Bit ストリーム ファイルのコンテンツ。 | 文字列 | <nil> |
fluent_bit.config.filters |
Fluent Bit フィルタの構成の詳細については、Fluent Bit のドキュメントを参照してください。 | マルチライン YAML | デフォルトの Kubernetes フィルタ。 |
fluent_bit.config.inputs |
Fluent Bit 入力の構成の詳細については、Fluent Bit のドキュメントを参照してください。 | 文字列 | tail プラグインを使用して Kubernetes コンテナ ログを取り込み、kubelet から systemd ログを取り込みます。 |
fluent_bit.daemonset.resources |
Fluent Bit コンテナのリソース要件の構成の詳細については、Fluent Bit のドキュメントを参照してください。 | マルチライン YAML | <nil> |
fluent_bit.daemonset.podAnnotations |
Fluent Bit 展開ポッドの注釈。 | リスト | <nil> |
fluent_bit.daemonset.podLabels |
Fluent Bit 展開ポッドのラベル。 | リスト | <nil> |
Fluent Bit を展開したら、展開が成功したことを確認できます。
fluent-bit パッケージがインストールされていることを確認します。例:
tanzu package installed list -A
fluent-bit
パッケージと fluent-bit
アプリケーションは、tanzu package install
コマンドを実行するときに指定した名前空間にインストールされます。
fluent-bit
アプリケーションが AVAILABLE-PACKAGE-NAMESPACE
で正常に調整されていることを確認します。
kubectl get apps -A
ステータスが Reconcile succeeded
でない場合は、fluent-bit
アプリケーションの完全なステータスの詳細を表示します。完全なステータスを表示すると、問題のトラブルシューティングに役立ちます。
kubectl get app fluent-bit --namespace AVAILABLE-PACKAGE-NAMESPACE -o yaml
ここで、AVAILABLE-PACKAGE-NAMESPACE
は、パッケージをインストールした名前空間です。
クラスタで実行されているすべてのポッドを一覧表示して、新しいサービスが実行されていることを確認します。
kubectl get pods -A
tanzu-system-logging
名前空間に、ポッドで実行されている fluent-bit
サービスが表示されます。
NAMESPACE NAME READY STATUS RESTARTS AGE
[...]
tanzu-system-logging fluent-bit-zd2tn 1/1 Running 0 6m23s
[...]
Fluent Bit ポッドおよび Fluent Bit コンポーネントに関連付けられているその他のリソースは、fluent-bit-data-values.yaml
ファイルで指定した名前空間に作成されます。デフォルトの名前空間を使用している場合は、tanzu-system-logging
名前空間に作成されます。
展開後に Fluent Bit パッケージの構成を変更するには、展開された Fluent Bit パッケージを更新します。
fluent-bit-data-values.yaml
ファイルで Fluent Bit 構成を更新します。
インストール済みパッケージを更新します。
tanzu package installed update fluent-bit \
--version 2.1.2+vmware.1-tkg.1 \
--values-file fluent-bit-data-values.yaml \
--namespace my-packages
予期される出力:
| Updating package 'fluent-bit'
- Getting package install for 'fluent-bit'
| Updating secret 'fluent-bit-my-packages-values'
| Updating package install for 'fluent-bit'
Updated package install 'fluent-bit' in namespace 'my-packages'
Fluent Bit パッケージは、追加した新しい値を使用して調整されます。kapp-controller
が変更を適用するまでに最大 5 分かかることがあります。
更新の詳細については、「パッケージの更新」を参照してください。
クラスタで Fluent Bit パッケージを削除するには、次のコマンドを実行します。
tanzu package installed delete fluent-bit --namespace my-packages
削除の詳細については、「パッケージの削除」を参照してください。