容器日志:部署配置与缓冲治理
按权限、解析、位点、后端和试点调度顺序组织部署,明确状态保留和配置回退条件。
部署状态与准备材料
本页描述实验性集成方案的实施顺序,没有已部署组件或一键安装制品。实施方需完成数据契约与试点准备,固定组件版本、镜像摘要和插件兼容性,准备回退清单与窗口。先确定自管理 Elasticsearch 或其他产品形态;生命周期功能应按实际产品使用,不能直接套用另一形态的配置。
最小权限与目录
为 Fluent Bit 建立独立 ServiceAccount,根据实际元数据查询授予必要读取权限。节点日志只读挂载,offset 与缓冲放到独立持久目录,并评审 hostPath 例外。后端写入身份仅可写指定范围,Secret 读取权限仅授给需要的组件;证书校验不能为了连通而关闭。下例检查调用者自身是否获准读取试点 Pod,不修改授权。
kubectl --context='<CONTEXT>' auth can-i list pods -n '<PILOT_NAMESPACE>'解析与位点候选片段
以下是 Fluent Bit classic 格式的 Tail 输入候选片段,不是完整可启动配置。占位符必须替换;实际解析器、CRI 多行处理、过滤和输出仍需在完整配置中定义,并用脱敏样例验证。不同 Tail 输入使用独立数据库,目录不能由多实例无协调共享。
[INPUT]
Name tail
Tag pilot.raw
Path <AUTHORIZED_LOG_PATH>
DB <PERSISTENT_STATE_DIR>/pilot-tail.db
Read_from_Head Off
storage.type filesystem已有位点与新发现文件的起读位置不同,版本差异也需复核,参见 Tail 输入官方说明。日志已轮转删除后,不应假设数据库可恢复正文。
缓冲与后端先行
完整配置还需设置独立的全局存储目录和输出队列限额;filesystem 缓冲不等于只加输入选项即可完成。按峰值与中断时长确定预算,容量上限触发后的丢弃行为见 Fluent Bit 缓冲说明。先建立试点字段模板、写入授权与保留策略,再接收流量;避免每个 Pod 一个索引。自管理集群的保留治理参见 Elastic ILM 文档。
预检与小批接入
先在隔离样例环境核对单行、多行、超长行、异常编码和脱敏输出,再预检完整候选配置;当前版本需支持下列选项。命令不部署集群,但预检应在没有生产凭据的受控环境执行。
fluent-bit --dry-run --config '<CANDIDATE_CONFIG>'随后由实施方按现有发布机制把 DaemonSet 限于试点节点,观察 CPU、内存、API 请求、缓冲增长和后端拒绝。Kibana 设置正确时间字段,并以允许及拒绝两类身份验证检索范围,不能将前端过滤当成隔离验收。
验收、停机与回退
每批以唯一事件标识核对输入与检索结果,保存解析、权限及资源证据,合格后再扩大节点池。部署不应主动中断应用,但采集器升级或后端切换仍可能形成采集空窗,应预告窗口。发生节点压力或不可解释缺口时恢复最近一批清单,保留旧链路、offset 和未发送数据;不得删除索引或清空位点作为回退。无法重放的缺口必须记录并告知日志使用方,恢复步骤见运行维护。