クラウドネイティブ環境で仮想マシンを実行するための 4 つのオープンソース ツール

クラウドネイティブ環境で仮想マシンを実行するための 4 つのオープンソース ツール

レガシーワークロードがクラウドネイティブへの移行を妨げていませんか?クラウドネイティブ環境で仮想マシンを実行するための 4 つのソリューションを紹介します。

多くの IT プロフェッショナルはクラウド ネイティブに移行したいと考えています。しかし、モノリスのような従来のワークロードは、仮想マシン上でしか実行できません。

クラウドネイティブ ワークロードとレガシー ワークロード用に別々の環境を維持できます。しかし、VM をクラウド ネイティブ セットアップに統合してシームレスに管理できる方法を見つけることができれば、もっと良いと思いませんか?

幸いなことに、方法はあります。この記事では、最小限の再構成やチューニングでクラウド ネイティブ環境で仮想マシンを実行するための 4 つのオープン ソース ソリューションを紹介します。

クラウドネイティブ環境で仮想マシンを実行する理由は何ですか?

これらのツールを見る前に、コンテナ化された疎結合のクラウドネイティブ ワークロードで構成される環境で VM を実行できることがなぜ重要であるかを見てみましょう。

主な理由は単純です。レガシー ワークロードをホストする VM はなくなることはありませんが、それらを実行するための別のホスティング環境を維持するのは負担です。

同時に、レガシーワークロードをクラウドネイティブ標準に適合するように変換する必要がある場合もあります。理論上は、レガシー ワークロードをリファクタリングしてクラウド ネイティブ環境でネイティブに実行できるようにするための時間とエンジニアリング リソースがあるはずですが、現実にはこれが常に可能であるとは限りません。

したがって、レガシー VM ワークロードをクラウドネイティブ ワークロードと問題なく共存させるには、以下に説明する 4 つのオープン ソース ソリューションのいずれかなどのツールが必要です。

1. KubeVirtを使用して仮想マシンを実行する

クラウドネイティブ環境に仮想マシンをデプロイするための最も一般的なソリューションは、おそらく KubeVirt です。

KubeVirt は、Kubernetes ポッド内で仮想マシンを実行することで機能します。コンテナと一緒に VM を実行する場合は、次のコマンドを使用して、既存の Kubernetes クラスターに KubeVirt をインストールするだけです。

 エクスポートリリース= v0.35.0
# KubeVirt オペレーターデプロイする
kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml
# 実際インストールをトリガーするKubeVirt CR ( インスタンスのデプロイメントリクエスト) 作成します
kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-cr.yaml
# すべてのKubeVirt コンポーネント起動するまで待機します
kubectl - n kubevirt wait kv kubevirt -- 条件= 利用可能

次に、実行する各仮想マシンを記述する YAML ファイルを作成して適用します。 KubeVirt は各マシンをコンテナ内で実行するため、Kubernetes の観点から見ると、VM は通常のポッドにすぎません (いくつかの制限がありますが、次のセクションで説明します)。ただし、従来の VM と同様に、VM イメージ、永続ストレージ、固定 CPU およびメモリ割り当ては引き続き利用できます。

つまり、KubeVirt では基本的に仮想マシンに変更を加える必要はありません。必要なのは、KubeVirt をインストールし、仮想マシンをポッドとして実行するためのデプロイメントを作成することだけです。

2. ヴィルトレ法

VM をポッドとして扱うことに真剣に取り組みたい場合は、Mirantis のオープン ソース ツール Virtlet が適しているかもしれません。

Virtlet は、Kubernetes ポッド内で仮想マシンを実行できるという点で KubeVirt に似ています。 2 つのツールの主な違いは、Virtlet が仮想マシンを Kubernetes ポッド仕様にさらに深く統合していることです。つまり、Virtlet を使用すると、ネイティブの KubeVirt ではできない、デーモンセットまたはレプリカセットの一部として VM を管理するなどの操作を実行できます (KubeVirt にも同じ機能がありますが、Kubernetes のネイティブな部分ではなくアドオンです)。

Mirantis はまた、Virtlet は一般的に KubeVirt よりも優れたネットワーク パフォーマンスを提供すると述べていますが、ネットワーク構成には多くの変数が関係するため、確実に知ることは困難です。

3. 仮想マシンのISIOサポート

VM をコンテナとして管理したくない場合はどうすればよいでしょうか?マイクロサービスと簡単に統合できるようにしながら、仮想マシンのように扱いたい場合はどうすればよいでしょうか?

最善の解決策は、VM をオープンソースのサービス メッシュである Istio に接続することです。このアプローチでは、標準の VM ツールを使用して VM をデプロイおよび管理しながら、Istio を通じてネットワークや負荷分散などを管理できます。

残念ながら、VM を Istio に接続するプロセスは比較的面倒で、現時点では自動化が困難です。要するに、接続する各 VM に Istio をインストールし、それらの名前空間を構成してから、各 VM を Istio に接続することになります。

4. OpenStack でコンテナと VM を並行して使用する

これまでに検討した手法には、Kubernetes や Istio などのクラウド ネイティブ プラットフォームを採用し、それに仮想マシンのサポートを追加することが含まれます。

もう 1 つのアプローチは、クラウド ネイティブではないプラットフォームを採用し、仮想マシンを実行してから、そのプラットフォームにクラウド ネイティブ ツールを移植することです。

これは、OpenStack 上で VM とコンテナを同時に実行すると得られる結果です。 OpenStack はもともと、仮想マシン (およびその他の種類のリソース) をデプロイしてプライベート クラウドを構築するために設計されました。しかし、OpenStack は現在 Kubernetes もホストできます。

したがって、Kubernetes を介して OpenStack 上でクラウドネイティブのコンテナ化されたワークロードを実行しながら、OpenStack を使用して仮想マシンをデプロイおよび管理できます。最終的には、基盤となる OpenStack インストールと Kubernetes 環境という 2 つのオーケストレーション レイヤーが作成されるため、このアプローチは管理の観点からはより複雑になります。

ただし、主な利点は、VM が Kubernetes の一部ではないため、VM とコンテナを互いに比較的独立した状態に保つことができることです。仮想マシンの管理には、Kubernetes ツールの使用に限定されません。仮想マシンは標準の仮想マシン、コンテナは標準のコンテナと考えることができます。

結論は

オープンソース エコシステムは、仮想マシンとクラウドネイティブ ワークロードの共存を支援するさまざまな方法を提供します。最適なソリューションは、Kubernetes 中心のアプローチを採用するか (この場合は KubeVirt または Virtlet が最適な選択肢)、VM とコンテナーを緊密に統合せずに共存させるか (この場合は OpenStack が最も適しています) によって異なります。オーケストレーション レベルではなくネットワーク レベルでの統合のみが必要な場合は、VM を Istio サービス メッシュに接続することを検討してください。

元のリンク: https://www.itprotoday.com/cloud-native/4-open-source-tools-running-vms-cloud-native-environment

<<:  Rancher アプリケーション ストアに基づく K8s サービスのワンクリック アップグレード ソリューションの紹介

>>:  1 つの記事でクラウド ネットワークを理解する

推薦する

SEO初心者にスパムサイトと通常サイトの選び方を教える

スパムサイトを構築するか、通常のサイトを構築するかは、SEO 界では永遠の話題です。初心者はゴミステ...

ウェブサイトのコンバージョン率の最適化について簡単に説明します - オンラインスクールを例に

いわゆるウェブサイトコンバージョン率とは、ウェブサイトの総訪問者数のうち、消費行動を生み出す訪問者の...

新しいウェブマスターはBaidu Spiderを認識する必要があります

Baidu Spider(英語名は「baiduspider」)は、Baidu 検索エンジンの自動プロ...

WeChat Moments にゲーム広告を掲載する秘訣: ダウンロード リンクを追加するための最小しきい値は 50,000 です。

2015年初頭にWeChat Momentsに最初の広告が登場して以来、この新しいマーケティング手法...

HarmonyOSJS 分散機能 - 学習ノート

[[420496]]詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したH...

iwfhosting: 334 ドル、超ハイエンド サーバー、E7-4850/512g メモリ/18T ハードディスク

18 年間運営されている H4Y Technologies LLC が、特別価格で専用サーバー 3 ...

カマテラはどうですか?イスラエル ハイファ データセンター クラウド サーバーのレビュー

カマテラはイスラエル北部のハイファに自社データセンターを持ち、イスラエルVPS(イスラエルクラウドサ...

クラウドネイティブのコンテキストで JVM メモリを構成する方法

背景少し前に、ビジネス開発チームから、アプリケーションのメモリ使用量が非常に高く、頻繁に再起動が発生...

ユーザーエクスペリエンスに影響を与える4つの要素

検索エンジンにウェブサイトを評価してもらいたいなら、まずウェブサイトのユーザーエクスペリエンスを向上...

クラウドネイティブ CI/CD フレームワーク Tekton の初体験

[[404558]] Tekton は、非常に強力で柔軟な CI/CD オープンソース クラウド ネ...

おすすめ: 複数のブランドの Prometeus VPS スペシャル

プロメテウスは私たちにもう一つの驚きをもたらしました。今回、その3つのブランドが同時にセール対象とな...

携帯電話番号ウェブサイトの SEO 最適化のアイデア

同社は最近多くの新しいプロジェクトを抱えており、関与のレベルはますます幅広くなっています。実は、これ...

Baidu Index は、ウェブサイトのトラフィックが Baidu ホームページのランキングに与える影響を調べるものです。

SEOは当然ホームページの4位にランクされていますが、そのような位置にある1日あたりのIPトラフィッ...

トラフィックが多ければ多いほど良いというわけではありません。トラフィックを軽視することは有害であり、無意味です。

ウェブサイトのトラフィックは、ウェブマスターが常に追求する目標です。ウェブサイトが収益を上げたい場合...