BumbleBee, eBPF 프로그램의 생성 및 배포를 단순화하는 우수한 프로젝트

솔로아이오, 클라우드 컴퓨팅 회사, 마이크로서비스, 샌드박스 및 서버리스, 오픈소스 프로젝트 '범블비' 공개. 새로운 프로젝트는 개발자 경험을 단순화합니다 eBPF 도구 빌드, 패키지 및 배포, 솔로에 따르면.

땅벌 자동으로 사용자 공간 코드 생성 eBPF 도구를 개발하기 위한 상용구라고 회사는 설명했습니다. 또한 Docker와 유사한 경험을 제공합니다. eBPF 프로그램을 패키징합니다. 이를 통해 게시 및 배포를 위해 다른 OCI 이미지 워크플로에 연결할 수 있습니다.

범블비 소개

땅벌 eBPF 프로그램을 컨테이너 이미지로 패키징할 수 있습니다. 모든 시스템에서 실행할 수 있는 OCI(Open Container Initiative)에서 추가 구성 요소를 다시 컴파일하거나 사용하지 않고 사용자 공간에서.

eBPF 프로세서에서 오는 데이터 처리를 포함하여 커널의 eBPF 코드와의 상호 작용은 BumbleBee에 의해 처리되며, BumbleBee는 이 데이터를 메트릭, 히스토그램 또는 로그 형식으로 자동으로 내보냅니다. 예를 들어 다음을 사용하여 액세스할 수 있습니다. 컬 유틸리티. 제안된 접근 방식을 통해 개발자는 eBPF 코드 작성에 집중할 수 있습니다. 사용자 공간, 어셈블리 및 커널 로드에서 이 코드와의 상호 작용을 조직화하여 산만하지 않습니다.

솔로아이오 대표이사 Idit Levine은 다음과 같이 말합니다.

이 회사는 커널 수준에서 실행되는 eBPF 기술에 액세스하는 데 필요한 상용구 사용자 공간 코드를 자동으로 생성하기 위해 BumbleBee를 개발했습니다. BumbleBee에는 로그, 메트릭 및 히스토그램과 같은 맵을 자동으로 노출하여 eBPF 프로그램에 대한 사용자 공간 코드를 자동으로 생성하는 명령줄 인터페이스(CLI)가 포함되어 있습니다.

eBPF 프로그램을 관리하려면, eBPF 드라이버를 즉시 다운로드할 수 있는 Docker 스타일의 "벌" 유틸리티가 제공됩니다. 외부 저장소에서 관심을 갖고 로컬 시스템에서 실행합니다.

툴킷을 사용하면 선택한 주제의 eBPF 드라이버에 대한 C 코드 프레임워크를 생성할 수 있습니다(현재는 네트워크 스택 및 파일 시스템에 대한 호출을 가로채는 파일 및 네트워크 드라이버만 지원됨). 생성된 프레임워크를 기반으로 개발자는 관심 있는 기능을 빠르게 구현할 수 있습니다.

BCC(BPF Compiler Collection)와 달리 BumbleBee는 각 커널 버전에 대한 드라이버 코드를 완전히 다시 빌드하지 않습니다. Linux(BCC는 eBPF 프로그램이 실행될 때마다 Clang과 함께 즉석 컴파일을 사용합니다).

이식성 문제를 해결하려면 개발 중 도구 키트 코드를 한 번 컴파일할 수 있는 CO-RE 및 libbpf 로드된 프로그램을 현재 커널 및 BTF(BPF Type Format) 유형에 맞게 조정하는 특수 범용 로더를 사용합니다.

BumbleBee는 libbpf 위에 있는 플러그인이며 표준 eBPF RingBuffer 및 HashMap 맵 구조에 배치된 데이터의 자동 해석 및 표시를 위한 추가 유형을 제공합니다.

최종 eBPF 프로그램을 빌드하고 OCI 이미지로 저장하려면 다음 명령을 실행하기만 하면 됩니다.

bee build file_with_code name:version

그리고 명령을 실행

bee run name:version

기본적으로 컨트롤러에서 수신한 이벤트는 터미널 창에 표시되지만 필요한 경우 컨트롤러에 바인딩된 네트워크 포트에서 curl 또는 wget 유틸리티를 호출하여 데이터를 가져올 수 있습니다.

드라이버는 OCI 호환 리포지토리를 통해 배포할 수 있습니다. 예를 들어 ghcr.io(GitHub Container Registry) 리포지토리에서 외부 드라이버를 실행하려면 다음 명령을 실행할 수 있습니다.

bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)

컨트롤러를 저장소에 저장하기 위해 다음 명령이 제공됩니다.

bee push

그리고 버전을 연결하려면

bee tag

eBPF의 가장 큰 이점은 단순히 효율성입니다. 보안, 네트워킹 및 스토리지 플랫폼의 총 처리 비용은 더 많은 공급자가 해당 기능을 활용함에 따라 감소해야 합니다. 

지금, eBPF는 클라우드 서비스 제공 업체와 같은 웹 스케일 회사에서 널리 사용됩니다. Facebook은 데이터 센터의 주요 소프트웨어 정의 로드 밸런서로 이를 사용하고 있으며 Google은 관리되는 Kubernetes 제품 내에서 오픈 소스 Cilium 네트워킹 소프트웨어를 사용하고 있습니다. 

하지만 앞으로 더 많은 운영 체제에서 기능을 지원하게 되면서 eBPF가 훨씬 더 널리 채택되는 것은 이제 시간 문제일 뿐이라고 Levine은 말합니다.

최종적으로 그것에 대해 더 알고 싶다면, 당신은 세부 사항을 확인할 수 있습니다 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.