Kubernetes1.7 新特性:日志审计变化

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
日志服务 SLS,月写入数据量 50GB 1个月
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 背景概念 出于安全方面的考虑,Kubernetes提供了日志审计记录,用来记录不同普通用户、管理员和系统中各个组件的日志信息。 Kubernetes日志审计是Kube-apiserver组件的一部分功能,通过日志审计来记录apiserver上面所有请求处理过程。

背景概念


出于安全方面的考虑,Kubernetes提供了日志审计记录,用来记录不同普通用户、管理员和系统中各个组件的日志信息。

Kubernetes日志审计是Kube-apiserver组件的一部分功能,通过日志审计来记录apiserver上面所有请求处理过程。每条审计日志记录包括两行:

1、 请求行:唯一ID、源IP、请求用户、请求资源信息、模拟信息等。

2、 响应行:唯一ID、相应信息代码。

通过唯一ID就可以识别出对应的请求行和响应行。

下面的例子就是admin用户查询default命名空间中pod信息的两行审计日志信息。

  1. 2017-03-21T03:57:09.106841886-04:00 AUDIT:id=”c939d2a7-1c37-4ef1-b2f7-4ba9b1e43b53″ ip=”127.0.0.1″method=”GET” user=”admin”groups=”\”system:masters\”,\”system:authenticated\””as=”<self>” asgroups=”<lookup>”namespace=”default” uri=”/api/v1/namespaces/default/pods”
  2. 2017-03-21T03:57:09.108403639-04:00 AUDIT:id=”c939d2a7-1c37-4ef1-b2f7-4ba9b1e43b53″ response=”200″

1.7 新特性

我们先来看看1.7版本中日志审计相关的几个核心结构体:

Kubernetes 1.7中,新增加了两个结构体,分别是AuditOptions和AuditWebhookOptions。在AuditOptions结构体中通过LogOptions参数来对应之前版本的AuditLogOptions结构体。

一、AuditLogOptions结构体介绍

1、 Path参数:如果设置了这个参数,那么所有访问apiserver的请求都会被记录到这个参数指向的文件,也可以设置成“-”,这样表示请求输出到标准输出中。

2、 MaxAge参数:保存日志审计记录的最大天数,超出保存最大天数的日志审计记录都会被删除掉。

3、 MaxBackups参数:保存日志审计记录文件的最大个数,超出保存最大个数的日志审计记录都会被删除掉。

4、 MaxSize参数:一个日志审计记录文件的最大空间,单位是M。

二、AuditWebhookOptions结构体介绍

1、 ConfigFile参数:将Kubernetes日志审计结果向外部输出的配置文件。

2、 Mode参数:将Kubernetes日志审计结果向外部输出模式。在1.7版本中有两种输出模式,batch模式,表示缓存日志审计记录,然后批量发送给外部接收端;blocking模式,表示每条发送给外部接收端,发送的时候apiserver处在阻塞状态。

三、AuditOptions结构体介绍

1、 PolicyFile参数:日志审计策略配置文件,通过这个文件可以配置哪些信息会生成日志审计记录。

2、 LogOptions参数:表示AuditLogOptions结构体。

3、 WebhookOptions参数:表示AuditWebhookOptions结构体。

在kubernetes1.7中如果想启用日志审计新的功能,那么需要在启动kube-apiserver组件时,增加一个新的参数: –feature-gates=AdvancedAuditing=true。

一旦启用了AdvancedAuditing参数,那么kubernetes在日志审计中就可以配置审计策略和审计处理方式。日志审计策略配置文件中可以配置不同审计级别策略,包括:

1、 None:与此规则匹配的日志审计事件不用被记录。

2、 Metadata:记录请求的元数据信息,包括用户、时间戳、请求类型等信息。

3、 Request:记录请求的元数据和请求内容信息。

4、 RequestResponse:记录请求的元数据、请求内容信息、响应内容信息。

另外一旦启用了这个参数,日志审计也不会按照之前每条审计日志记录两行信息了。日志审计记录在不同的阶段会记录不同的信息,其中包括:

1、 RequestReceived阶段:在这个阶段,审计处理程序收到请求后立即生成日志审计事件。

2、 ResponseStarted阶段:在这个阶段,响应标头被发送出去了,但是响应内容还没有被发送,此日志审计记录在长时间运行的响应时会生成。

3、 ResponseComplete阶段:在这个阶段,一旦响应内容被发送出去了,那么就会生成日志审计记录。

4、 Panic阶段:当有错误发生时,会生成日志审计记录。

新特性例子

1、 下面的例子是日志审计策略配置文件的配置信息,表示按照Metadata级别记录所有请求信息:

rules: - level: Metadata

2、 下面的例子是日志审计策略配置文件的配置信息,表示不对用户system:kube-proxy在endpoints和services两种类型资源上的信息进行审计。

rules: - level: None 

 users:["system:kube-proxy"] 

 verbs: ["watch"] 

 resources: - group: "" #core API group 

 resources:["endpoints", "services"]

3、 下面的例子是日志审计策略配置文件的配置信息,表示审计表空间kube-system中configmaps资源类型的请求。

rules: # Log the request body ofconfigmap changes in kube-system.  - level: Request 

 resources: - group: "" #core API group 

 resources:["configmaps"] # This rule only appliesto resources in the "kube-system" namespace.  # The empty string"" can be used to select non-namespaced resources. 

 namespaces:["kube-system"]

4、 下面的例子是设置审计处理方式

--audit-webhook-config-file=/etc/kubernetes/audit-webhook-kubeconfig 

--audit-webhook-mode=batch

使用batch模式,向/etc/kubernetes/audit-webhook-kubeconfig文件中配置的服务端发送日志审计信息。

本文转自中文社区-Kubernetes1.7 新特性:日志审计变化

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
存储 数据采集 Kubernetes
一文详解K8s环境下Job类日志采集方案
本文介绍了K8s中Job和Cronjob控制器用于非常驻容器编排的场景,以及Job容器的特点:增删频率高、生命周期短和突发并发大。文章重点讨论了Job日志采集的关键考虑点,包括容器发现速度、开始采集延时和弹性支持,并对比了5种采集方案:DaemonSet采集、Sidecar采集、ECI采集、同容器采集和独立存储采集。对于短生命周期Job,建议使用Sidecar或ECI采集,通过调整参数确保数据完整性。对于突发大量Job,需要关注服务端资源限制和采集容器的资源调整。文章总结了不同场景下的推荐采集方案,并指出iLogtail和SLS未来可能的优化方向。
|
2月前
|
存储 运维 监控
Kubernetes 集群监控与日志管理实践
【5月更文挑战第28天】在微服务架构日益普及的当下,容器编排工具如 Kubernetes 已成为运维工作的核心。有效的集群监控和日志管理是确保系统稳定性和服务可靠性的关键。本文将深入探讨 Kubernetes 集群的监控策略,以及如何利用现有的工具进行日志收集、存储和分析,以实现对集群健康状况的实时掌握和问题快速定位。
|
2月前
|
存储 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【5月更文挑战第27天】 在微服务架构日益普及的当下,容器化技术与编排工具如Kubernetes已成为现代云原生应用的基石。然而,随着集群规模的不断扩大和复杂性的增加,如何有效监控和管理这些动态变化的服务成为了维护系统稳定性的关键。本文将深入探讨Kubernetes环境下的监控策略和日志管理的最佳实践,旨在为运维人员提供一套系统的解决思路,确保应用性能的最优化和问题的快速定位。
|
2月前
|
运维 Prometheus 监控
Kubernetes 集群监控与日志管理实践
【5月更文挑战第29天】 在微服务架构日益盛行的今天,容器化技术已成为现代应用部署的标准。其中,Kubernetes 作为容器编排的事实标准,其集群的稳定性和性能监控变得至关重要。本文将深入探讨 Kubernetes 集群的监控策略和日志管理的最佳实践,旨在为运维工程师提供一套高效、可靠的集群监控解决方案。通过引入 Prometheus 和 Grafana 工具进行数据收集与可视化,以及 Fluentd 和 Elasticsearch 配合 Kibana 实现日志聚合与分析,本文将带领读者构建起一个全面的 Kubernetes 监控系统,确保系统的高可用性和故障快速响应。
|
2月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【5月更文挑战第25天】在现代微服务架构中,容器编排工具如Kubernetes已成为部署、管理和扩展应用程序的关键。随着其广泛应用,对集群的监控和日志管理的需求也日益增长。本文将探讨如何利用Prometheus和Fluentd等开源工具实现对Kubernetes集群的有效监控和日志收集,旨在为运维工程师提供一套可行的解决方案,以保障集群的稳定性和提高故障排查效率。
|
2月前
|
存储 Kubernetes 监控
容器服务 Kubernetes 版 ACK功能特性
分布式云容器平台ACK One(Distributed Cloud Container Platform for Kubernetes)是阿里云面向混合云、多集群、分布式计算、容灾等场景推出的企业级云原生平台。ACK One可以连接并管理您任何地域、任何基础设施上的Kubernetes集群,并提供一致的管理和社区兼容的API,支持对计算、网络、存储、安全、监控、日志、作业、应用、流量等进行统一运维
54 1
|
2月前
|
运维 监控 Kubernetes
Kubernetes 集群的监控与日志管理最佳实践
【5月更文挑战第19天】 在现代微服务架构中,容器编排平台如Kubernetes已成为部署、管理和扩展应用程序的关键工具。随着其应用范围不断扩大,集群的稳定性和性能监控变得至关重要。本文将探讨针对Kubernetes集群的监控策略,并深入分析日志管理的实现方法。通过介绍先进的技术堆栈和实用工具,旨在为运维专家提供一套完整的解决方案,以确保集群运行的透明度和可靠性。
53 3
|
2月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践深入理解PHP的命名空间与自动加载机制
【5月更文挑战第30天】 在容器化和微服务架构日益普及的背景下,Kubernetes 已成为众多企业的首选容器编排工具。然而,随之而来的挑战是集群的监控与日志管理。本文将深入探讨 Kubernetes 集群监控的最佳实践,包括节点资源使用情况、Pods 健康状态以及网络流量分析等关键指标的监控方法。同时,我们也将讨论日志聚合、存储和查询策略,以确保快速定位问题并优化系统性能。文中将介绍常用的开源工具如 Prometheus 和 Fluentd,并分享如何结合这些工具构建高效、可靠的监控和日志管理系统。
|
2月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理策略
【4月更文挑战第30天】 在微服务架构日益普及的当下,容器化技术与编排工具如Kubernetes成为了运维领域的重要话题。有效的监控和日志管理对于保障系统的高可用性和故障快速定位至关重要。本文将探讨在Kubernetes环境中实施监控和日志管理的最佳实践,包括选用合适的工具、部署策略以及如何整合这些工具来提供端到端的可见性。我们将重点讨论Prometheus监控解决方案和EFK(Elasticsearch, Fluentd, Kibana)日志管理堆栈,分析其在Kubernetes集群中的应用,并给出优化建议。
|
2月前
|
Prometheus 运维 Kubernetes
Kubernetes 集群的监控与日志管理最佳实践
【5月更文挑战第23天】 在容器化和微服务架构日益普及的当下,Kubernetes 已成为众多企业的首选平台。随之而来的是对集群性能、资源利用和运行状况的持续监控需求,以及日志管理的重要性。本文将探讨在 Kubernetes 环境中实现有效监控和日志管理的策略,涵盖关键组件的选择、配置优化及故障排查流程,旨在为运维工程师提供一套综合解决方案,确保集群的稳定性和高可用性。