由 Fleet 管理的高级 Elastic Agent 配置
编辑由 Fleet 管理的高级 Elastic Agent 配置
编辑对于由 Fleet 管理的基本 Elastic Agent 场景,请按照在 Kubernetes 上运行由 Fleet 管理的 Elastic Agent中的步骤操作。
在托管的 Elastic Agent 安装中,提供配置更多高级选项的能力(例如,在启动期间配置提供程序)可能很有用。有关更多详细信息,请参阅提供程序。
以下步骤演示了上述场景
步骤 1:下载 Elastic Agent 清单
编辑建议您按照安装 Fleet 管理的 Elastic Agent(已在您的策略中安装 Kubernetes 集成)中的步骤操作,并从 Kibana UI 下载 Elastic Agent 清单。
- 说明
- 示例清单也可以在此处找到。
步骤 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>" ---
- 说明
-
- 在上述示例中,演示了禁用
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>" ---
- 查找有关注册令牌的更多信息。
步骤 3:配置 DaemonSet
编辑在下载的清单中,更新 DaemonSet 资源。
更新入口点。
containers: - name: elastic-agent image: docker.elastic.co/elastic-agent/elastic-agent: <ImageVersion> args: ["-c", "/etc/elastic-agent/agent.yml", "-e"]
- 说明
- <ImageVersion> 只是一个占位符,用于您将在清单中下载的 elastic-agent 镜像版本:例如
image: docker.elastic.co/elastic-agent/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
重要说明
编辑- 默认情况下,由 Fleet 管理的 Elastic Agent 的清单具有
hostNetwork:true
。为了支持在同一节点上安装多个 Elastic Agent,您应该将hostNetwork
设置为false
。请参阅此相关示例,如Elastic Agent 清单以支持 Kube-State-Metrics 分片中所述。 - 卷
/usr/share/elastic-agent/state
必须保留在elastic-agent-managed-kubernetes.yaml中挂载,否则上面提供的自定义 ConfigMap 将被覆盖。