第3章 eBPF マネージャー Operator
3.1. eBPF Manager Operator について リンクのコピーリンクがクリップボードにコピーされました!
eBPF Manager Operator はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、お客様が、今後リリースされる製品の機能に早期にアクセスして、開発プロセス中に機能のテストやフィードバックを行えるようにするものです。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
3.1.1. eBPF (Extended Berkeley Packet Filter) について リンクのコピーリンクがクリップボードにコピーされました!
eBPF は、高度なネットワークトラフィックフィルタリングを実現するために、オリジナルの Berkeley Packet Filter を拡張します。これは Linux カーネル内の仮想マシンとして機能し、ネットワークパケット、システムコール、カーネル関数などのイベントに応じてサンドボックス化されたプログラムを実行できるようにします。
3.1.2. eBPF Manager Operator について リンクのコピーリンクがクリップボードにコピーされました!
eBPF Manager は、Kubernetes 内での eBPF プログラムの管理とデプロイメントを簡素化し、eBPF プログラムの使用に関するセキュリティーを強化します。Kubernetes カスタムリソース定義 (CRD) を使用して、OCI コンテナーイメージとしてパッケージ化された eBPF プログラムを管理します。このアプローチは、特定のユーザーが展開できるプログラムの種類を制限することで、デプロイメント権限を明確にし、セキュリティーを強化するのに役立ちます。
eBPF Manager は、Kubernetes 内で eBPF プログラムを管理するために設計されたソフトウェアスタックです。Kubernetes クラスター内の eBPF プログラムのロード、アンロード、変更、監視を容易にします。デーモン、CRD、エージェント、Operator が含まれます。
- bpfman
- gRPC API を介して eBPF プログラムを管理するシステムデーモン。
- eBPF CRDs
- eBPF プログラムをロードするための XdpProgram や TcProgram などの CRD のセットと、ロードされたプログラムの状態を表すための bpfman によって生成された CRD (BpfProgram)。
- bpfman-agent
- デーモンセットコンテナー内で実行し、各ノード上の eBPF プログラムが目的の状態にあることを確認する。
- bpfman-operator
- Operator SDK を使用して、クラスター内の bpfman-agent と CRD のライフサイクルを管理します。
eBPF Manager Operator は次の機能を提供します。
- 制御されたデーモンを通じて eBPF プログラムのロードを一元化することで、セキュリティーを強化します。eBPF Manager には昇格された権限があるため、アプリケーションに昇格された権限は必要ありません。eBPF プログラム制御は、標準の Kubernetes ロールベースアクセス制御 (RBAC) によって規制され、eBPF プログラムのロードとアンロードを管理するさまざまな eBPF マネージャー CRD へのアプリケーションのアクセスを許可または拒否できます。
- アクティブな eBPF プログラムの詳細な可視性を提供し、システム全体の問題をデバッグする能力を向上させます。
- XDP および TC プログラム用の libxdp などのプロトコルを使用して、異なるソースからの複数の eBPF プログラムの共存を容易にし、相互運用性を強化します。
- Kubernetes での eBPF プログラムのデプロイメントとライフサイクル管理を合理化します。Cilium、libbpf、Aya などの既存の eBPF ライブラリーをサポートしているため、開発者はライフサイクル管理ではなくプログラムのやり取りに集中できます。