You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置AWS EKS Fargate按namespace-pod-name命名CloudWatch日志流

EKS Fargate的内置托管Fluent Bit日志组件默认会给CloudWatch日志流加随机后缀,不需要自行部署日志采集组件,直接通过配置调整命名规则即可,具体操作如下:

前置检查
  • 确认Fargate集群平台版本不低于1.3.0,低版本不支持日志流模板变量注入
  • 确认已经完成基础的Fargate日志IAM权限配置,Fargate执行角色已关联CloudWatch日志写入的对应权限策略
配置方式

可根据需求选择全局生效或者单工作负载生效两种模式:

方式1:全局所有Fargate Pod生效

修改kube-system命名空间下名为aws-logging的ConfigMap(即初始配置Fargate日志时创建的Fluent Bit配置文件),在[OUTPUT]段(CloudWatch输出部分)添加/修改stream_name参数,同时删除或注释掉原有的log_stream_prefix配置(该配置优先级更高会覆盖自定义流名规则):

[OUTPUT]
    Name cloudwatch_logs
    Match *
    region <你的集群所在区域>
    log_group_name /aws/eks/<你的集群名>/fargate
    # log_stream_prefix  注释或删除原有前缀配置
    stream_name ${kubernetes.namespace_name}-${kubernetes.pod_name}
    auto_create_group true

保存ConfigMap后,所有新启动的Fargate Pod都会自动应用这个命名规则,已经在运行的Pod需要重建才会生效。

方式2:仅指定工作负载生效

如果不想全局修改,只需要给特定工作负载的Pod模板添加annotations即可,不需要调整全局ConfigMap:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: your-app
  template:
    metadata:
      labels:
        app: your-app
      annotations:
        # 新增注解指定日志流命名模板
        eks.amazonaws.com/log-stream-name: "$(kubernetes.namespace_name)-$(kubernetes.pod_name)"
    spec:
      containers:
      - name: your-app
        image: your-app-image:latest

应用更新后的工作负载YAML,等待Pod滚动重建完成即可生效。

注意事项
  • CloudWatch不允许同一日志组下同名活跃日志流并发写入,如果Pod重建后和旧Pod同名,旧日志流未完全进入归档状态时,可能出现1-2分钟的日志写入失败,对日志连续性要求高的场景可以在模板末尾追加容器ID或者重启次数变量
  • 不要尝试在Fargate集群上部署Fluent Bit/Fluentd DaemonSet做日志采集,Fargate不支持特权DaemonSet,托管日志组件已经内置在Fargate运行环境中,自行部署的采集组件无法正常获取节点上其他容器的日志
  • 配置生效后可直接到CloudWatch控制台对应日志组下验证,日志流会直接以namespace-pod-name格式展示,不会带默认的随机后缀

内容的提问来源于stack exchange,提问作者Akshay Gopani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:54:20