一、cgroup目录结构深度解析

1.1 默认挂载点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# cgroup v1的典型目录结构(子系统独立)
/sys/fs/cgroup/
├── cpu,cpuacct
├── memory
├── devices
├── blkio
├── net_cls
└── ...

# cgroup v2的统一层级结构(现代系统)
/sys/fs/cgroup/
├── system.slice
├── user.slice
├── unified/ # 所有控制器统一挂载
├── cgroup.controllers
├── cgroup.subtree_control
└── ...
阅读全文 »

前言:为什么需要cgroup?

在现代计算环境中,资源隔离和限制是确保系统稳定性的关键。当我们在服务器上运行多个应用程序时,如何避免某个进程耗尽所有内存?如何确保关键服务始终获得足够的CPU资源?这正是Linux内核中 cgroup(Control Groups)要解决的核心问题。

一、cgroup基础概念

1.1 什么是cgroup?

cgroup是Linux内核提供的机制,用于:

  • 限制资源使用(CPU/Memory/IO等)
  • 优先级控制
  • 资源统计
  • 进程组控制
阅读全文 »

一、为什么需要gRPC?

1.1 传统REST API的痛点

  • 序列化效率低(JSON/XML体积大)
  • 缺乏强类型约束
  • 难以实现双向流式通信
  • 接口描述与实现分离(Swagger需要额外维护)

1.2 gRPC的核心优势

特性 说明
基于HTTP/2 多路复用、头部压缩、服务器推送
Protocol Buffers 高性能二进制序列化(比JSON小3-10倍)
跨语言支持 自动生成客户端/服务端代码(支持11+语言)
四种通信模式 支持一元RPC、服务端流、客户端流、双向流
阅读全文 »

文章前言

本篇文章继上一篇"K8s集群安全攻防(一)",主要补充K8s的逃逸、横向移动、权限维持、扩展技巧等内容

逃逸相关

配置不当

Privileged特权模式逃逸

前置知识

Security Context(安全上下文),用于定义Pod或Container的权限和访问控制,Kubernetes提供了三种配置Security Context的方法:

  • Pod Security Policy:应用于集群级别
  • Pod-level Security Context:应用于Pod级别
  • Container-level Security Context:应用于容器级别

容器级别:仅应用到指定的容器上,并且不会影响Volume

阅读全文 »

文章前言

本篇文章将从K8s的基本概念、主要组件、架构和安全评估测试方法等维度对K8s的安全进行系统性介绍

基础知识

容器概念

Container(容器)是一种便携式、轻量级的操作系统级虚拟化技术,它使用namespace隔离不同的软件运行环境,并通过镜像自包含软件的运行环境,从而使得容器可以很方便的在任何地方运行,由于容器体积小且启动快,因此可以在每个容器镜像中打包一个应用程序,这种一对一的应用镜像关系拥有很多好处,使用容器不需要与外部的基础架构环境绑定,因为每一个应用程序都不需要外部依赖,更不需要与外部的基础架构环境依赖,完美解决了从开发到生产环境的一致性问题

阅读全文 »

引言:为什么需要标准化接口?

在 Kubernetes 的设计哲学中,"可插拔架构"是核心原则。CRI(容器运行时接口)、CNI(容器网络接口)、CSI(容器存储接口)三大标准接口实现了 控制平面与基础设施的解耦,使得:

  • 容器运行时可以自由选择(Docker/containerd/CRI-O)
  • 网络方案能够按需切换(Calico/Flannel/Cilium)
  • 存储系统得以灵活扩展(AWS EBS/NFS/分布式存储)

本篇学习k8s核心接口的 工作机制核心组件真实生产场景应用

阅读全文 »

前言

Docker核心组件

  • Docker Daemon:管理镜像、容器、网络的核心服务
  • Containerd:容器生命周期管理(CRI标准实现)
  • Runc:底层容器运行时(OCI规范实现)
    以下学习docker进阶的网络、镜像构建与工程化。

一、容器网络架构深度解析

1.1 Docker网络驱动全景剖析

1.1.1 网络驱动核心类型

驱动类型 通信机制 适用场景
bridge 通过docker0网桥NAT转发,创建veth pair连接容器 单机多容器隔离环境
host 直接共享主机网络栈 高性能需求/端口冲突规避
macvlan 为容器分配独立MAC地址,直接接入物理网络 需要直连物理网络的容器
ipvlan 共享物理接口,不同容器使用相同MAC不同IP 高密度容器部署
overlay 基于VXLAN实现跨主机容器网络,支持加密通信 Docker Swarm多节点集群
阅读全文 »

攻击者模型

从渗透测试工程师的角度分析Docker系统可能面临的安全问题,引入两个攻击者模型:「容器逃逸」和「针对Docker守护进程的攻击」,分别对应位于容器内部的攻击者和位于运行了Docker守护进程的宿主机上的攻击者。

阅读全文 »