Kubernetes元信息采集
简介
service_kubernetes_meta 定时采集Kubernetes元数据,包括Pod、Deployment等资源及其之间的关系。并提供HTTP查询接口,支持通过一些字段索引,如Pod IP、Host IP等信息快速查询元数据。
版本
版本说明
- 推荐版本:LoongCollector v3.0.5 及以上
配置参数
注意: 本插件需要在Kubernetes集群中运行,且需要有访问Kubernetes API的权限。并且部署模式为单例模式,且配置环境变量DEPLOY_MODE为singleton,ENABLE_KUBERNETES_META为true。
| 参数 | 类型,默认值 | 说明 |
|---|---|---|
| Type | string,无默认值(必填) | 插件类型,固定为service_kubernetes_meta。 |
| Interval | int, 30 | 采集间隔时间,单位为秒。 |
| Pod | bool, false | 是否采集Pod元数据。 |
| Node | bool, false | 是否采集Node元数据。 |
| Service | bool, false | 是否采集Service元数据。 |
| Deployment | bool, false | 是否采集Deployment元数据。 |
| DaemonSet | bool, false | 是否采集DaemonSet元数据。 |
| StatefulSet | bool, false | 是否采集StatefulSet元数据。 |
| Configmap | bool, false | 是否采集ConfigMap元数据。 |
| Job | bool, false | 是否采集Job元数据。 |
| CronJob | bool, false | 是否采集CronJob元数据。 |
| Namespace | bool, false | 是否采集Namespace元数据。 |
| PersistentVolume | bool, false | 是否采集PersistentVolume元数据。 |
| PersistentVolumeClaim | bool, false | 是否采集PersistentVolumeClaim元数据。 |
| StorageClass | bool, false | 是否采集StorageClass元数据。 |
| Ingress | bool, false | 是否采集Ingress元数据。 |
| EnableLabels | bool, false | 是否采集Kubernetes资源的标签(Labels)信息。启用后会在元数据中包含资源的标签字段。 |
| EnableAnnotations | bool, false | 是否采集Kubernetes资源的注解(Annotations)信息。启用后会在元数据中包含资源的注解字段。 |
| Node2Pod | string, 无默认值(可选) | Node到Pod的关系名,不填则不生成关系。 |
| Deployment2Pod | string, 无默认值(可选) | Deployment到Pod的关系名,不填则不生成关系。 |
| ReplicaSet2Pod | string, 无默认值(可选) | ReplicaSet到Pod的关系名,不填则不生成关系。 |
| Deployment2ReplicaSet | string, 无默认值(可选) | Deployment到ReplicaSet的关系名,不填则不生成关系。 |
| StatefulSet2Pod | string, 无默认值(可选) | StatefulSet到Pod的关系名,不填则不生成关系。 |
| DaemonSet2Pod | string, 无默认值(可选) | DaemonSet到Pod的关系名,不填则不生成关系。 |
| Service2Pod | string, 无默认值(可选) | Service到Pod的关系名,不填则不生成关系。 |
| Pod2Container | string, 无默认值(可选) | Pod到Container的关系名,不填则不生成关系。 |
| CronJob2Job | string, 无默认值(可选) | CronJob到Job的关系名,不填则不生成关系。 |
| Job2Pod | string, 无默认值(可选) | Job到Pod的关系名,不填则不生成关系。 |
| Ingress2Service | string, 无默认值(可选) | Ingress到Service的关系名,不填则不生成关系。 |
| Pod2PersistentVolumeClaim | string, 无默认值(可选) | Pod到PersistentVolumeClaim的关系名,不填则不生成关系。 |
| Pod2Configmap | string, 无默认值(可选) | Pod到Configmap的关系名,不填则不生成关系。 |
| Namespace2Pod | string, 无默认值(可选) | Namespace到Pod的关系名,不填则不生成关系。 |
| Namespace2Service | string, 无默认值(可选) | Namespace到Service的关系名,不填则不生成关系。 |
| Namespace2Deployment | string, 无默认值(可选) | Namespace到Deployment的关系名,不填则不生成关系。 |
| Namespace2DaemonSet | string, 无默认值(可选) | Namespace到DaemonSet的关系名,不填则不生成关系。 |
| Namespace2StatefulSet | string, 无默认值(可选) | Namespace到StatefulSet的关系名,不填则不生成关系。 |
| Namespace2Configmap | string, 无默认值(可选) | Namespace到Configmap的关系名,不填则不生成关系。 |
| Namespace2Job | string, 无默认值(可选) | Namespace到Job的关系名,不填则不生成关系。 |
| Namespace2CronJob | string, 无默认值(可选) | Namespace到CronJob的关系名,不填则不生成关系。 |
| Namespace2PersistentVolumeClaim | string, 无默认值(可选) | Namespace到PersistentVolumeClaim的关系名,不填则不生成关系。 |
| Namespace2Ingress | string, 无默认值(可选) | Namespace到Ingress的关系名,不填则不生成关系。 |
| Cluster2Namespace | string, 无默认值(可选) | Cluster到Namespace的关系名,不填则不生成关系。 |
| Cluster2Node | string, 无默认值(可选) | Cluster到Node的关系名,不填则不生成关系。 |
| Cluster2PersistentVolume | string, 无默认值(可选) | Cluster到PersistentVolume的关系名,不填则不生成关系。 |
| Cluster2StorageClass | string, 无默认值(可选) | Cluster到StorageClass的关系名,不填则不生成关系。 |
环境变量
如需使用HTTP查询接口,需要配置环境变量KUBERNETES_METADATA_PORT,指定HTTP查询接口的端口号。
样例
- 采集配置
enable: true
inputs:
- Type: service_kubernetes_meta
Pod: true
EnableLabels: true
EnableAnnotations: true
- 输出
{
"__method__":"update",
"__first_observed_time__":"1723276582",
"__last_observed_time__":"1723276582",
"__keep_alive_seconds__":"3600",
"__category__":"entity",
"__domain__":"k8s","__entity_id__":"38a8cc4e856ec7d5b2675868411f696f053dccebc06b8819b02442ee5a07091c",
"namespace":"kube-system",
"name":"kube-flannel-ds-zh5fx",
"__entity_type__":"k8s.pod",
"labels":"{\"app\":\"flannel\",\"tier\":\"node\"}",
"annotations":"{\"description\":\"Flannel network plugin\"}",
"__pack_meta__":"1|MTcyMjQ4NDQ3MzA5MTA3Njc1OQ==|47|21",
"__time__":"1723276913"
}