本主題說明如何將 Fluent Bit 部署到 Tanzu Kubernetes Grid 中的獨立管理叢集或工作負載叢集。
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:
如果叢集沒有已安裝 Fluent Bit 軟體套件的套件存放庫 (例如 tanzu-standard
存放庫),請安裝一個:
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
。
根據要設定的記錄管理後端,將一或多個 [Output]
組態新增至 fluent-bit-data-values.yaml
檔案中的 fluent_bit.config.outputs
機碼。
檢閱並視需要修改其他組態參數。如需可在 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 Pod 及與 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 部署 Pod 註解。 | 清單 | <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
套用變更可能需要長達五分鐘的時間。
如需有關更新的資訊,請參閱更新套件。
若要移除叢集上的 Fluent Bit 套件,請執行:
tanzu package installed delete fluent-bit --namespace my-packages
如需有關刪除的資訊,請參閱刪除套件。