成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們如何利用eBPF程序監控Kubernetes,你學會了嗎?

云計算 云原生
在 Kubernetes 監控中利用 eBPF 功能可以深入了解內核級事件、網絡流量和資源使用情況。通過創建自定義的 eBPF 程序和使用像 BPFTrace 這樣的工具,您可以更好地理解集群的行為,排查問題,優化性能并分析資源利用率。

對 Kubernetes 集群進行監控對于確保容器化應用程序的健康、性能和可靠性至關重要。Kubernetes 提供了強大的監控工具套件和集成,但是當您需要深入內核和網絡級別的復雜性時,eBPF(擴展的伯克利包過濾器)就成為了無價的資源。在本文中,我們將探索驚人的 eBPF 功能,以及如何利用它提升 Kubernetes 監控策略。

譯自How to Use eBPF Capabilities to Navigate Kubernetes Monitoring。作者 Dev Genius 。

在 Kubernetes 的背景下,eBPF 在諸如容器網絡監控(CNI 插件)、通過基于 eBPF 的網絡策略加強安全性以及進行詳細的性能分析等任務中發揮著關鍵作用。通過深入研究 eBPF 的功能,您可以對 Kubernetes 集群獲得無與倫比的洞察,從而幫助您排查問題、優化性能并微調基礎設施以達到峰值效率。

eBPF是一個強大的技術,它允許在不修改 Linux 內核源代碼的情況下,動態地向 Linux 內核中插入自定義代碼。這些代碼可以用于各種目的,包括網絡分析、跟蹤和在eBPF Kubernetes的背景下的可觀察性。

圖片圖片

Kubernetes 利用 eBPF 進行各種任務,例如容器網絡監控(CNI 插件)、安全性(例如基于 eBPF 的網絡策略)和性能分析。

設置環境和使用 eBPF 監控 Kubernetes

在我們深入研究基于 eBPF 的 Kubernetes 監控之前,讓我們先設置環境。請確保您具備以下前提條件:

  • 一個運行中的 Kubernetes 集群
  • 安裝了kubectl命令行工具
  • Docker 或其他容器運行時
  • 基于 Linux 的系統(用于 eBPF 工具)

安裝必需的工具

要開始,我們需要在您的系統上安裝一些與 eBPF 相關的工具。這些工具將幫助您分析和跟蹤內核級事件。

# Install BPF Compiler Collection (BCC)
sudo apt-get install bpfcc-tools
# Install BPFTrace
sudo apt-get install bpfcc-tools

觀測 Pod 網絡流量

eBPF 可以對 Pod 之間的網絡流量提供深入的洞察。讓我們創建一個簡單的 eBPF 程序,用于跟蹤兩個特定 Pod 之間的網絡流量。

#include <linux/bpf.h>
#include <linux/if_ether.h>
#include <linux/ip.h>


BPF_TABLE("hash", u64, u64, packet_count, 256);


int count_packets(struct __sk_buff *skb) {
  u64 *value;
  u64 key = 0;


  struct ethhdr *eth = bpf_hdr_pointer(skb);
  struct iphdr *ip = (struct iphdr *)(eth + 1);


  if (ip->protocol == IPPROTO_TCP) {
    key = ip->saddr;
    value = packet_count.lookup_or_init(&key, &key);
    (*value)++;
  }


  return 0;
}

將這段代碼保存到一個文件中,例如 packet_count.c。您可以使用 clang 進行編譯,并使用 bpftool 將其加載到內核中。

clang -O2 -target bpf -c packet_count.c -o packet_count.o
bpftool prog load packet_count.o /sys/fs/bpf/packet_count

現在,您可以使用容器 ID 將此 eBPF 程序附加到特定 pod 的網絡接口上。

# Get the container ID of a pod
kubectl get pods -n <namespace> <pod-name> -o jsnotallow=’{.status.containerID}’
# Attach the eBPF program to the container’s network interface
bpftool net attach container <container-id> /sys/fs/bpf/packet_count

然后您可以監控為指定 pod 計數的數據包。

使用 BPFTrace 進行動態跟蹤

BPFTrace 是一個靈活的動態跟蹤工具。讓我們創建一個簡單的 BPFTrace 腳本來監控特定 pod 所做的系統調用。

tracepoint:syscalls:sys_enter_* {
  if (str(args->comm) == "<pod-name>") {
    printf("%s called %s()\n", args->comm, probefunc);
  }
}

將<pod-name>替換為您要監控的 pod 的名稱。將此腳本保存到一個文件中,例如 syscall_trace.bt,并使用 BPFTrace 運行它。

bpftrace syscall_trace.bt

該腳本將實時顯示指定 pod 所做的系統調用。

分析 Kubernetes 資源使用情況

eBPF 也可以幫助您深入了解 Kubernetes pod 和容器的資源使用情況。讓我們創建一個 eBPF 程序來跟蹤特定 pod 的 CPU 和內存使用情況。

#include <linux/bpf.h>
#include <linux/perf_event.h>
#include <linux/sched.h>
BPF_HASH(pod_cpu, u64, u64);
BPF_HASH(pod_memory, u64, u64);
TRACEPOINT_PROBE(sched, sched_process_exit) {
 u64 pid = bpf_get_current_pid_tgid();
 u64 cpu_usage = bpf_perf_counter_value(pod_cpu, &pid);
 u64 memory_usage = bpf_perf_counter_value(pod_memory, &pid);
 printf(“Pod PID %lld — CPU Usage: %lld ns, Memory Usage: %lld bytes\n”, pid, cpu_usage, memory_usage);
}

像之前一樣編譯這個 eBPF 程序并將其加載到內核中。然后,將其附加到特定 pod 的進程上。

# Get the PID of a pod’s main process
kubectl exec -it -n <namespace> <pod-name> — pidof <process-name>
# Attach the eBPF program to the pod’s process
bpftool proc attach -p <pid> /sys/fs/bpf/pod_cpu
bpftool proc attach -p <pid> /sys/fs/bpf/pod_memory

現在,您可以實時監控指定 pod 的 CPU 和內存使用情況。

結論

在 Kubernetes 監控中利用 eBPF 功能可以深入了解內核級事件、網絡流量和資源使用情況。通過創建自定義的 eBPF 程序和使用像 BPFTrace 這樣的工具,您可以更好地理解集群的行為,排查問題,優化性能并分析資源利用率。

請記住,eBPF 是一個強大但底層的工具,所以要謹慎使用,并且在生產環境中運行自定義的 eBPF 程序時,始終要考慮安全隱患。進一步探索 eBPF 生態系統,發現更多提升 Kubernetes 監控和可觀測性實踐的方法。

責任編輯:武曉燕 來源: 云云眾生s
相關推薦

2024-07-29 10:35:44

KubernetesCSI存儲

2024-09-13 09:05:31

架構思維程序

2022-12-22 08:14:54

2022-07-26 08:03:27

Kubernetes節點磁盤

2024-01-19 08:25:38

死鎖Java通信

2023-01-10 08:43:15

定義DDD架構

2024-02-04 00:00:00

Effect數據組件

2023-07-26 13:11:21

ChatGPT平臺工具

2023-11-13 18:36:04

知識抽取NER

2024-05-10 08:00:48

K8soperatorGitHub

2024-01-30 18:29:29

微服務架構Ingress

2022-11-30 09:54:57

網絡令牌身份驗證

2023-10-31 14:04:17

Rust類型編譯器

2024-10-17 10:00:59

2024-01-02 12:05:26

Java并發編程

2023-08-01 12:51:18

WebGPT機器學習模型

2024-10-06 08:20:53

鎖定機制編程

2022-08-29 08:05:44

Go類型JSON

2023-01-28 10:40:56

Java虛擬機代碼

2023-03-17 16:44:44

Channel進程模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区在线观看视频 | 国产真实乱对白精彩久久小说 | 欧美在线视频一区 | 精品国产欧美一区二区三区不卡 | 中文字幕在线观看一区二区 | 亚洲视频免费播放 | 日韩aⅴ视频 | 中文字幕高清av | 日韩午夜在线播放 | 日日干夜夜草 | 欧美久久一级特黄毛片 | 91成人免费观看 | 国产一级一级毛片 | 亚洲福利网 | 亚洲精品一区二 | 久久里面有精品 | 久久中文字幕一区 | 亚洲一区二区精品视频 | 成人高清视频在线观看 | 久久综合一区二区三区 | 不卡一二区 | 日韩五月天 | 国产精品观看 | av在线伊人 | 中文字字幕在线中文乱码范文 | 欧美狠狠操 | av黄色在线 | 激情小说综合网 | 狠狠干在线 | 一级黄色录像毛片 | 国产午夜精品久久 | 狠狠做深爱婷婷综合一区 | 国产精品日产欧美久久久久 | 欧美爱爱视频 | 日韩一级免费观看 | 欧美成人免费在线视频 | 亚洲成人久久久 | 在线看av的网址 | www.色综合| 一呦二呦三呦国产精品 | 国产资源在线观看 |