|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
nm-configuratorによる静的ネットワーク
|
warning
宣言型ネットワーキングは*技術プレビュー*の状態で、限られたサポートがあります。そのため、運用環境での使用は推奨されません。 |
nm-configurator ノードごとの設定を使用して、NICのMACアドレスに基づいて個々のマシンにIPアドレスを静的に割り当てることができます。
このソリューションはリモートIPAMプロバイダーを必要としませんが、ユーザーが既知のMACアドレスとIPアドレスのマッピングを維持する必要があります。
この例では、Elementalイメージをカスタマイズし、起動時に静的ネットワーク設定を早期に適用するyip configを含めます。
以下の設定は、非常に基本的なネットワークセットアップで2ノードをカバーします。
Unresolved include directive in modules/ja/pages/operator-operational-tasks/declarative-networking/networking-static.adoc - include::example$network/yip-nmc-static-config.yaml[]
カスタムOSイメージに静的ネットワーク設定を含める
Elementalイメージを拡張して、`/system/oem`に静的ネットワーク設定を含めることができます。https://github.com/rancher/elemental-toolkit[Elemental Toolkit]が実行されている任意のElemental対応OSは、任意のステージを実行する際にこのディレクトリ内の設定を評価します。 さらに、必要な`nmc`バイナリをインストールするためにイメージをカスタマイズします。
# The version of Elemental to modify
FROM registry.suse.com/suse/sl-micro/6.0/baremetal-os-container:latest
# Install the static network config
COPY 99_static_network_config.yaml /system/oem/99_static_network_config.yaml
# Install nmc
RUN curl -LO https://github.com/suse-edge/nm-configurator/releases/download/v0.3.1/nmc-linux-x86_64 && \
install -o root -g root -m 0755 nmc-linux-x86_64 /usr/sbin/nmc
# IMPORTANT: /etc/os-release is used for versioning/upgrade.
ARG IMAGE_REPO=norepo
ARG IMAGE_TAG=latest
RUN \
sed -i -e "s|^IMAGE_REPO=.*|IMAGE_REPO=\"${IMAGE_REPO}\"|g" /etc/os-release && \
sed -i -e "s|^IMAGE_TAG=.*|IMAGE_TAG=\"${IMAGE_TAG}\"|g" /etc/os-release && \
sed -i -e "s|^IMAGE=.*|IMAGE=\"${IMAGE_REPO}:${IMAGE_TAG}\"|g" /etc/os-release
# IMPORTANT: it is good practice to recreate the initrd and re-apply `elemental-init`
RUN elemental init --force elemental-rootfs,grub-config,dracut-config,cloud-config-essentials,elemental-setup
OSコンテナはビルドして、レジストリにプッシュできます。
docker build --build-arg IMAGE_REPO=myrepo/static-network-os \
--build-arg IMAGE_TAG=v1.1.1 \
-t myrepo/static-network-os:v1.1.1 .
docker push myrepo/static-network-os:v1.1.1
静的ネットワーク設定がイメージに含まれているため、異なる設定を持つ異なるイメージをビルドおよび維持する必要があります。おそらく、ノードプールごとまたはクラスターごとに1つのイメージが必要です。カスタムOSイメージは、初期ISOブータブルイメージを作成するために維持する必要があります(SeedImageを介して)、また、マシンのアップグレード時にも必要です。望ましい静的ネットワーク設定は、ManagedOSImageと共に使用されるOSイメージに存在する必要があります。そうでないと、アップグレードされたシステムからブートする際に設定が欠落します。
カスタムOSイメージは、そのまま使用してブータブルrawディスクイメージを構築することもできます:
apiVersion: elemental.cattle.io/v1beta1
kind: SeedImage
metadata:
name: my-raw-image
namespace: fleet-default
spec:
type: raw
baseImage: myrepo/static-network-os:v1.1.1
registrationRef:
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
name: my-registration
namespace: fleet-default
ブータブルISOを作成する
このOSコンテナイメージからISOコンテナをビルドすることができます。Elementalイメージをカスタマイズする方法についての詳細は、ドキュメントを参照してください。
FROM myrepo/static-network-os:v1.1.1 AS os
FROM myrepo/static-network-os:v1.1.1 AS builder
WORKDIR /iso
COPY --from=os / rootfs
# work around buildah issue: https://github.com/containers/buildah/issues/4242
RUN rm -f rootfs/etc/resolv.conf
RUN elemental build-iso \
dir:rootfs \
--bootloader-in-rootfs \
--squash-no-compression \
-o /output -n "elemental"
FROM busybox
COPY --from=builder /output /elemental-iso
ENTRYPOINT ["busybox", "sh", "-c"]
docker build -t myrepo/static-network-iso:v1.1.1 .
docker push myrepo/static-network-iso:v1.1.1
ISOコンテナがあなたのレジストリに公開されると、他のElemental配布ISOイメージと同様にSeedImageで参照できます。
apiVersion: elemental.cattle.io/v1beta1
kind: SeedImage
metadata:
name: my-iso
namespace: fleet-default
spec:
type: iso
baseImage: myrepo/static-network-iso:v1.1.1
registrationRef:
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
name: my-registration
namespace: fleet-default
インストールメディアが起動すると、静的ネットワーク設定が評価され、その後、ベースイメージの一部としてシステムにインストールされることに注意してください。