运行的应用程序
第 1 章 使用 Kustomize 清单部署应用程序
您可以将
kustomize
配置管理工具与应用程序清单一起使用来部署应用程序。阅读以下流程,以了解 Kustomize 在 MicroShift 中的工作方式。
1.1. Kustomize 如何与清单一起工作来部署应用程序
kustomize
配置管理工具与 MicroShift 集成。您可以使用 Kustomize 和 OpenShift CLI (
oc
)将自定义应用到应用程序清单,并将这些应用程序部署到 MicroShift 集群。
kustomization.yaml
文件是资源及自定义的规格。
Kustomize 使用
kustomization.yaml
文件加载资源,如应用程序,然后应用您想要的应用程序清单的任何更改,并生成具有 overlaid 更改的清单副本。
使用带有覆盖的清单副本会使应用程序的原始配置文件保持不变,同时允许您有效地部署应用程序的迭代和自定义。
然后,您可以使用
oc
命令在 MicroShift 集群中部署应用程序。
1.1.1. MicroShift 如何使用清单
在每次开始时,MicroShift 会在以下清单目录中搜索 Kustomize 清单文件:
/etc/microshift/manifests
/etc/microshift/manifests.d/*
/usr/lib/microshift/
/usr/lib/microshift/manifests.d/*
MicroShift 会自动运行与
kubectl apply -k
命令等效的命令,以便在搜索目录中存在以下文件类型时将清单应用到集群:
kustomization.yaml
kustomization.yml
kustomization
这从多个目录自动加载意味着您可以管理 MicroShift 工作负载,使不同工作负载可以独立运行。
位置 | 作用 |
---|---|
|
1.2. 覆盖清单路径列表
您可以使用新的单一路径或将新的 glob 模式用于多个文件来覆盖默认清单路径列表。使用以下步骤自定义清单路径。
通过插入您自己的值并运行以下命令之一来覆盖默认路径列表:
将配置文件中的
manifests.kustomizePaths
设置为 <
"/opt/alternate/path
">。
在用于 glob 模式的配置文件中将
kustomizePaths
设置为
,"/opt/alternative/path.d
mdadm"。
manifests:
kustomizePaths:
- <location> 1
- 1
-
使用
"/opt/alternate/path"
或 glob 模式将每个位置条目设置为准确路径,使用"/opt/alternative/path.d8:0:1::"
。 要禁用加载清单,请将配置选项设置为空列表。manifests: kustomizePaths: []
注意配置文件完全会覆盖默认值。如果设置了
kustomizePaths
值,则只使用配置文件中的值。将值设为空列表可禁用清单加载。
1.3. 使用清单示例
本例演示了使用
/etc/microshift/manifests
目录中的
kustomize
清单自动部署 BusyBox 容器。
运行以下命令来创建 BusyBox 清单文件:
定义目录位置:
$ MANIFEST_DIR=/etc/microshift/manifests
创建目录:
$ sudo mkdir -p ${MANIFEST_DIR}
将 YAML 文件放在目录中:
sudo tee ${MANIFEST_DIR}/busybox.yaml &>/dev/null <<EOF apiVersion: v1 kind: Namespace metadata: name: busybox apiVersion: apps/v1 kind: Deployment metadata: name: busybox namespace: busybox-deployment spec: selector: matchLabels: app: busybox template: metadata: labels: app: busybox spec: containers: - name: busybox image: BUSYBOX_IMAGE command: [ "/bin/sh", "-c", "while true ; do date; sleep 3600; done;" ] 接下来,运行以下命令来创建kustomize
清单文件: 将 YAML 文件放在目录中:sudo tee ${MANIFEST_DIR}/kustomization.yaml &>/dev/null <<EOF apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: busybox resources: - busybox.yaml images: - name: BUSYBOX_IMAGE newName: busybox:1.35 运行以下命令重启 MicroShift 以应用清单:$ sudo systemctl restart microshift
运行以下命令应用清单并启动
busybox
pod:
$ oc get pods -n busybox
第 2 章 在 RHEL for Edge 镜像中嵌入 MicroShift 应用程序的选项
您可以在 Red Hat Enterprise Linux for Edge (RHEL for Edge)镜像中嵌入基于微服务的工作负载和应用程序,以便在 MicroShift 集群中运行。嵌入式应用程序可以直接安装在边缘设备上,以便在 air-gapped、断开连接或离线环境中运行。
2.1. 将应用程序 RPM 添加到 rpm-ostree 镜像
如果您的应用程序包含 API、容器镜像和配置文件,如清单等部署,您可以构建应用程序 RPM。然后,您可以在 RHEL for Edge 系统镜像中添加 RPM。 以下是在完全自包含的操作系统镜像中嵌入应用程序或工作负载的流程概述: 构建包含应用程序清单的您自己的 RPM。 将 RPM 添加到用于安装 MicroShift 的红帽构建的蓝图中。 将工作负载容器镜像添加到同一蓝图中。 创建可引导 ISO。 有关在 RHEL for Edge 镜像中准备和嵌入应用程序的逐步教程,请使用以下教程: 嵌入应用程序教程