开箱即用:多集群下K8s日志集中审计升级

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 本文主要介绍用户在多个地域下拥有多个ack集群如何开箱即用地对k8s日志进行集中审计、中心化查询。

背景

通过日志服务采集Kubernetes容器日志已经被许多用户广泛应用,用户可在创建集群时启用日志服务,快速采集Kubernetes集群的容器日志,包括容器的标准输出以及容器内的文本文件等。

限制

但是对于一个用户在多个地域下拥有多个ack集群的场景,如果用户希望将每个地域下多个ACK集群的k8s日志进行集中审计、中心化查询,就需要用户进行一定的额外操作。

原始模式

例如用户可以通过手动创建数据加工作业的方式,将每个logstore下的日志的投递到相同的目标库中,但是这种操作方式具有以下限制:

限制1:  操作繁琐,对于每个地域的每个ACK集群下每一种日志类型,例如事件日志、审计日志、Ingress日志都需要专门的建立对应作业;

限制2:  无法实现自动化更新,当有新的ACK集群创建还需要重复以上操作,无法做到实时、自动化

日志审计(升级前)

针对以上问题,日志审计很早就推出了K8s日志集中审计的功能,即日志审计会自动地对符合自动化条件的K8s事件日志、审计日志和Ingress日志进行集中审计、中心化查询。

但是,使用日志审计(升级前)(即使中心账号已经升级服务关联角色AliyunServiceRoleForSLSAudit)进行K8s日志集中审计仍需要比较复杂的单独鉴权操作,需要经过以下三步操作,日志审计下k8s日志集中审计、中心化查询才能正确使用。

操作1:  用户首先需要对中心账号创建一个sls-audit-service-monitor的角色;

操作2:  并且对sls-audit-service-monitor角色授权AliyunLogAuditServiceMonitorAccess策略外

操作3:  此外,用户还需要对该角色额外授权对ACK下k8s project的操作权限(参考如下)

{

   "Version": "1",

   "Statement": [

       {

           "Action": "log:*",

           "Resource": [

               "acs:log:*:*:project/k8s-log-*"

           ],

           "Effect": "Allow"

       }

   ]

}

日志审计(升级前)虽然解决了限制1限制2的问题,但是由于其单独自定义鉴权操作的复杂性,也给用户带来了一些不便,用户无法做到真正的开箱即用,集中审计,中心化查询,且自定义角色容易被用户误删、篡改,将会影响用户的使用体验。

真正开箱即用

日志审计升级后

随着日志审计中心账号鉴权从用户需要自定义角色sls-audit-service-monitor到用户一键式授权服务关联角色AliyunServiceRoleForSLSAudit的升级,日志审计下K8s日志采集单独鉴权升级也提上日程。

日志审计通过和SLS数据加工 深度合作后,现已支持通过服务关联角色AliyunServiceRoleForSLSAudit 进行自动化创建数据加工作业,自动运行数据加工Job,基于该角色进行日志消费和写入,从而做到了真正的开箱即用式多集群下k8s日志集中审计、中心化查询和存储,此时用户仅需中心账号首次点击授权授权服务关联角色AliyunServiceRoleForSLSAudit即可使用

K8s日志集中审计

原始模式

日志审计开启K8s(升级前)

日志审计开启K8s(升级后)

手动创建相关作业

必须

无需

无需

实时自动化更新

不能

可以

可以

复杂自定义鉴权

无需

必须

无需

示例

通过在日志审计开启多ACK集群下k8s日志集中审计操作示例如下,具体事项可以参见云产品资源覆盖

多集群k8s日志集中化审计示例


多地域下k8s日志中心化查询示例

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5天前
|
Kubernetes 应用服务中间件 Docker
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
|
5天前
|
存储 数据采集 Kubernetes
一文详解K8s环境下Job类日志采集方案
本文介绍了K8s中Job和Cronjob控制器用于非常驻容器编排的场景,以及Job容器的特点:增删频率高、生命周期短和突发并发大。文章重点讨论了Job日志采集的关键考虑点,包括容器发现速度、开始采集延时和弹性支持,并对比了5种采集方案:DaemonSet采集、Sidecar采集、ECI采集、同容器采集和独立存储采集。对于短生命周期Job,建议使用Sidecar或ECI采集,通过调整参数确保数据完整性。对于突发大量Job,需要关注服务端资源限制和采集容器的资源调整。文章总结了不同场景下的推荐采集方案,并指出iLogtail和SLS未来可能的优化方向。
|
3天前
|
资源调度 Kubernetes 监控
Kubernetes 集群性能优化实践
【5月更文挑战第17天】在容器化和微服务架构日益普及的当下,Kubernetes 已成为众多企业的首选容器编排工具。然而,随着集群规模的增长和业务复杂度的提升,性能优化成为确保系统稳定性与高效运行的关键。本文将深入探讨 Kubernetes 集群性能优化的策略与实践,覆盖从节点资源配置到网络通信优化,再到高效的资源调度机制,旨在为运维人员提供系统的优化路径和具体的操作建议。
|
3天前
|
存储 Java Serverless
ACK One Argo 工作流集群:玩转容器对象存储
ACK One Argo 工作流集群:玩转容器对象存储
ACK One Argo 工作流集群:玩转容器对象存储
|
4天前
|
Kubernetes Ubuntu Docker
初始化k8s多结点集群
在Ubuntu22.04.3 LTS上设置k8s多节点集群,采用Docker v24.0.6、kubeadm v1.28和cir-dockerd v0.3.4。首先安装docker和cri-dockerd,更新k8s三件套至v1.28。然后,参照官方文档进行`kubeadm init`初始化集群,配置包括自定义镜像仓库、控制面端点等。成功初始化后,显示了相关证书和配置信息。最后,提供了一些额外的kubectl命令以管理节点。
14 1
|
5天前
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化策略
【5月更文挑战第14天】 在动态且不断扩展的云计算环境中,保持 Kubernetes 集群的高性能运行是一个挑战。本文将探讨一系列实用的性能优化措施,旨在帮助运维专家确保其容器化应用能在资源受限的情况下仍保持高效与稳定。通过分析 Kubernetes 的资源调度机制、存储和网络配置,我们提出了一套综合的性能调优框架,并结合实际案例,展示如何实施这些策略以提升集群的整体性能。
|
5天前
|
运维 Prometheus 监控
Kubernetes 集群监控与性能优化实践
【5月更文挑战第14天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的增加,监控系统的性能及稳定性变得至关重要。本文将深入探讨 Kubernetes 集群监控的重要性,介绍常用监控工具,并分享一系列针对集群性能优化的实践策略,帮助运维工程师确保服务的高可用性和优越性能。
|
5天前
|
Kubernetes 安全 API
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
|
5天前
|
存储 运维 Kubernetes
Kubernetes学习-集群搭建篇(一) 搭建Master结点
Kubernetes学习-集群搭建篇(一) 搭建Master结点
|
5天前
|
Kubernetes API 调度
Kubernetes学习-核心概念篇(二) 集群架构与组件
Kubernetes学习-核心概念篇(二) 集群架构与组件

相关产品

  • 日志服务
  • http://www.vxiaotou.com