LXD で OVN をセットアップするには#
スタンドアロンのネットワークとしてまたは小さな LXD クラスタとして基本的な OVN ネットワークをセットアップするには以下の項を参照してください。
スタンドアロンの OVN ネットワークをセットアップする#
外向きの接続のために LXD が管理する親のブリッジネットワーク (例: lxdbr0
) に接続するスタンドアロンの OVN ネットワークを作成するには以下の手順を実行してください。
ローカルサーバーに OVN ツールをインストールします。
sudo apt install ovn-host ovn-central
OVN の統合ブリッジを設定します。
sudo ovs-vsctl set open_vswitch . \ external_ids:ovn-remote=unix:/var/run/ovn/ovnsb_db.sock \ external_ids:ovn-encap-type=geneve \ external_ids:ovn-encap-ip=127.0.0.1
OVN ネットワークを作成します。
lxc network set <parent_network> ipv4.dhcp.ranges=<IP_range> ipv4.ovn.ranges=<IP_range> lxc network create ovntest --type=ovn network=<parent_network>
ovntest
ネットワークを使用するインスタンスを作成します。lxc init ubuntu:22.04 c1 lxc config device override c1 eth0 network=ovntest lxc start c1
lxc list
を実行してインスタンスの情報を表示します。user@host:~$
lxc list
+------+---------+---------------------+----------------------------------------------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+---------+---------------------+----------------------------------------------+-----------+-----------+
| c1 | RUNNING | 192.0.2.2 (eth0) | 2001:db8:cff3:5089:216:3eff:fef0:549f (eth0) | CONTAINER | 0 |
+------+---------+---------------------+----------------------------------------------+-----------+-----------+
OVN 上に LXD クラスタをセットアップする#
OVN ネットワークを使用する LXD クラスタをセットアップするには以下の手順を実行してください。
LXD と同様に、 OVN の分散データベースは奇数のメンバーで構成されるクラスタ上で動かす必要があります。 以下の手順は最小構成の 3 台のサーバーを使います。 3 台のサーバーでは OVN の分散データベースと OVN コントローラの両方を動かします。 さらに LXD クラスタに OVN コントローラのみを動かすサーバーを任意の台数追加できます。 4 台のマシンを使う完全なチュートリアルは上にリンクした YouTube の動画を参照してください。
OVN の分散データベースを動かしたい 3 台のマシンで次の手順を実行してください。
OVN ツールをインストールします。
sudo apt install ovn-central ovn-host
マシンの起動時に OVN サービスが起動されるように自動起動を有効にします。
systemctl enable ovn-central systemctl enable ovn-host
OVN を停止します。
systemctl stop ovn-central
マシンの IP アドレスをメモします。
ip -4 a
/etc/default/ovn-central
を編集します。以下の設定をペーストします (
<server_1>
,<server_2>
and<server_3>
をそれぞれのマシンの IP アドレスに、<local>
をあなたがいるマシンの IP アドレスに置き換えてください)。最初のマシン
OVN_CTL_OPTS=" \ --db-nb-addr=<local> \ --db-nb-create-insecure-remote=yes \ --db-sb-addr=<local> \ --db-sb-create-insecure-remote=yes \ --db-nb-cluster-local-addr=<local> \ --db-sb-cluster-local-addr=<local> \ --ovn-northd-nb-db=tcp:<server_1>:6641,tcp:<server_2>:6641,tcp:<server_3>:6641 \ --ovn-northd-sb-db=tcp:<server_1>:6642,tcp:<server_2>:6642,tcp:<server_3>:6642"
2番目と3番目のマシン
OVN_CTL_OPTS=" \ --db-nb-addr=<local> \ --db-nb-cluster-remote-addr=<server_1> \ --db-nb-create-insecure-remote=yes \ --db-sb-addr=<local> \ --db-sb-cluster-remote-addr=<server_1> \ --db-sb-create-insecure-remote=yes \ --db-nb-cluster-local-addr=<local> \ --db-sb-cluster-local-addr=<local> \ --ovn-northd-nb-db=tcp:<server_1>:6641,tcp:<server_2>:6641,tcp:<server_3>:6641 \ --ovn-northd-sb-db=tcp:<server_1>:6642,tcp:<server_2>:6642,tcp:<server_3>:6642"
OVN を起動します。
systemctl start ovn-central
残りのマシンでは
ovn-host
のみインストールし、自動起動を有効にしてください。sudo apt install ovn-host systemctl enable ovn-host
全てのマシンで Open vSwitch (変数は上記の通りに置き換えてください) を設定します。
sudo ovs-vsctl set open_vswitch . \ external_ids:ovn-remote=tcp:<server_1>:6642,tcp:<server_2>:6642,tcp:<server_3>:6642 \ external_ids:ovn-encap-type=geneve \ external_ids:ovn-encap-ip=<local>
全てのマシンで
lxd init
を実行して LXD クラスタを作成してください。 最初のマシンでクラスタを作成します。 次に最初のマシンでlxc cluster add <machine_name>
を実行してトークンを出力し、他のマシンで LXD を初期化する際にトークンを指定して他のマシンをクラスタに参加させます。最初のマシンでアップリンクネットワークを作成し設定します。
lxc network create UPLINK --type=physical parent=<uplink_interface> --target=<machine_name_1> lxc network create UPLINK --type=physical parent=<uplink_interface> --target=<machine_name_2> lxc network create UPLINK --type=physical parent=<uplink_interface> --target=<machine_name_3> lxc network create UPLINK --type=physical parent=<uplink_interface> --target=<machine_name_4> lxc network create UPLINK --type=physical \ ipv4.ovn.ranges=<IP_range> \ ipv6.ovn.ranges=<IP_range> \ ipv4.gateway=<gateway> \ ipv6.gateway=<gateway> \ dns.nameservers=<name_server>
必要な値を決定します。
- アップリンクネットワーク
アクティブな OVN シャーシがクラスタメンバー間で移動できるようにするため、ハイアベイラビリティな OVN クラスタには共有されたレイヤー 2 ネットワークが必須です (これにより OVN のルータの外部 IP が実質的に別のホストから到達可能にできます)。
そのため管理されていないブリッジインタフェースまたは使用されていない物理インタフェースを OVN アップリンクで使用される物理ネットワークの親として指定する必要があります。 以下の手順は手動で作成した管理されていないブリッジを使用する想定です。 このブリッジをセットアップする手順は ネットワークブリッジの設定 を参照してください。
- ゲートウェイ
ip -4 route show default
とip -6 route show default
を実行してください。- ネームサーバー
resolvectl
を実行してください。- IP の範囲
割り当てられた IP を元に適切な IP の範囲を使用してください。
引き続き最初のマシンで LXD を OVN DB クラスタと通信できるように設定します。 そのためには
/etc/default/ovn-central
内のovn-northd-nb-db
の値を確認し、以下のコマンドで LXD に指定します。lxc config set network.ovn.northbound_connection <ovn-northd-nb-db>
最後に (最初のマシンで) 実際の OVN ネットワークを作成します。
lxc network create my-ovn --type=ovn
OVN ネットワークをテストするには、インスタンスを作成してネットワークが接続できるか確認します。
lxc launch images:ubuntu/22.04 c1 --network my-ovn lxc launch images:ubuntu/22.04 c2 --network my-ovn lxc launch images:ubuntu/22.04 c3 --network my-ovn lxc launch images:ubuntu/22.04 c4 --network my-ovn lxc list lxc exec c4 bash ping <IP of c1> ping <nameserver> ping6 -n www.linuxcontainers.org