3.3. eBPF プログラムのデプロイ
クラスター管理者は、eBPF Manager Operator を使用してコンテナー化された eBPF アプリケーションをデプロイできます。
この手順でデプロイされるサンプル eBPF プログラムの場合、サンプルマニフェストは次のことを実行します。
まず、Namespace
、ServiceAccount
、ClusterRoleBinding
などの基本的な Kubernetes オブジェクトを作成します。また、eBPF Manager が提供するカスタムリソース定義 (CRD) である XdpProgram
オブジェクトも作成し、eBPF XDP プログラムをロードします。各プログラムタイプには独自の CRD がありますが、その機能は似ています。詳細は、Kubernetes での eBPF プログラムのロード を参照してください。
次に、eBPF プログラムが作成する eBPF マップを読み取るユーザー空間プログラムを実行するデーモンセットを作成します。この eBPF マップは、Container Storage Interface (CSI) ドライバーを使用してボリュームマウントされます。ホスト上でアクセスする代わりにコンテナー内の eBPF マップをボリュームマウントすることで、アプリケーション Pod は権限なしで eBPF マップにアクセスできます。CSI の設定方法の詳細は、Kubernetes での eBPF 対応アプリケーションのデプロイ を参照してください。
eBPF Manager Operator はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、お客様が、今後リリースされる製品の機能に早期にアクセスして、開発プロセス中に機能のテストやフィードバックを行えるようにするものです。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
3.3.1. コンテナー化された eBPF プログラムの導入 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、クラスター上のノードに eBPF プログラムをデプロイできます。この手順では、サンプルのコンテナー化された eBPF プログラムが go-xdp-counter
namespace にインストールされます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - 管理者権限を持つアカウントがある。
- eBPF Manager Operator をインストールしている。
手順
マニフェストをダウンロードするには、次のコマンドを入力します。
curl -L https://github.com/bpfman/bpfman/releases/download/v0.5.1/go-xdp-counter-install-selinux.yaml -o go-xdp-counter-install-selinux.yaml
$ curl -L https://github.com/bpfman/bpfman/releases/download/v0.5.1/go-xdp-counter-install-selinux.yaml -o go-xdp-counter-install-selinux.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル eBPF アプリケーションをデプロイするには、次のコマンドを実行します。
oc create -f go-xdp-counter-install-selinux.yaml
$ oc create -f go-xdp-counter-install-selinux.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow eBPF サンプルアプリケーションが正常にデプロイされたことを確認するには、次のコマンドを実行します。
oc get all -o wide -n go-xdp-counter
$ oc get all -o wide -n go-xdp-counter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル XDP プログラムが実行していることを確認するには、次のコマンドを実行します。
oc get xdpprogram go-xdp-counter-example
$ oc get xdpprogram go-xdp-counter-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME BPFFUNCTIONNAME NODESELECTOR STATUS go-xdp-counter-example xdp_stats {} ReconcileSuccess
NAME BPFFUNCTIONNAME NODESELECTOR STATUS go-xdp-counter-example xdp_stats {} ReconcileSuccess
Copy to Clipboard Copied! Toggle word wrap Toggle overflow XDP プログラムがデータを収集していることを確認するには、次のコマンドを実行します。
oc logs <pod_name> -n go-xdp-counter
$ oc logs <pod_name> -n go-xdp-counter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
を、go-xdp-counter-ds-4m9cw
などの XDP プログラム Pod の名前に置き換えます。出力例
2024/08/13 15:20:06 15016 packets received 2024/08/13 15:20:06 93581579 bytes received ...
2024/08/13 15:20:06 15016 packets received 2024/08/13 15:20:06 93581579 bytes received ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow