이 항목에서는 Fluent Bit를 Tanzu Kubernetes Grid의 독립형 관리 또는 워크로드 클러스터에 배포하는 방법을 설명합니다.
Fluent Bit는 경량 로그 프로세서 및 전달자입니다. Tanzu Kubernetes Grid의 이번 릴리스에서 제공되는 Fluent Bit 구현을 사용하면 vSphere 8, AWS(Amazon Web Services), Azure에서 실행되는 클러스터에서 로그를 수집할 수 있습니다. 그런 다음 Elastic Search, Kafka, Splunk 또는 HTTP 끝점과 같은 로그 스토리지 제공자로 전달할 수 있습니다.
로그를 수집하려는 모든 독립형 관리 클러스터 또는 워크로드 클러스터에 Fluent Bit를 배포할 수 있습니다. 먼저 사용하는 끝점에 따라 로그를 수집하려는 클러스터에 출력 플러그인을 구성합니다. 그런 다음 클러스터에 Fluent Bit를 배포합니다.
kubectl
Tanzu.참고로그를 수집하려는 각 클러스터에 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
).
구성하려는 로그 관리 백엔드를 기반으로 fluent-bit-data-values.yaml
파일의 fluent_bit.config.outputs
키에 하나 이상의 [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
삭제에 대한 자세한 내용은 패키지 삭제를 참조하십시오.