首页 > 其他分享 >快速探索 Tetragon:基于 eBPF 的安全可观察性和执行工具

快速探索 Tetragon:基于 eBPF 的安全可观察性和执行工具

时间:2023-12-15 09:14:42浏览次数:37  
标签:bin 探索 eBPF -- xwing io tetragon Tetragon

Tetragon 是一种灵活的安全可观察性和运行时策略执行工具,可直接使用 eBPF 应用策略和过滤,从而减少了监控、进程跟踪以及实时执行策略的开销。

Tetragon 提供了如下功能:

  • 监控进程执行
  • 监控文件操作
  • 监控网络活动
  • 执行策略

最后一个侧重策略的执行,可以通过发送信号或覆盖系统调用的返回值对重要的安全事件做出反应;前三种侧重监控,并可以将监控数据与容器、Kubernetes 元数据进行关联。

演示

环境

  • 操作系统:Ubuntu 20.04
  • 内核:5.15.122
  • K8s 集群:k3s v1.27.1+k3s1

创建集群

export INSTALL_K3S_VERSION=v1.27.1+k3s1
curl -sfL https://get.k3s.io | sh -s - --disable traefik --disable local-storage --disable metrics-server --disable servicelb --write-kubeconfig-mode 644 --write-kubeconfig ~/.kube/config

部署示例应用

示例应用使用我们在 使用 Cilium 增强 Kubernetes 网络安全 中有用过的”星球大战“的场景。

kubectl create -f https://raw.githubusercontent.com/cilium/cilium/v1.15.0-pre.1/examples/minikube/http-sw-app.yaml

安装 Tetragon

使用 helm 来安装 Tetragon。

helm repo add cilium https://helm.cilium.io
helm repo update
helm install tetragon cilium/tetragon -n kube-system

查看 Tetragon 的组件。

kubectl get pod -n kube-system -l app.kubernetes.io/instance=tetragon
NAME                                READY   STATUS    RESTARTS   AGE
tetragon-operator-f68fdfcf6-jltn2   1/1     Running   0          6m23s
tetragon-mh8fp                      2/2     Running   0          6m23s

其中 tetragon 是 Daemonset 类型,在每个节点上都会运行其示例。在后面的演示中,我们将使用其获取事件信息。

该命令会使用 pod 中的 tetra CLI 链接 Tetragon 的 daemon server 打印和过滤事件。

-o 支持 jsoncompact:前者打印详细信息,后者打印紧凑的信息
--pods 打印指定 pods 的事件,这里支持正则

kubectl exec -ti -n kube-system ds/tetragon -c tetragon -- tetra getevents -o compact --pods xwing

监控进程执行

我们在 xwing 的 pod 中尝试 curl 发送请求。

kubectl exec -ti xwing -- bash -c 'curl -I https://ebpf.io/applications/#tetragon'

在 CLI 事件监控中可以看到监控到进行的执行。

标签:bin,探索,eBPF,--,xwing,io,tetragon,Tetragon
From: https://www.cnblogs.com/addozhang/p/17902624.html

相关文章

  • 阅读笔记《探索需求》
    这是本学期最后一本书了,《探索需求》。第一章讲的是方法论是不够的,主要围绕了三个问题:第一是为什么,因为我们使用的通常都是需求映射图,而不是需求本身,这就是需求要“探索”的原因。人们探索制作映射图,最终得到一张足够接近于实际形态的映射图,并为了一个“现实的”目的把它表达出来......
  • 探索服务网格与 OpenTelemetry 的协同之分布式跟踪
    在上一篇文章中,介绍了如何在k8s中无侵入安装Otel探针并实现了无侵入(某些语言还无法实现,比如Go的eBPF对内核的苛刻要求)的分布式跟踪。这篇文章发出后有读者评论javaagent的“无侵入”一说,这里有必要解释下。“无侵入”主要指的是不需要修改应用程序的业务逻辑代码就......
  • OJAC高级会员权益:让AI助力您探索更多职业可能性
    在科技日新月异的今天,人工智能已经存在于我们生活的各个角落。除了“AIGC星辰大海:大模型工程师与产品专家深度训练营”课程外,加入OJAC高级会员权益,“AI大模型探索者计划+星辉职路塑造家”服务将帮助你在职场中发现更多可能。成为OJAC高级会员,您将得到我们专属的就业导师服务。我们......
  • 探索 Vim:一个强大的文本编辑器
    引言:Vim(ViIMproved)是一款备受推崇的文本编辑器,拥有强大的功能和高度可定制性,提供丰富的编辑和编程体验。本文将探讨Vim的基本概念、使用技巧以及为用户带来的独特优势。简介和发展1.Vim的简介和历史Vim(ViImproved)是一个备受欢迎的文本编辑器,它是Vi编辑器的改进版本,具......
  • 探索AI在CRM中的潜力:智能化客户关系的构建
    AI人工智能在CRM系统中的应用有:赋能内容生产、客户服务支持、赋能品牌推广、自动化业务流程、数据分析、辅助科学决策、给出最佳客户联系时间。合理运用CRM系统中AI人工智能助手可以让团队工作事半功倍。1.内容生产市场营销活动离不开内容生产,持续的产出高质量的内容又给营销团......
  • 分布式学习记录:探索与优化
    经过前面的学习,我对分布式学习有了基本的认识和理解。然而,分布式学习是一个充满挑战和机遇的领域,需要不断探索和优化。今天,我继续深入学习分布式学习,进一步了解其应用和优化方法。首先,我学习了分布式学习的调参技巧。在分布式学习中,参数的选择对学习效果有着重要的影响。我学习了如......
  • 抽象工厂模式:角色解析与应用探索
    前言工厂模式一般指的是简单工厂模式、工厂方法模式、抽象工厂模式,这是三种工厂模式的最后一篇,其他两种的文章链接如下:设计模式之是简单工厂模式_凡夫编程的技术博客_51CTO博客工厂方法模式:改变你对软件开发的认知_凡夫编程的技术博客_51CTO博客建议三种模式放在一起对比学习,更能......
  • Java并发编程的高级探索
    随着多核处理器的普及,Java并发编程变得越来越重要。为了充分利用硬件资源,开发者需要掌握并发模式和算法、锁的优化技术、并发工具的高级应用,以及并发程序的性能分析方法。并发模式和算法在并发编程中,特定的模式和算法可以帮助我们解决一些复杂的问题:生产者-消费者模式:在多线程环境......
  • Java开发者的Python快速实战指南:探索向量数据库之文本搜索
    前言如果说Python是跟随我的步伐学习的话,我觉得我在日常开发方面已经没有太大的问题了。然而,由于我没有Python开发经验,我思考着应该写些什么内容。我回想起学习Java时的学习路线,直接操作数据库是其中一项重要内容,无论使用哪种编程语言,与数据库的交互都是不可避免的。然而,直接操作M......
  • PowerShell原生命令Get-Command探索
    前一篇博文我们提到Get-Command输出的类型(CommandType)有三类(别名,功能和命令),但通过查看帮助我们却发现命令类型似乎不只这三种,如下图:从输出的帮助信心我们看到命令类型还有Filter,ExternalScript,application和Script。通过执行如下命令:get-command-CommandTypeapplication|get-me......