由 Fleet 管理的增强型 Elastic Agent 配置编辑

对于由 Fleet 管理的基本 Elastic Agent 场景,请按照 在由 Fleet 管理的 Kubernetes 上运行 Elastic Agent 中的步骤操作。

在管理的 Elastic Agent 安装中,提供在启动期间配置更多高级选项(例如提供程序配置)的能力可能很有用。有关更多详细信息,请参阅 提供程序

以下步骤演示了上述场景

步骤 1:下载 Elastic Agent 清单编辑

建议您按照 安装由 Fleet 管理的 Elastic Agent 中的步骤操作,在您的策略中安装 Kubernetes 集成,并从 Kibana UI 下载 Elastic Agent 清单

Elastic Agent with K8s Package manifest
注意
示例清单也可以在 此处 找到
步骤 2:创建一个新的 configmap编辑

创建一个新的 configmap。

apiVersion: v1
kind: ConfigMap
metadata:
  name: agent-node-datastreams
  namespace: kube-system
  labels:
    k8s-app: elastic-agent
data:
  agent.yml: |-
    providers.kubernetes_leaderelection.enabled: false
    fleet.enabled: true
    fleet.access_token: "<FLEET_ENROLLMENT_TOKEN>"
---
注意
  1. 在上面的示例中,演示了禁用 kubernetes_leaderelection 提供程序。相同的过程可以用于其他场景。

配置 Kubernetes 元数据丰富的 configmap 示例。

apiVersion: v1
kind: ConfigMap
metadata:
  name: agent-node-datastreams
  namespace: kube-system
  labels:
    k8s-app: elastic-agent
data:
  agent.yml: |-
    providers.kubernetes:
      add_resource_metadata:
        deployment: true
        cronjob: true
    fleet.enabled: true
    fleet.access_token: "<FLEET_ENROLLMENT_TOKEN>"
---
  1. 查找有关 注册令牌 的更多信息。
步骤 3:配置 Daemonset编辑

在下载的清单中,更新 Daemonset 资源

更新入口点。

containers:
  - name: elastic-agent
    image: docker.elastic.co/beats/elastic-agent: <ImageVersion>
    args: ["-c", "/etc/elastic-agent/agent.yml", "-e"]
注意
The <ImageVersion> 只是一个占位符,用于您将在清单中下载的 elastic-agent 镜像版本:例如 image: docker.elastic.co/beats/elastic-agent: 8.11.0 重要的是使用 args 详细信息更新您的清单

添加额外的卷挂载。

volumeMounts:
  - name: datastreams
    mountPath: /etc/elastic-agent/agent.yml
    readOnly: true
    subPath: agent.yml

添加新的卷。

volumes:
  - name: datastreams
    configMap:
      defaultMode: 0640
      name: agent-node-datastreams
重要说明编辑
  1. 默认情况下,由 Fleet 管理的 Elastic Agent 的清单具有 hostNetwork:true。为了支持在同一节点上安装多个 Elastic Agent,您应该设置 hostNetwork:false。请参阅 此相关示例,如 为了支持 Kube-State-Metrics 分片而提供的 Elastic Agent 清单 中所述。
  2. /usr/share/elastic-agent/state 必须保留在 elastic-agent-managed-kubernetes.yaml 中挂载,否则上面提供的自定义 config map 将被覆盖。