我有一個 fluentbit 部署為邊車。這個 fluentbit 有一個 Forward 型別的輸出,假設將日志發送到部署為 DaemonSet 的 FluentD。
該實作在使用 FluentD 的 PodIP 作為主機時有效,但在使用來自 Kubernetes 的服務主機名時連接被拒絕。
這是使用上游方法時的錯誤:
[error] [net] TCP connection failed: fluentd.logging.svc.cluster.local:24224 (Connection refused)
[error] [net] socket #33 could not connect to fluentd.logging.svc.cluster.local:24224
[debug] [upstream] connection #-1 failed to fluentd.logging.svc.cluster.local:24224
[error] [output:forward:forward.0] no upstream connections available
這是使用常規主機方法時的錯誤:
[error] [output:forward:forward.0] could not write forward header
我嘗試使用 Forward for Fluentbit 中的 Host 引數,以及具有相同結果的 Upstream 功能。
沒有適當的網路策略。這是與 Upstream 的配置。使用主機,它將在 OUTPUT 部分具有主機和埠而不是上游。
[SERVICE]
Daemon Off
Flush 5
Log_Level debug
Parsers_File parsers.conf
Parsers_File custom_parsers.conf
HTTP_Server Off
[INPUT]
Name tail
Path /var/app-logs/*
Parser json
Tag app-logs.*
Mem_Buf_Limit 5MB
Skip_Long_Lines On
[OUTPUT]
Name forward
Match app-logs.*
Host fluentd.logging.svc.cluster.local
Port 24244
[PARSER]
Name json
Format json
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L
FluentD 部署有一個 Service,其 TCP 埠為 24244,與容器 TCP 埠 24244 相連,FluentD 在此監聽。
一個簡單的“nc”測驗還表明我能夠連接到 PodIP,但不能連接到服務主機名。
我的 FluenD 守護行程中還有一個額外的埠,用于 Prometheus 指標,我可以使用主機名“nc”到那個埠。
這是 FluentD 服務
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
fluentd ClusterIP 10.102.255.48 <none> 24231/TCP,24244/TCP 4d6h
這是 FluentD 部署
Containers:
fluentd:
Container ID: xxxx
Image: xxxx
Image ID: xxxx
Ports: 24231/TCP, 24244/TCP
Host Ports: 0/TCP, 0/TCP
這是 FluentD 轉發偵聽器配置
<source>
@type forward
port 24224
bind 0.0.0.0
@label @applogs
tag applogs.*
</source>
我在這里遺漏了一些明顯的東西嗎?
uj5u.com熱心網友回復:
好吧,愚蠢的愚蠢錯誤,在寫號碼埠時出現了一個錯字,所以在 FluentBit 中配置的與在 Kubernetes Service 中定義的不匹配 -.-
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323710.html
標籤:Kubernetes 流利的 流利的位
