カスタムカーネルを使ったWSL2上のFalco
Falco on WSL2
あなたはFalcoを愛し、素晴らしいブログ2020年のFalco - The Falco Projectを読んだだけで、この成長している素晴らしいコミュニティの一部になりたいと思うでしょう。"でも"あなたはWindows 10を使っていて、どうやって実行するのか疑問に思っていますか?
さて、お待たせしました! WSL2のボートに乗ってコルセアを辿りましょう。
前提条件
今回のブログ記事では、以下の技術を使用します。
Windows 10 Insiders (Devチャンネル)
- バージョン21277を使用します
WSL2 機能が有効で、デフォルトのディストリビューションがインストールされています。
このバージョンでは、下記のコマンドが実行されています:
ただし、今回のブログ記事では、[Ubuntu Community Preview](Announcing Ubuntu on Windows Community Preview - WSL2 - Ubuntu Community Hub) distroを使用します。
Linux カーネルバージョン 5.10.4 (atest stable)
現在のデフォルトWSL2カーネル: 5.4.72-microsoft-standard-WSL2
まだ WSL2 カーネル 4.x を持っている場合は、以下のコマンドで更新することができます。
注意: 新しいWSL2カーネルをコンパイルすると、Microsoftカスタムモジュール "DXGKRNL "が利用できなくなります。
[Optional]: Windows Terminal
WSL2 用の (カスタム) カーネル
まず最初に、WSL2用のカーネルのコンパイル方法を詳しく説明しません。単純に、ZFSモジュールについては既にそれを行ったからです。
これはまた、私が直接、あなたに有益なビットを提供する喜びを持っていることを意味します。
*注: 最高のパフォーマンスを保証するために、コンパイルのすべての作業はWSL2ファイルシステムの内部から行われます。
WSL2distroでターミナルを起動してみましょう。
これらの手順がすべて完了したので、Powershellで以下のコマンドを実行することで、WSL2を "再起動 "することができるようになりました。
WSL2 distro でターミナルをもう一度起動して、新しいカーネルが使われていることを確認してください。
そして、latest stable Linux カーネルが WSL2 によってインストールされ、使用されています。WSL2 の(大きな)利点は、すべてのdistroが同じカーネルを使用していて、それ以上のコンパイルを必要としないことです。(潜在的な)欠点は、すべてのdistroが同じ設定を共有していることです。
WSL2 で SystemD を探す
デフォルトでは、WSL2 はカスタマイズされた init
プロセスのために SystemD を実行しません。しかし、非常に賢いコミュニティメンバーである Daniel Llewellyn がそれを可能にしました。
いくつかの反復と代替案が利用可能になりましたが、このブログ記事では、追加パッケージのインストールを必要としない(=押しつけがましくない)ので、彼の”1つのスクリプト”を使用しています。
注意: カーネルはすべての WSL2distroに適用されていますが、SystemDのインストールはすべてのdistroに対して行われる必要があります。
もう一度ターミナルにジャンプしてください:
これで、Powershellで以下のコマンドを実行することで、WSL2を "再起動 "することができるようになりました。
WSL2distroでターミナルを再度起動し、systemd
が起動するまでに少し遅れていることを確認してください。
シェルの準備ができたら、SystemD が起動していることを確認してください。
私の名前はFalco カーネルモジュールFalcoです
準備されたすべてのもので、次のステップは、Falco documentationに従うことで、"普通の "Linuxを持っている人がするようなものです。私はUbuntuを使用していることを覚えておいてください。
しかし、カーネル(WSL2ではなく)に関連した "回り道 "が必要になります。repo(このブログ記事を書いている時点では存在していませんでした)からヘッダーをインストールする代わりに、Ubuntuカーネルのウェブサイトからダウンロードします。その他のdistroについては、それぞれのサイトで確認してください。
注: カーネルヘッダパッケージのインストール時には、以下のエラーを無視することができます。
W: mkconf: MD subsystem is not loaded, thus I cannot scan for arrays. W: mdadm: failed to auto-generate temporary mdadm.conf file.
もう一度ターミナルにジャンプしましょう。
現在Falcoがインストールされているので、「有効化してテストする」にはまだいくつかのステップが必要です。もう一度言いますが、Falcoのドキュメントは準備できているので、ここではそれに従います。
最後に(少なくともこのブログのために)ターミナルにジャンプしましょう:
おめでとう!!! これでWSL2でFalcoを起動して実行することができ、お好みのKubernetesdistro(Falcoのドキュメントを参照)で使用できるようになりました。
まとめ
このブログがFalcoをWSL2に導入するのに役立ち、テストするだけでなく、この素晴らしいチームにフィードバックを提供できることを願っています。
Falcoに関する質問やフィードバックがあれば、Falco GitHub repoでissueを作成することを躊躇しないでください。WSL2については、より具体的には、Twitter (@nunixtechで連絡を取ることができます。)
クラウドネイティブの海で会いましょう。
The WSL Corsair