第2章 Operator が Red Hat build of MicroShift を使用する方法
Red Hat build of MicroShift で Operator を使用して、クラスター内で実行中のサービスを監視するアプリケーションを作成できます。Operator は、データベースやメッセージバスのデプロイなど、アプリケーションとそのリソースを管理できます。クラスター内で実行するカスタマイズされたソフトウェアとして、Operator を使用して一般的な操作を実装し、自動化できます。
Operator はよりローカライズされた設定エクスペリエンスを提供し、kubectl
や oc
などの Kubernetes API および CLI ツールと統合します。Operator は、アプリケーション専用に設計されています。Operator を使用すると、グローバル設定ファイルを変更する代わりにコンポーネントを設定できます。
Red Hat build of MicroShift アプリケーションは通常、静的環境にデプロイされることが想定されています。ただし、Operator はユースケースで役立つ場合に利用できます。Operator と Red Hat build of MicroShift の互換性を判断するには、Operator のドキュメントを確認してください。
2.1. Red Hat build of MicroShift での Operator のインストール方法
Red Hat build of MicroShift のフットプリントを最小限に抑えるために、Operator は Operator Lifecycle Manager (OLM) を使用する代わりにマニフェストを使用して直接インストールされます。以下の例は、Red Hat build of MicroShift で kustomize
設定管理ツールを使用してアプリケーションをデプロイする方法を説明します。マニフェストを使用して Operator をインストールするには、同じ手順を使用します。
2.1.1. マニフェストの kustomize の使用方法
kustomize
設定管理ツールは、Red Hat build of MicroShift に統合されます。起動時に、Red Hat build of MicroShift は /etc/microshift/manifests
および /usr/lib/microshift/
マニフェストディレクトリーで kustomization.yaml
ファイルを検索します。これが見つかると、Red Hat build of 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