From d3e1db53164c1ae36b5eac95ce9c75ba358947ec Mon Sep 17 00:00:00 2001 From: KATOH Yasufumi Date: Wed, 27 Mar 2024 22:36:17 +0900 Subject: [PATCH] Add Japanese release announcement of Incus 0.7 Signed-off-by: KATOH Yasufumi --- .../news.ja/incus-0-7-has-been-released.yaml | 692 ++++++++++++++++++ 1 file changed, 692 insertions(+) create mode 100644 content/incus/news.ja/incus-0-7-has-been-released.yaml diff --git a/content/incus/news.ja/incus-0-7-has-been-released.yaml b/content/incus/news.ja/incus-0-7-has-been-released.yaml new file mode 100644 index 00000000..bec0451e --- /dev/null +++ b/content/incus/news.ja/incus-0-7-has-been-released.yaml @@ -0,0 +1,692 @@ +title: Incus 0.7 リリースのお知らせ +date: 2024/03/26 18:03 +origin: https://discuss.linuxcontainers.org/t/incus-0-7-has-been-released/19485 +content: |- + # はじめに + + Incus チームは、Incus 0.7 のリリースのアナウンスができてうれしいです! + + + このリリースは、来週を予定している Incus 6.0 LTS のリリース前の最後のリリースです。リリースが進むにつれ、非常に忙しくなっています。LTS リリース前には、LTS に含める新機能の量を最小限にしようとしており、このような形にするのが我々が望む形です。 + + [ + ![image|690x404](https://discuss.linuxcontainers.org/uploads/default/original/2X/8/88e148d64ec264e8d6770f2afab6711aa9864a18.png)](https://linuxcontainers.org/incus/try-it/) + + + いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/ + + Enjoy! + + # 新機能 + ## ネットワークインテグレーション + + 新しいトップレベルのコンセプトである、ネットワークインテグレーションは、デプロイした Incus を、自身が管理するところの外のネットワークに接続する方法です。 + + + 現時点では、このコンセプトの唯一の実装が [OVN インターコネクション](https://docs.ovn.org/en/latest/tutorials/ovn-interconnection.html) です。これにより、Incus クラスターが、他の Incus クラスターが実行されている同等のネットワークや、OpenStack や Kubernetes のような他の OVN ユーザーと直接ピアリングできるようになります。 + + + OVN インターコネクションゲートウェイを使用して、新しいネットワークインテグレーションを作成し、それを通して既存のネットワークをピアリングしている例を次に示します。 + + root@az01-server01:~# incus network integration create ovn-region ovn + Network integration ovn-region created + root@az01-server01:~# incus network integration set ovn-region ovn.northbound_connection tcp:[10.50.1.12]:6645,tcp:[10.50.2.13]:6645,tcp:[10.50.3.19]:6645 + root@az01-server01:~# incus network integration set ovn-region ovn.southbound_connection tcp:[10.50.1.12]:6646,tcp:[10.50.2.13]:6646,tcp:[10.50.3.19]:6646 + root@az01-server01:~# incus network peer create default region ovn-region --type=remote + Network peer region created + + ドキュメント: https://linuxcontainers.org/incus/docs/main/howto/network_integrations/ + + ## イメージサーバー管理ツール + + Incus イメージサーバーを実行する一般的な方法は、内部サーバーとして実行する場合でも、一般的に利用可能な公開サーバーとして実行する場合でも、`simplestreams` を使って Incus イメージを提供する Web サーバーを通して実行することです。 + + + これを簡単にセットアップできるように、新しいツールである `incus-simplestreams` を導入しました。これは、シンプルなイメージサーバーを簡単に管理でき、利用可能なイメージの一覧表示、イメージの追加や削除、必要なメタデータファイルの生成ができます。 + + stgraber@dakara:~$ mkdir image-server + stgraber@dakara:~$ cd image-server/ + stgraber@dakara:~/image-server$ incus-simplestreams generate-metadata ~/Downloads/incus.tar.xz + Operating system name: Red Hat Enterprise Linux + Release name: 9 + Variant name [default="default"]: + Architecture name: x86_64 + Description [default="Red Hat Enterprise Linux 9 (default) (x86_64) (202403260239)"]:· + stgraber@dakara:~/image-server$ incus-simplestreams add ~/Downloads/incus.tar.xz ~/Downloads/rhel9.qcow2· + stgraber@dakara:~/image-server$ incus-simplestreams list + +------------------------------------------------------------------+--------------------------------------------------+--------------------------+---------+---------+--------------+-----------------+----------------------+ + | FINGERPRINT | DESCRIPTION | OS | RELEASE | VARIANT | ARCHITECTURE | TYPE | CREATED | + +------------------------------------------------------------------+--------------------------------------------------+--------------------------+---------+---------+--------------+-----------------+----------------------+ + | 7d256e4fac6fc63fb47bc1e07e1c6ee234281cdf1ed21788c920d763b7bd93ba | Red Hat Enterprise Linux 9 x86_64 (202403252239) | Red Hat Enterprise Linux | 9 | default | x86_64 | virtual-machine | 2024/03/25 00:00 UTC | + +------------------------------------------------------------------+--------------------------------------------------+--------------------------+---------+---------+--------------+-----------------+----------------------+ + stgraber@dakara:~/image-server$ find . | sort + . + ./images + ./images/ef6cf538776b05a64c789f16f235a757522724f2c490c7e118645be2eb920d30.incus.tar.xz + ./images/ef6cf538776b05a64c789f16f235a757522724f2c490c7e118645be2eb920d30.qcow2 + ./streams + ./streams/v1 + ./streams/v1/images.json + ./streams/v1/index.json + + + HTTPS 対応の Web サーバーに置き、次のように追加します。 + + incus remote add my-server https://xyz.example.net --protocol=simplestreams + + ドキュメント: https://linuxcontainers.org/incus/docs/main/reference/image_servers/#tooling-to-manage-a-simplestreams-server + + ## JSON Web トークン認証 + + Incus は基本的にリモート認証のために 2 つのメカニズムをサポートしています。 + + - TLS クライアント証明書(制限あり、もしくはなしでローカルのトラストストアに追加) + - OpenID コネクト外部認証(認可に OpeFGA を使用、もしくは使用しない) + + + 前者は、リモートの Incus サーバーとシンプルに通信するのにもっとも一般的な方法です。 + Incus の CLI ツールとサードパーティのツールは、TLS 鍵ペアを使って HTTPS 接続を確立し、その方法で認証を得ることに問題はありません。 + + + しかし、Incus がリバース HTTP(S) プロキシーの背後で動くような場合など、TLS クライアント証明書が少し問題になる状況があります。 + + + これに対応するため、HTTP の `Authorization` フィールドを使った JSON Web Token (JWT) bearer トークンのサポートをするようになりました。有効な TLS クライアント証明書を持つユーザーは、Subject フィールドを証明書フィンガープリントに設定し、適切な NotBefore/NotAfter 値を設定し、秘密鍵で JWT に署名することで、このトークンを生成できます。 + + + Incus はそのような接続を TLS クライアント証明書を使っているのと同等に扱います。 + + stgraber@dakara:~$ openssl req -x509 -newkey rsa:4096 -sha384 -keyout client.key -nodes -out client.crt -days 1 -subj "/CN=test.local" + .+.........+...+...+..+....+......+........+.+.....+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+.+......+...+......+......+..+...+...+...............+.......+...+......+...+.....+......+....+......+..+...+......+....+............+.....+....+.....+.+............+..+.........+......+....+......+...........+....+........+...+...+.+...+..+..........+.....+...+......+............+...+.......+........+....+.....+.+..+.......+......+..+....+........+..........+...+..+.+.....+.+......+..+.......+.....+.+..+..........+..+....+..............+.+..+...........................+...+....+......+...+..............+.+..+....+.....+.+.........+...+..+....+..+.............+.........+.....+...+..........+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.....+...+...+..+...+.........+.+...+............+..+............+.+.......................................+.....+...+......+.........+......+.+.....+...+.+...........+......+.......+.....+.......+......+.....+..........+...+..+.........+....+.........+...........+......+.+..................+..+....+...........+.............+.....+....+..+......+............+..........+......+......+......+..+.............+.....+...+.+........+............+....+.................+.........+......+.......+...+.........+.....+....+......+........+.+..+....+......+........+....+...+.................+.+..+.........+....+............+.....+.........+....+.....+.......+.....+...............+..............................+....+........+.......+...........+.......+.....+......+.........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + ...+...............+.+...+...+...+.........+..+.+...+..+.......+.....+.+..+...+...................+...........+......+....+..+............+...+.......+..+.........+....+...+.........+.....+...+...+....+...........+...+.+.........+.....+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+...+......+..+...+......+.+..+.............+..+.......+........+...+...+....+...............+..+....+..+....+...+.....+.+.....+..........+.....+.+.....+....+............+.........+...+.....+......+......+.............+..+.+..+.......+...+........+...+.......+.........+......+..+.+......+...........+...+.........+...+...+....+..+.........+....+.....+.+......+.........+..+..........+..+...+...+....+..+...+.+.....+......+.+...+......+.....+.+.....+.......+........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+..+.......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + ----- + stgraber@dakara:~$ incus config trust add-certificate client.crt --restricted --projects demo + stgraber@dakara:~$ tls2jwt client.key client.crt now 120 + eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MzI3Y2Q5YmIxYTFmN2ExMWM3ODBkZjc4YjVkNjg5YzhkMGQ5YzcwZGQxOGQ1YTMyYzI1M2ZiODA0N2U2M2E0IiwiZXhwIjoxNzExNDcyMjE2LCJuYmYiOjE3MTE0NzIwOTYsImlhdCI6MTcxMTQ3MjA5Nn0.pNQ4AcgoymxWHROXVjcYX8QMKdf9QgRH3zex7qc16avX7_Ax1q_WFWzQWfP48Fh-ooeh9hBQKCQkZxjVxYx8Sy-cNqmkf1AI9KGh5uemHh3FYAbvebCTaIXan0B6glWHVnDSwLZKBWTDDai2VXOmUfntyV9yPJdTqxt1J0j8PNuIWzNVdFlcTxzpggcJMhbcqtf4GRwSMKx69HU5sP4AQ7GJ2cBvN7Im-nkRXTc7xiyYnIsFx0vIWJzojC4zwg0-C1LHKQD4DyEKhqOVISIKUSa3GhD6ajcDuGDS8af4Iz19sNPsSoSULBUG-a7E5lXx2vk802vOFFWV68ZHugsJHpdSpLFwTVixipQ1-QdKRozlMjNPguu-5CYxhZVR1p32lbN9D879xGbFXUgPJVwK25NILvbEMcrqnGPgKcRUjJlHtVljGOgXrjmG7dMiW5QOsyy1eIvJ1D1sNsG02fDTbchTzXHmIybxQTK0FXCyNDLOAl6xgW0Jundg7AN1uJU2cLEWy1x3TusqC7lyeTeF3WYT-G8xE2CU4GpLBeYWyLwuJgxRkaWcg9IXiivguPbWpcT0RMl1bmpn0TJ2VgEPCuSG0mJxMBp8HbAgxwgar8AHdpoZ43dCCwZnB0a0O_kmGkBE2xGKKvgTx_U6eSixZzyyNmHDC1KH1Vy1WW1ZcF0stgraber@dakara:~$· + stgraber@dakara:~$ curl -s -k -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MzI3Y2Q5YmIxYTFmN2ExMWM3ODBkZjc4YjVkNjg5YzhkMGQ5YzcwZGQxOGQ1YTMyYzI1M2ZiODA0N2U2M2E0IiwiZXhwIjoxNzExNDcyMjE2LCJuYmYiOjE3MTE0NzIwOTYsImlhdCI6MTcxMTQ3MjA5Nn0.pNQ4AcgoymxWHROXVjcYX8QMKdf9QgRH3zex7qc16avX7_Ax1q_WFWzQWfP48Fh-ooeh9hBQKCQkZxjVxYx8Sy-cNqmkf1AI9KGh5uemHh3FYAbvebCTaIXan0B6glWHVnDSwLZKBWTDDai2VXOmUfntyV9yPJdTqxt1J0j8PNuIWzNVdFlcTxzpggcJMhbcqtf4GRwSMKx69HU5sP4AQ7GJ2cBvN7Im-nkRXTc7xiyYnIsFx0vIWJzojC4zwg0-C1LHKQD4DyEKhqOVISIKUSa3GhD6ajcDuGDS8af4Iz19sNPsSoSULBUG-a7E5lXx2vk802vOFFWV68ZHugsJHpdSpLFwTVixipQ1-QdKRozlMjNPguu-5CYxhZVR1p32lbN9D879xGbFXUgPJVwK25NILvbEMcrqnGPgKcRUjJlHtVljGOgXrjmG7dMiW5QOsyy1eIvJ1D1sNsG02fDTbchTzXHmIybxQTK0FXCyNDLOAl6xgW0Jundg7AN1uJU2cLEWy1x3TusqC7lyeTeF3WYT-G8xE2CU4GpLBeYWyLwuJgxRkaWcg9IXiivguPbWpcT0RMl1bmpn0TJ2VgEPCuSG0mJxMBp8HbAgxwgar8AHdpoZ43dCCwZnB0a0O_kmGkBE2xGKKvgTx_U6eSixZzyyNmHDC1KH1Vy1WW1ZcF0' https://localhost:8443/1.0/projects | jq + { + "type": "sync", + "status": "Success", + "status_code": 200, + "operation": "", + "error_code": 0, + "error": "", + "metadata": [ + "/1.0/projects/demo" + ] + } + + ドキュメント : https://linuxcontainers.org/incus/docs/main/authentication/#using-json-web-token-jwt-to-perform-tls-authentication + + ## 設定可能な OIDC ユーザー名フィールド + + OpenID コネクトを使っている方は、ユーザーの識別子として利用可能な場合、Incus が `e-mail` クレームを使うことに気づいたかもしれません。見つからない場合、Subject に依存します。 + + + 異なるデプロイで OIDC クレームを通して異なる情報が利用可能になる可能性があるため、`oidc.claim` をクレームに設定し、ユーザー識別子として使えるようになりました。 + + stgraber@dakara:~$ incus query s-dakara:/1.0 | jq -r .auth_user_name + stgraber@stgraber.org + stgraber@dakara:~$ incus config set oidc.claim=name + stgraber@dakara:~$ incus query s-dakara:/1.0 | jq -r .auth_user_name + Stéphane Graber + stgraber@dakara:~$ incus config set oidc.claim=sub + stgraber@dakara:~$ incus query s-dakara:/1.0 | jq -r .auth_user_name + 99cb8caa-3640-45b9-b87a-55266366aaf3 + stgraber@dakara:~$ incus config set oidc.claim=email + stgraber@dakara:~$ incus query s-dakara:/1.0 | jq -r .auth_user_name + stgraber@stgraber.org + + ## NUMA ハンドリングの改良 + + このリリースでは、大規模システムでのコンテナと仮想マシン両方のパフォーマンスを改善するためにかなりの時間を費やしました。これには明らかにマルチソケットシステムが含まれます。それだけでなく、各 CPU が複数の NUMA ノードとして公開される、NPS4 や同様のモードで動作する AMD システムも含まれます。 + + + 一般的に、私たちの目標は、CPU とメモリを適切に固定し、NUMA ノードに最も近い PCIe リソースを選択しながら、NUMA ノード間でワークロードを簡単に分散できるようにすることです。 + + + その一環として、いくつかのことを行いました: + + - `limits.cpu.nodes` が仮想マシンでもサポートされるようになりました + - 新たに `limits.cpu.nodes` の設定値として `balanced` を追加しました。これにより Incus は、そのノードを使うように設定されたインスタンスがもっとも少ない NUMA ノードを使います + - SR-IOV CPU の選択で、選択ロジックの一部として NUMA ノードも考慮されるようになりました。一致するものが見つからない場合、同じ CPU ソケットに接続されている PCIe デバイスが優先されます + + 例 : + + stgraber@gputest:~$ incus list stgraber-gpu -cns4,limits.cpu.nodes,volatile.cpu.nodes,volatile.gpu.last_state.pci.parent,volatile.gpu.last_state.vf.id + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | NAME | STATE | IPV4 | LIMITS CPU NODES | VOLATILE CPU NODES | VOLATILE GPU LAST STATE PCI PARENT | VOLATILE GPU LAST STATE VF ID | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu01 | RUNNING | 10.232.44.8 (enp5s0) | balanced | 0 | 0000:63:00.0 | 1 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu02 | RUNNING | 10.232.44.9 (enp5s0) | balanced | 2 | 0000:03:00.0 | 1 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu03 | RUNNING | 10.232.44.10 (enp5s0) | balanced | 4 | 0000:e3:00.0 | 1 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu04 | RUNNING | 10.232.44.11 (enp5s0) | balanced | 5 | 0000:c3:00.0 | 2 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu05 | RUNNING | 10.232.44.12 (enp5s0) | balanced | 6 | 0000:c3:00.0 | 1 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu06 | RUNNING | 10.232.44.13 (enp5s0) | balanced | 7 | 0000:83:00.0 | 0 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu07 | RUNNING | 10.232.44.15 (enp5s0) | balanced | 1 | 0000:43:00.0 | 3 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu08 | RUNNING | 10.232.44.16 (enp5s0) | balanced | 2 | 0000:03:00.0 | 0 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu09 | RUNNING | 10.232.44.17 (enp5s0) | balanced | 3 | 0000:03:00.0 | 2 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu10 | RUNNING | 10.232.44.18 (enp5s0) | balanced | 4 | 0000:e3:00.0 | 0 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu11 | RUNNING | 10.232.44.19 (enp5s0) | balanced | 5 | 0000:c3:00.0 | 0 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu12 | RUNNING | 10.232.44.20 (enp5s0) | balanced | 6 | 0000:83:00.0 | 1 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu13 | RUNNING | 10.232.44.21 (enp5s0) | balanced | 7 | 0000:83:00.0 | 2 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu14 | RUNNING | 10.232.44.22 (enp5s0) | balanced | 1 | 0000:43:00.0 | 1 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu15 | RUNNING | 10.232.44.23 (enp5s0) | balanced | 2 | 0000:43:00.0 | 2 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + | stgraber-gpu16 | RUNNING | 10.232.44.24 (enp5s0) | balanced | 3 | 0000:03:00.0 | 3 | + +----------------+---------+-----------------------+------------------+--------------------+------------------------------------+-------------------------------+ + + + この場合、それぞれ NUMA ノードの新しい `balanced` オプションを使用し、8 つの NUMA ノード(2 ソケット AMD NPS4)にわたってスケジュールされ、一致するように GPU が選択されていることがわかります。 + + ## USB デバイスを選択するための追加の方法 + + コンテナと仮想マシンの両方向けの USB デバイスパススルーには、`vendorid` と `productid` フィールドが使われてきました。これは、いずれか 1 つのタイプの USB デバイスが 1 つだけシステムに接続されている限りは、正常に動作します。 + + + 同一のデバイスが複数存在する場合、それらを区別できないことが問題になっていました。 + + + これに対応するため、`usb` デバイスに 3 つの新しいフィールドが追加されました: + - `busnum` は USB バス番号を参照します + - `devnum` は(バス上の)USB デバイス番号を参照します + - `serial` は USB デバイスのシリアル番号を参照します(すべてのデバイスに存在するわけではない) + + + 同じフィールドは、次のような Incus リソースの完全なリストで見つけられます: + + incus query /1.0/resources + + ## VM 向けのディスク I/O スロットリング + + コンテナと仮想マシンの差がまた 1 つ埋まりました。 + + + `disk` デバイスの `limits.write` と `limits.read` プロパティは、QEMU の I/O スロットルを Incus が設定することで、仮想マシンに適切に適用されるようになりました。 + + + 1 秒あたりのバイト数、1 秒あたりの I/O 回数の両方の制限をサポートしています。 + + ## リモートごとのクライアント証明書 + + Incus のコマンドラインクライアントの設定ディレクトリー(通常は `~/.config/incus/`)内の新しい `clientcerts` フォルダーに、`.crt` と `.key` ファイルを配置できるようになりました。特定のリモートと通信するときに、それらの証明書が使われるようにします。 + + + これは、それ自身も便利ですが、`/etc/incus/config.yml` 内に追加する、グローバルリモートと組み合わせるとさらに便利になります。この機能により、それらのグローバルリモートも `/etc/incus/clientcerts` で利用できるクライアント証明書を持つことができ、システム上のすべてのユーザーがこれらの証明書を使えるようになります。 + + ## クライアント証明書証明書キーペアのマニュアル生成 + + メインの `client.crt` と `client.key` キーペアの生成を手動でトリガーする新しいコマンドが利用できるようになりました。 + + + `incus remote generate-certificate` を実行すると行えます。 + + ## `lxd-to-incus` の改良 + + `lxd-to-incus` はリリースごとに進化し続けています。 + + + 今回は、新たにリリースされた LXD 5.21 LTS からのユーザーの移行や、Alpine インストールの処理をサポートを追加しました。 + + + さらに、このツールの静的バイナリーバージョンが Github から取得できるようになりました。これにより、ユーザーはこのツールの最新版を簡単に取得できるようになり、Incus リリースの間にバグが修正されるのに役立ちます。 + + ## `incus-migrate` の改良 + + ワークロード移行ツールである `incus-migrate` にもいくつかの小さな改良が加えられています。 + + + ローカルの Incus システムを移行のターゲットシステムとして使えるようになりました。仮想マシンイメージを他の仮想化ツールからインポートするのに便利です。 + + + インポートする仮想マシンが UEFI ファームウェアを使うか、代わりにレガシーな BIOS を使うかのプロンプトを表示するようにもなりました。 + + ## イメージ制限の追加 + + 少し内部的で詳細な話で、少なくともパブリックなイメージサーバーのオペレーターだけに関係しますが、2 つの新しいイメージの制限が追加されました: + + - `requirements.nesting`: コンテナに `security.nesting=true` が設定されていることを要求する + - `requirements.cdrom_agent`: `source=agent:config` デバイスを仮想マシンに追加することを要求する + + + これら 2 つは、適切に動作するために、追加のユーザー操作が必要な特定のイメージにフラグを立てるために使用できます。その結果、壊れている可能性があるインスタンスが起動するのではなく、明確なクライアントサイドのエラーが発生します。 + + # すべての変更点 + + このリリースのすべての変更のリストは次の通りです(翻訳なし): + + [details="すべてのChangeLogを見る"] + - Translated using Weblate (Japanese) + - Translated using Weblate (Japanese) + - incus/image: Fix column handling with --all-projects + - Replace util.ValueInSlice with slices.Contains + - shared/util: Delete ValueInSlice function + - incus/image: Fix column handling with --all-projects + - incusd/instance/qemu: Relocate image requirement checks + - doc/images: Add requirements.cdrom_agent + - incusd/instance/qemu: Add support for requirements.cdrom_agent + - incusd/device/disk: Fix incorrect block volume usage + - Translated using Weblate (Japanese) + - incusd/network/ovn: Use ParseIPToNet instead of manual IPToNet and net.ParseIP + - incusd/network/ovn: Use listenAddressNet in family check + - incusd/instance/drivers: Disable architecture check on incus cp with snapshots + - Translated using Weblate (French) + - incusd/network/bridge: Set local address on all VXLAN tunnels + - incus/instance/qemu: Fix RecordOutput + - incus: add completions for instance actions and snapshots + - incus: add completions for profiles + - incusd/network/ovn: Introduce get helper + - incusd/network/ovn: Add some missing indices + - incusd/network/ovn: Use get helper + - incusd/network/ovn: Fix LogicalSwitchPortIPs logic + - incusd/network/bridge: Fix gofmt + - incusd/network/ovn: Fix gofmt + - cmd/incus: Use proper timestamp check + - cmd/incus: Use consistent date format and timezone + - client: Rename network_peer for consistency + - cmd/incusd: Rename network_peer to network_peers + - shared/api: Rename network_allocation for consistency + - incusd/db: Fix comment typoes + - incusd/db/generate: Fix bad camel case handling + - incusd/db/network_peers: Fix duplicate type definitions + - incusd/auth: Drop Permission type + - incusd/auth: Add boilerplate doc strings + - incusd/images: Properly handle null creation and expiry dates + - incus: add completions for remotes + - incus: add completions for projects + - incusd/images: Fix reporting of images in multiple projects + - github: Add static build of lxd-to-incus + - lxd-to-incus: Add support for Alpine service name + - lxd-to-incus: Re-organize target list + - lxd-to-incus: Add support for APK + - Makefile: Add OVN IC to update-ovsdb + - incusd/network: Update OVS/OVN schemas + - incusd/network/ovn: Add IC clients + - incusd/network/ovn: Add GetName to NB client + - incusd/network/ovn: Add GetGateways to ICSB + - incusd/network/ovn: Introduce new errors + - incusd/network/ovn: Add CreateTransitSwitch and DeleteTransitSwitch to ICNB + - incusd/device/gpu_sriov: Add locking + - incusd/device/gpu_sriov: Re-locate vfio-pci loading + - incusd/device/gpu_sriov: Rework VF allocation logic + - incus/remote: Add a generate-certificate sub-command + - i18n: Update translation templates + - incusd/drivers/qmp: Add SetBlockThrottle + - incusd/device/disk/config: Add DiskLimits + - incusd/device/disk: Re-shuffle limit parsing + - incusd/device/disk: Add disk limits on VMs + - incusd/device/disk: Support live limits update for VMs + - incusd/instance/qemu: Support disk I/O limits + - incus/remote: Add missing docstrings + - incusd/certificates: Improve token handling when clustered + - cmd/incusd/api_1.0: Update context + - cmd/incusd/api_cluster: Update context + - cmd/incusd/api_internal: Update context + - cmd/incusd/daemon: Update context + - cmd/incusd/api_project: Update context + - cmd/incusd/certificates: Update context + - cmd/incusd/images: Update context + - cmd/incusd/instance: Update context + - cmd/incusd/network: Update context + - cmd/incusd/operations: Update context + - cmd/incusd/profiles: Update context + - cmd/incusd/storage: Update context + - cmd/incusd/warnings: Update context + - incusd/devices: Skip isolated threads from NUMA CPUs + - incusd/devices: Restrict CPU threads by NUMA node + - incusd/instance/qemu: Add support for limits.cpu.nodes + - incusd/device/gpu: Add support for limits.cpu.nodes for VF selection + - incusd: Fix import shadowing + - incusd/images: Fix potential race condition + - incusd/instance/qemu: Add support for NUMA node restrictions for memory + - incusd/apparmor/qemu: Silence apparmor failures + - incusd/network/ovs: Introduce new errors + - incusd/network/ovn/nb: Move SetChassisGroupPriority to new function signature + - incusd/network/ovn/sb: Move GetLogicalRouterPortActiveChassisHostname to new function signature + - incusd/network/ovs: Move GetBridge to new function signature + - incusd/network/ovs: Move CreateBridge to new function signature + - incusd/network/ovs: Move DeleteBridge to new function signature + - incusd/network/ovs: Move CreateBridgePort to new function signature + - incusd/network/ovs: Move GetChassisID to new function signature + - incusd/network/ovs: Move GetOVNBridgeMappings to new function signature + - incusd/network: Update for function changes + - incusd/device/nic: Update for function changes + - incusd: Update for function changes + - doc: Fix bad snapshot syntax + - Translated using Weblate (French) + - doc: Fix token creation procedure + - incusd/network/ovn/nb: Add GetLogicalSwitch + - incusd/network/ovn/nb: Replace ChassisGroupChassisDelete with SetChassisGroupPriority + - incusd/network/ovn/nb: Port CreateLogicalRouterPort to OVSDB + - incusd/network/ovn/nb: Replace LogicalRouterPortLinkChassisGroup with CreateLogicalRouterPort + - incusd/network/ovn/nb: Port CreateChassisGroup to OVSDB + - incusd/network/ovn/nb: Port CreateLogicalSwitch to OVSDB + - incusd/network/ovn: Update for function changes + - incusd/network/ovn: Remove state references + - incusd/state: Add OVNNB and OVNSB handles + - incusd: Update to use state for OVN + - incusd/device: Make init function return error + - incusd/device: Add OVN check on nicOVN + - client: Still return response on RawQuery error + - incus/query: Respect --raw for errors + - incusd/network/acl: Add OVN check + - incusd/network: Make init function return error + - incusd/network: Add OVN check on ovn driver + - incusd/api: Re-order config checks + - incusd: Add OVN loader + - Translated using Weblate (French) + - incusd/network/ovn/nb: Port CreateLogicalSwitchPort to OVSDB + - incusd/network/ovn/nb: Port DeleteLogicalSwitchPort to OVSDB + - incusd/network/ovn/nb: Port DeleteLogicalRouterPort to OVSDB + - incusd/network/ovn: Update for function changes + - incusd/network/ovs: Port GetOVNSouthboundDBRemoteAddress to OVSDB + - incusd/network/ovs: Port DeleteBridgePort to OVSDB + - incusd/network/ovs: Port GetInterfaceAssociatedOVNSwitchPort to OVSDB + - incusd/network/ovs: Align GetChassisID with other functions + - incusd: Update for OVS function changes + - incusd/network/ovn/icsb: Fix bad DB schema + - incusd/network/ovn/nb: Introduce GetLogicalRouterPort + - incusd/network/ovn/nb: Extend OVNSwitchPortOpts to handle router ports + - incusd/network/ovn/nb: Change type of RouterPort field to OVNRouterPort + - incusd/network/ovn/nb: Port DeleteChassisGroup to OVSDB + - incusd/network/ovn/icnb: Update DeleteTransitSwitch to handle missing switches + - incusd/network/ovn: Update for function changes + - Translated using Weblate (French) + - incus/completion: do not add a space after remote names completion + - incusd/device/disk: Disable virtiofsd caching + - incus-agent: Cleanup mount logic + - Translated using Weblate (French) + - incus: expose parseVolume to entire package + - incus: add completions for storage pools and volumes + - incusd/device/gpu_sriov: Fix default handling + - doc/packaging: Add mention of documentation + - incusd/auth: Fix --all-projects for restricted users + - doc: Add third party tools page + - gomod: Update dependencies + - incusd/auth/tls: Prevent project modifications + - doc: Update wordlist + - internal/usbid: allow path override of usb.ids path + - incus/completion: fix image names completion + - doc/environment: document INCUS_USBIDS_PATH + - incusd/instance/qemu/agent: Check for semanage + - incusd/project: Fix config name in ImageProjectFromRecord + - incus/restart: Fix long description + - i18n: Update translations + - lxd-to-incus: Handle common existing bridges + - shared/simplestreams: Remove defaultOS + - shared/simplestreams: Add NewLocalClient + - incus-simplestreams: Introduce new command + - incus-simplestreams: Simplify delete logic + - doc: Re-organize image server doc + - doc: Add section for incus-simplestreams + - incusd/seccomp: Add support for pidfd threads + - incus: add completions for clusters + - incus: add completions for cluster groups + - incus: add completions for cluster roles + - incus: add completions for config devices + - incus: add completions for config templates + - update translations + - doc: Update references to mage docs + - doc/backup: Remove bad reference + - incus: add completions for network acls + - shared/api: Add new structs to support configuration metadata + - client: Add GetMetadataConfiguration + - incusd: Rename documentation.go -> metadata.go + - doc/rest-api: Refresh swagger YAML + - shared/api/metadata: Add GetKeys to simplify usage + - incusd: Add support for JWT authentication + - gomod: Update dependencies + - tests: Add tls2jwt tool + - tests: Add JWT authentication test + - api: auth_tls_jwt + - doc/authentication: Add section on JWT + - doc/instances: Remove size.state requirement for live migration + - incusd/instance/qemu: Allow live migration without size.state + - shared/idmap: Support uid/gid in subuid/subgid + - shared/cliconfig: Copy clientcerts on remote copy + - shared/cliconfig: Add HasRemoteClientCertificate + - shared/cliconfig: Support per-remote client certificates + - doc: Add clientcerts + - incusd/cluster/config: Add oidc.claim + - incusd/auth/oidc: Add support for using a specific claim as username + - incusd: Pass OIDC claim to verifier + - api: oidc_claim + - doc: Update configs + - doc/howto/instances: Mention extra resources in ISO guidea + - doc/installing: Add Debian backport + - doc: Add backported to dictionary + - lxd-to-incus: Add support for LXD 5.21 + - shared/cliconfig: Ensure client certificate key is 0600 + - api: device_usb_serial + - doc: Add busnum, devnum and serial to USB devices + - shared/api: Add Serial to ResourcesUSBDevice + - incusd/resources: Add USB Serial + - incusd/devices/usb: Add serial, busnum and devnum options + - doc/rest-api: Refresh swagger YAML + - incusd/instance/qemu: Fix handling of > 64 limits.cpu + - incusd/device/gpu_sriov: Implement NUMA fallback + - incus: add completions for network forwards + - incus: add completions for network load balancers + - shared/validate: Remove stringInSlice + - shared/validate: Add And and Or functions + - shared/util: Move ParseUint32Range + - incusd/project: Update for ParseUint32Range + - doc/instance_options: Remove mention of limits.cpu.nodes from container-only section + - incusd/devices: Better handle bad config + - api: numa_cpu_balanced + - internal/instance: Add support for balanced NUMA nodes + - doc: Update configs + - incusd/instance/common: Add NUMA balancing + - incusd/instance/lxc: Add support for balanced NUMA allocation + - incusd/instance/qemu: Add support for balanced NUMA allocation + - incusd/devices: Add support for balanced NUMA allocation + - incusd/device/gpu_sriov: Simplify NUMA logic + - doc/cloud-init: Don't mention non-existing remotes + - doc/howto/images_remote: Fix wording around image servers + - doc/benchmark: Fix install command + - incusd/instance/common: Fix CanMigrate mutating devices + - incusd/instance/qemu: Reduce agent queries + - incusd/metrics: Don't filter out all server metrics + - incusd/auth/tls: Include project restrictions for metrics certificates + - incusd/auth/tls: Return project-aware checker for metrics + - incusd/metrics: Use project-specific checker if no global access + - internal/server/instance/lxd: add support for image.requirments.nesting + - api: add image_restriction_nesting + - doc/images: introduce requirements.nesting + - Show the count values in snapshot count mismatch error + - incus/admin/init: Use btrfs subvol in --auto + - incus-migrate: Clarify that disk image files must be raw + - incusd/network/ovn/icnb: Fix comment + - incusd/project: Re-format the comments + - incusd/project: Fix bad default value + - doc: Update configs + - incus/migrate: Add CSM support + - incusd/storage/backend: Better handle name conflicts + - incus-migrate: Support using the local server + - api: network_integrations + - shared/api: Add type and target_integration fields to NetworkPeersPost + - incusd/db/cluster: Add networks_integrations + - incusd/db/cluster: Re-generate schema + - incusd/db/cluster: Add generated DB code for network integrations + - incusd/db: Update network peer DB query functions + - client: Add check for network_integrations in CreateNetworkPeer + - incus/network/peer: Add support for network peer types + - shared/api: Add network integrations + - client: Add network integration functions + - incus/network: Introduce support for integrations + - incusd/auth: Add network integration functions + - shared/api: Add lifecycle events for network integrations + - incusd/lifecycle: Add network integration events + - incusd: Add network integration API + - incusd/db: Add GetNetworkPeersURLByIntegration + - incusd/network_integration: Add UsedBy field + - incusd/network_integrations: Add validator + - incusd/network/ovn: Add support for peering with OVN IC + - incusd/project: Add restricted.networks.integrations + - incusd/project: Add NetworkIntegrationAllowed + - incusd/network/integrations: Respect project restrictions + - incusd/network/ovn: Add support for integration restrictions + - incusd/auth/openfga: Update the model + - incusd/auth/openfga: Update the generated model + - incusd/auth/openfga: Handle model updates + - incusd: Remove openfga.store.model_id + - incusd/db/cluster: Remove openfga.store.model_id + - doc/ovn_peers: Add remote peering + - doc: Add documentation for network integrations + - doc/rest-api: Refresh swagger YAML + - i18n: Update translation templates + - doc: Update configs + - gomod: Update dependencies + [/details] + + # ドキュメント + + Incus のドキュメントはこちらです: + https://incus-ja.readthedocs.io/ja/latest/ (日本語訳) + https://linuxcontainers.org/incus/docs/main/ (原文) + + # パッケージ + + Incus の開発元は、通常リリースの tarball のみをリリースするため、公式の Incus パッケージはありません。Incus を実行するために使えるオプションを以下にいくつか示します。 + + ## Linux 上に Incus サーバーをインストールする + + Incus はほとんどの一般的な Linux ディストリビューションで利用できます。インストール手順の詳細は、Incus のドキュメントを参照してください。 + + https://incus-ja.readthedocs.io/ja/latest/installing/ (日本語訳) + https://linuxcontainers.org/incus/docs/main/installing/ (原文) + + ## Incus クライアントの Homebrew パッケージ + + HomeBrew 経由で、Linux と macOS 向けにクライアントツールが利用できます。 + + https://formulae.brew.sh/formula/incus + + ## Incus クライアントの Chocolatey パッケージ + + Chocolatey 経由で、Windows ユーザー向けにクライアントツールが利用できます。 + + https://community.chocolatey.org/packages/incus/0.6 + + ## Incus クライアントの Winget パッケージ + + Winget 経由で、Windows ユーザー向けにクライアントツールが利用できます。 + + https://winstall.app/apps/LinuxContainers.Incus + + # サポート + + 現在は初期段階ですので、Incus の各リリースは、次のリリースが出るまでしかサポートされません。LXC と LXCFS のリリースと合わせて LTS リリースを計画していますので、この状況はここ数ヶ月で変わるでしょう。 + + コミュニティサポートはこちらから : https://discuss.linuxcontainers.org + 商用サポートはこちらから : https://zabbly.com/incus + バグはこちらから報告できます : https://github.com/lxc/incus/issues