简介
组件介绍
tke-log-agent 是 Kubernetes 集群日志采集组件,用户可非侵入式采集容器标准输出日志、容器内日志以及节点日志。
部署在集群内的资源对象
Kubernetes 对象名称 | 类型 | 资源量 | Namespace |
tke-log-agent | Daemonset | 0.21C126M | kube-system |
cls-provisioner | Deployment | 0.1C64M | kube-system |
logconfigs.cls.cloud.tencent.com | CustomResourceDefinition | - | - |
cls-provisioner | ClusterRole | - | - |
cls-provisioner | ClusterRoleBinding | - | - |
cls-provisioner | ServiceAccount | - | kube-system |
tke-log-agent | ClusterRole | - | - |
tke-log-agent | ClusterRoleBinding | - | - |
tke-log-agent | ServiceAccount | - | kube-system |
使用场景
独立集群开启审计日志采集时,默认安装 tke-log-agent 并采集 apiserver 审计日志。
通过采集规则采集容器标准输出日志、容器内日志、节点日志。
组件原理
1. cls-provisioner 监听到用户创建了采集规则后,根据采集规则的配置信息,生成 CLS 侧采集配置同步到 CLS 侧服务端。
2. tke-log-agent 根据采集规则,映射日志目录到统一目录下。
3. loglistener 同步 CLS 服务端采集配置,并根据采集配置采集日志上报到 CLS 侧,详情请参见 LogListener。
组件权限说明
说明:
权限场景章节中仅列举了组件核心功能涉及到的相关权限,完整权限列表请参考权限定义章节。
log-agent 权限
权限说明
该组件权限是当前功能实现的最小权限依赖。
只有开启了日志采集的标准集群会部署该组件,其他类型集群不会部署。
需要在主机目录下读写 metadata 文件,所以需要开启特权级容器。
权限场景
功能 | 涉及对象 | 涉及操作权限 |
监听日志采集规则的变动 | logconfig/logconfigpro | watch/patch/get |
获取节点的 runtime 类型 | node | list/watch/get |
采集标准输出日志/容器内日志时需要采集特定 namespace 下的 pod 日志 | namespace/pod | list/watch/get |
采集容器内日志采集时需要获取容器日志的实际存储路径 | PV/PVC | list/watch/get |
| SC | get |
采集 workload 相关日志 | 工作负载 | list/watch/get |
权限定义
apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:name: tke-log-agentrules:- apiGroups: ["cls.cloud.tencent.com"]resources: ["logconfigs","logconfigpros"]verbs: ["list", "watch", "patch","get"]- apiGroups: [""]resources: ["pods", "namespaces", "nodes", "persistentvolumeclaims","configmaps","persistentvolumes"]verbs: ["list", "watch", "get"]- apiGroups: ["apps"]resources: ["daemonsets","replicasets","deployments","statefulsets"]verbs: ["list", "watch", "get"]- apiGroups: ["batch"]resources: ["jobs","cronjobs"]verbs: ["list", "watch", "get"]- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get"]
cls-provisioner 权限
权限说明
该组件权限是当前功能实现的最小权限依赖。
权限场景
功能 | 涉及对象 | 涉及操作权限 |
把 log config 的规则内容同步到 CLS 侧 | logconfig | list/watch/patch/update |
权限定义
apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:name: cls-provisionerrules:- apiGroups:- cls.cloud.tencent.comresources:- logconfigsverbs:- list- watch- patch- update- apiGroups:- '*'resources:- events- configmapsverbs:- create- patch- update
相关链接
开启日志采集