第 2 章 Operator 如何使用红帽构建的 MicroShift
您可以将 Operator 与 Red Hat build of MicroShift 搭配使用,以创建用于监控集群中运行的服务的应用程序。操作员可以管理应用程序及其资源,如部署数据库或消息总线。作为在集群中运行的自定义软件,可以使用 Operator 来实现和自动化常见操作。
Operator 提供了更本地化的配置体验,并与 Kubernetes API 和 CLI 工具(如 kubectl
和 oc
)集成。Operator 是专为您的应用程序而设计的。Operator 允许您配置组件而不是修改全局配置文件。
红帽 MicroShift 应用程序的构建通常预期部署到静态环境中。但是,如果在您的用例中很有用,Operator 就会可用。要确定 Operator 与 Red Hat build of MicroShift 的兼容性,请查看 Operator 的文档。
2.1. 如何在红帽构建的 MicroShift 中安装 Operator
为尽量减少红帽构建的 MicroShift 占用空间,Operator 直接使用清单安装,而不使用 Operator Lifecycle Manager (OLM)。以下示例演示了如何在红帽构建的 MicroShift 中使用 kustomize
配置管理工具来部署应用程序。使用相同的步骤使用清单安装 Operator。
2.1.1. 清单在 kustomize 中如何工作
kustomize
配置管理工具与红帽构建的 MicroShift 集成。在每次开始时,红帽构建的 MicroShift 会在 /etc/microshift/manifests
和 /usr/lib/microshift/
清单目录中搜索 kustomization.yaml
文件。如果找到了一个,红帽构建的 MicroShift 会自动运行与 kubectl apply -k
命令等效的命令,以将标识的清单应用到集群。
位置 | 作用 |
---|---|
| 用于配置管理系统或开发的读写位置。 |
| 在基于 OSTree 的系统上嵌入配置清单的只读位置。 |
2.1.2. 使用清单示例
本例演示了使用 /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-deployment spec: selector: matchLabels: app: busybox template: metadata: labels: app: busybox spec: containers: - name: busybox image: BUSYBOX_IMAGE command: - sleep - "3600" EOF
接下来,运行以下命令来创建
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: registry.k8s.io/busybox EOF
运行以下命令重启 Red Hat build of MicroShift 以应用清单:
$ sudo systemctl restart microshift
运行以下命令应用清单并启动
busybox
pod:$ oc get pods -n busybox