|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
种子映像参考
一个 SeedImage 资源允许构建一个安装介质,可以用来将 SUSE® Rancher Prime: OS Manager 安装到节点上。
它需要一个 baseImage,即一个指向 SUSE® Rancher Prime: OS Manager 安装 .iso 映像或节点容器映像的 URL,以及一个 registrationRef 引用,指向一个 MachineRegistration 资源,从中提取注册部分的 SUSE® Rancher Prime: OS Manager 配置并注入到介质中,以生成最终的 种子映像。
也可以在 cloud-config 字段中注入自定义内容。支持 yip 和 cloud-init 语法。有关完整信息,请参见 Cloud Config Reference。
一旦种子映像准备就绪,下载 URL 将在 .status.downloadURL 字段中共享。
它将在 cleanupAfterMinutes 分钟内可供下载(默认是 60,1 小时),之后将被删除。
将 retriggerBuild 设置为 true 会重新触发种子映像构建过程,而将 cleanupAfterMinutes 设置为 0 会使种子映像保留,直到 SeedImage 资源被删除。
SeedImage 资源还有一个 type 字段,可以设置为 iso,以构建 ISO,或 raw,以构建原始磁盘映像。原始磁盘映像可以直接复制到目标驱动器,并在首次启动时会自动启动到恢复分区,以展开驱动器以使用可用磁盘空间并注册节点,之后将以与 .iso 映像安装相同的方式重启。
如果未为种子映像指定 BuildContainer,则将根据默认值和 type 自动填充。
为不同平台构建种子映像是通过使用 targetPlatform 字段实现的。平台通过 os/arch 指定,例如 (linux/x86_64 或 linux/aarch64)。默认情况下,映像将为操作员所在的平台构建。
|
种子映像可能会占满本地存储
种子映像保存在节点的本地存储中:请注意您同时启动的 |
SeedImageSpec 参考
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
baseImage |
字符串 |
空 |
用于构建种子映像的基础元素图像。 |
registrationRef |
对象引用。 |
null |
对将用于所有已安装机器进行注册的MachineRegistration的引用。 |
buildContainer |
对象 |
null |
用于生成可下载图像的自定义容器的设置。(请参见文档)。 |
cleanupAfterMinutes |
整数 |
60 |
构建的种子映像将在此时间后被清理。活动下载将在图像被移除之前完成。 |
retriggerBuild |
布尔 |
false |
触发重新构建已清理的种子映像。 |
size |
字符串 |
6Gi |
指定用于存储图像的卷的大小。 |
type |
字符串 |
iso |
指定要构建的种子映像的类型: |
targetPlatform |
字符串 |
空 |
指定构建图像的目标平台。示例: |
cloud-config |
对象 |
null |
包含将要嵌入生成镜像中的 cloud-config 数据。(请参见文档)。 |
BuildContainer
可以使用 buildContainer 设置来自定义 build pod 中的 SeedImage 初始化容器。
例如,在构建自定义 Elemental 镜像时可能会出现这种情况。
buildContainer:
name: "custom-build"
image: my.registry.com/elemental-custom-builder:1.2.3
command:
- build-image
args:
- foo
- bar
imagePullPolicy: Always
请注意,容器还将额外挂载两个卷,分别位于 /iso 和 /overlay。
种子映像构建过程期望构建容器将构建工件放置在 /iso/$(ELEMENTAL_OUTPUT_NAME)。
配置文件可在以下位置获得:
-
/overlay/reg/livecd-cloud-config.yaml:可以被elemental-register用于注册机器的配置文件。 -
/overlay/iso-config/cloud-config.yaml:在SeedImage.spec.cloud-config中定义的 cloud-config
以下环境变量列表也可以在自定义构建容器中使用:
-
ELEMENTAL_DEVICE:MachineRegistration.spec.config.elemental.install.device的值。 -
ELEMENTAL_REGISTRATION_URL:MachineRegistration 的唯一 URL。 -
ELEMENTAL_BASE_IMAGE:在SeedImage中定义的基础镜像。 -
ELEMENTAL_OUTPUT_NAME:构建工件的预期文件名。
ISO 和 Raw 镜像
SeedImage 能够构建 iso 或 raw 类型的镜像。
请注意,Elemental 提供两种不同类型的镜像,iso 或 container 类型。请参见 ManagedOSversion’s type。
在构建 iso SeedImage 时,可以使用 iso Elemental 镜像。iso 镜像包含预构建的 .iso 工件。这是官方 ISO 的默认 Elemental 交付方式,因此每次定义 SeedImage 时都不需要重新构建。
点击这里查看 ISO 种子映像示例
apiVersion: elemental.cattle.io/v1beta1
kind: SeedImage
metadata:
name: fire-iso
namespace: fleet-default
spec:
type: iso
baseImage: registry.suse.com/suse/sl-micro/6.0/baremetal-iso-image:2.1.1-3.36
registrationRef:
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
name: fire-nodes
namespace: fleet-default
或者,在构建 raw SeedImage 时,您应该使用 container Elemental 镜像。这些镜像在升级过程中也会使用(见:管理操作系统镜像,但也可以用于构建`raw` SeedImages。
点击这里查看原始种子映像示例
apiVersion: elemental.cattle.io/v1beta1
kind: SeedImage
metadata:
name: fire-raw
namespace: fleet-default
spec:
type: raw
baseImage: registry.suse.com/suse/sl-micro/6.0/baremetal-os-container:2.1.1-3.29
registrationRef:
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
name: fire-nodes
namespace: fleet-default
多平台支持
Elemental 为大多数变体提供 linux/x86_64 和 linux/aarch64 镜像。
为了确定 ManagedOSVersion 镜像是否支持两个平台,您可以验证 ManagedOSVersion.spec.metadata.platform 值。(请参见 文档)。
在定义 SeedImage 时,您可以将此值用于镜像的 targetPlatform。
如果 targetPlatform 留空,则默认使用运行 elemental-operator 的平台。
点击这里查看原始 aarch64 种子映像示例
apiVersion: elemental.cattle.io/v1beta1
kind: SeedImage
metadata:
name: fire-raw-aarch64
namespace: fleet-default
spec:
targetPlatform: linux/aarch64
type: raw
baseImage: registry.suse.com/suse/sl-micro/6.0/baremetal-os-container:2.1.1-3.29
registrationRef:
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
name: fire-nodes
namespace: fleet-default
可下载的 URL
SeedImage 资源通过两个状态条件跟踪种子映像构建过程:
-
准备就绪:跟踪所有执行实际构建过程所需的子资源的创建。
-
种子映像准备就绪:跟踪子资源中构建过程的状态.
或者,也可以等待 SeedImage pod 准备就绪:
kubectl wait --for=condition=ready pod -n fleet-default fire-img
在下载任何工件之前,等待准备条件是一种最佳实践。
一旦 SeedImage 准备就绪,.status.downloadURL 将包含可下载的 URL。
请注意,URL 将使用与 Rancher 相同的端点,因此在使用自签名证书时要注意 HTTPS 验证。
kubectl get seedimage -n fleet-default fire-img -o jsonpath="{.status.downloadURL}"
镜像的校验和也可用以验证下载是否正确:
kubectl get seedimage -n fleet-default fire-img -o jsonpath="{.status.checksumURL}"