OpenShift上で仮想マシンを実行できることをご存じでしょうか? OpenShift Virtualizationは、まさにそれを実現するOperatorです。Operatorをインストールすると、コンテナ化されたワークロードと並行してOpenShift上でVMを実行できるようになります。
OpenShift Virtualizationは、Red Hat Virtualization(RHV)やOpenStack、および世界中のほとんどのクラウドで使用されている仮想化ソフトウェアスタックのKVMを使用して、クラスター内の他のワークロードと同様に、OpenShiftによって管理されるVMを実行します。また、他のクラウドネイティブ・リソースと同様に、VMもコードとして定義および管理されています。そのことは、コンテナ化されたワークロードで使用されるクラウドネイティブの方法論とツールを、VMにも適用できることを示しています。
Tektonとは
Tektonは、CI/CDシステムを作成するための強力かつ柔軟なオープンソース・フレームワークであり、開発者によるクラウドプロバイダーとオンプレミスシステム全体にわたるビルド、テスト、デプロイが可能になります。
Tektonパイプラインは、継続的インテグレーションフローの一部として定義し、実行順序を指定したタスクの集合体です。パイプライン内の各タスクは、Kubernetesクラスター上のポッドとして実行されるものであり、ニーズに合わせてさまざまな実行条件を設定できます。
OpenShiftパイプラインは、Tektonビルディングブロックを使用して、複数のプラットフォームにわたるデプロイを自動化します。このブログではTektonを紹介していますが、本番環境ではOpenShiftパイプラインを推奨しています。
OSインストールの作成とカスタマイズ
Tektonパイプラインは、単一のVM操作からVMのライフサイクル全体の管理まで、多数のVMタスクを制御できます。また、Windows OSイメージのダウンロード、VM構成のカスタマイズ、VMのデプロイなどのタスクを実行できます。これにより、一貫性のあるVMが作成されることで人的ミスを最小限に抑え、セキュリティが向上します。
一般的なプロセスの使用例としては、Windows OSのインストールがあり、パイプラインが無人のsysprepプロセスを管理します。sysprepファイル (autounattend.xmlなど)を保持する Kubernetes設定ファイルを作成し、新しいWindows VMをプロビジョニングして、設定ファイルをアタッチし、VMを起動するパイプラインを定義できます。これによって、Windowsの自動無人インストールがトリガーされます。
その他にも多くのタスクに合わせて、独自のパイプラインを構築できます。まず、VM操作の多くに対して、複数のTektonタスクを作成することから始めてみてください。その準備が整ったら、Tektonタスクをビルディングブロックとして使用し、必要なプロセスを自動化するTektonパイプラインを構築します。
AI/MLおよびその他のユースケース
Tektonパイプラインには、VMディスクやネットワークのカスタマイズなどの、特定の操作を実行する単一のタスク、またはいくつかのタスクを含めることができます。より複雑な操作の場合は、作成から終了、削除までのVMライフサイクル全体を制御する複数のタスクをパイプラインに含めることができます。
完全なライフサイクル管理についての興味深いユースケースとしては、AI/MLの視覚化などのためにVMを必要とするAI/MLワークロードがあります。これらのVMは、イメージの準備からデータソースの接続、MLモジュールを実行するVMの起動、完了後のVMのシャットダウン(場合によっては削除)に至るまで、Tektonパイプラインによって完全にプロビジョニングし、管理することができます。新しいデータソースを使用してこのパイプラインを必要なだけ繰り返します。

まとめ
OpenShift Virtualizationにおいて、VMはコードとして宣言されるクラウドネイティブなオブジェクトです。 VMはコンテナと同じAPIを共有し、コンテナのワークロードと同様に扱うことができます。つまり、CI/CDプロセスではVMとコンテナを組み合わせることが可能であり、Tektonは単一のパイプラインでVMとコンテナ上のタスクを順次または並行して実行できるため、サイロ化を防ぎ、複数のシステムの依存関係を解消することができます。

Tekton(およびOpenShiftパイプライン)は、他の多くのCI/CD製品と組み合わせてさまざまなタスクを実行できる、KubernetesネイティブのCI/CDフレームワークです。OpenShift Virtualizationは仮想マシンをOpenShiftに取り込み、コンテナと同じAPIで管理できるようにします。そのため、TektonやArgoCDなどのKubernetesネイティブツールによってコンテナ化されたワークロードと合わせて、VMをシームレスに管理できます。Tektonを使用してVM関連のタスクを自動化すると、手動で実行するよりも安全であり、繰り返し可能で、高速になります。これらのTektonタスクとパイプラインはクラスター間で共有できるため、クラスター間の一貫性を確保することができます。
仮想マシン用のTektonタスクの例は、こちらのOpenShiftドキュメントや、GitHubリポジトリーをご覧ください。
既存のVMは、Red Hat Migration Toolkit for Virtualization(MTV)などのツールを使用してOpenShift Virtualizationに「リフト&シフト」することができるため、書き直すことなく同じ機能のメリットを得ることができます。
すでにTektonを使用している場合でも、初めて使用する場合でも、この記事がパイプラインでのVMの使用方法についてヒントとなれば幸いです。使い始めてみると、きっと別のユースケースも見つかることでしょう。
執筆者紹介
チャンネル別に見る
自動化
テクノロジー、チームおよび環境に関する IT 自動化の最新情報
AI (人工知能)
お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート
オープン・ハイブリッドクラウド
ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。
セキュリティ
環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報
エッジコンピューティング
エッジでの運用を単純化するプラットフォームのアップデート
インフラストラクチャ
世界有数のエンタープライズ向け Linux プラットフォームの最新情報
アプリケーション
アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細
オリジナル番組
エンタープライズ向けテクノロジーのメーカーやリーダーによるストーリー