系统插件(Addon)使用Kubernetes资源(DaemonSet、Deployment等)实现集群的存储、网络等功能,这些资源部署于kube-system命名空间之下。本文介绍如何配置收集存储、网络、弹性伸缩等主要系统插件的日志功能。
前提条件
已安装日志组件logtail-ds。
在创建集群时,ACK默认选中日志组件logtail-ds。如果您未安装日志组件logtail-ds,关于如何手动安装的操作,请参见通过日志服务采集Kubernetes容器日志。
确保日志应用alibaba-log-controller版本不低于0.2.0.0-76648ee-aliyun。
如果alibaba-log-controller版本低,可直接升级logtail-ds组件。关于如何升级组件,请参见管理组件。
步骤一:创建系统插件的日志配置文件
日志采集配置针对ACK进行了自定义资源CRD扩展,您可以直接部署AliyunLogConfig的CRD配置,Log Controller会自动创建日志服务相关采集配置和报表资源。关于如何创建自定义资源,请参见管理自定义资源。
根据以下示例创建存储、Terway网络、Flannel网络及弹性伸缩的AliyunLogConfig配置文件。
存储CSI插件的日志配置示例:
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: #您的配置名称在K8s集群中必须是唯一的。 name: k8s-csi-log namespace: kube-system spec: #用于上传日志的logstore名称。 logstore: k8s-csi-log #logtail配置详细信息。 logtailConfig: #Docker标准输出的输入类型为“plugin”。 inputType: plugin #logtail配置名称,应与[metadata.name]相同。 configName: k8s-csi-log inputDetail: plugin: inputs: - #输入类型。 type: service_docker_stdout detail: #收集stdout和stderr。 Stdout: true Stderr: true K8sNamespaceRegex: "^kube-system$" K8sPodRegex: "^csi.*$"
Terway网络插件的日志配置示例:
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: #您的配置名称在K8s集群中必须是唯一的。 name: k8s-terway-log namespace: kube-system spec: #用于上传日志的logstore名称。 logstore: k8s-terway-log #logtail配置详细信息。 logtailConfig: #Docker标准输出的输入类型为“plugin”。 inputType: plugin #logtail配置名称,应与[metadata.name]相同。 configName: k8s-terway-log inputDetail: plugin: inputs: - #输入类型。 type: service_docker_stdout detail: #收集stdout和stderr。 Stdout: true Stderr: true K8sNamespaceRegex: "^kube-system$" K8sPodRegex: "^terway-eniip.*$"
Flannel网络插件的日志配置示例:
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: #您的配置名称在K8s集群中必须是唯一的。 name: k8s-flannel-log namespace: kube-system spec: #用于上传日志的logstore名称。 logstore: k8s-flannel-log #logtail配置详细信息。 logtailConfig: #Docker标准输出的输入类型为“plugin”。 inputType: plugin #logtail配置名称,应与[metadata.name]相同。 configName: k8s-flannel-log inputDetail: plugin: inputs: - #输入类型。 type: service_docker_stdout detail: #收集stdout和stderr。 Stdout: true Stderr: true K8sNamespaceRegex: "^kube-system$" K8sPodRegex: "^kube-flannel-ds.*$"
弹性伸缩插件的日志配置示例:
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: #您的配置名称在K8s集群中必须是唯一的。 name: k8s-cluster-autoscaler-log namespace: kube-system spec: #用于上传日志的logstore名称。 logstore: k8s-cluster-autoscaler-log #logtail配置详细信息。 logtailConfig: #Docker标准输出的输入类型为“plugin”。 inputType: plugin #logtail配置名称,应与[metadata.name]相同。 configName: k8s-cluster-autoscaler-log inputDetail: plugin: inputs: - #输入类型。 type: service_docker_stdout detail: #收集stdout和stderr。 Stdout: true Stderr: true K8sNamespaceRegex: "^kube-system$" K8sPodRegex: "^cluster-autoscaler.*$"
步骤二:查看日志
关于如何查看日志,请参见步骤四:查看日志。