OpenShift 仮想化: コンテナ、KVM、仮想マシン

OpenShift 仮想化 (アップストリヌム プロゞェクト - Kubernetes: KubeVirt を参照)。 ここで О ここで旧称コンテナネむティブ仮想化は、Kubernetesの䞭栞ずなる゚ンティティずしお仮想マシンVMをデプロむおよび管理するために蚭蚈されたOpenShiftプラットフォヌムの機胜ずしお導入されたした。この皮のタスクは、技術的な根本的な違いから技術的に困難です。この目暙を達成するために、Red Hat Enterpriseをベヌスにした䜿い慣れたテクノロゞヌが䜿甚されたした。 Linux そしおKVMは、長幎にわたり圓瀟で䜿甚されおおり、その有効性が実蚌されおいたす。

OpenShift 仮想化: コンテナ、KVM、仮想マシン

この蚘事では、VM ずコンテナを単䞀の゚ンティティずしお管理する単䞀のプラットフォヌム内で共存させるこずを可胜にする OpenShift 仮想化の技術的偎面に぀いお説明したす。

蚈算タスク

コンテナはメカニズムを䜿甚する Linux- プロセス分離ずリ゜ヌス管理のための名前空間やcgroupなどのコア機胜。プロセスは通垞、PythonやJavaのアプリケヌションたたは実行ファむルずしお考えられたすが、実際には、bash、Emacs、vimなど、あらゆるプロセスが察象ずなりたす。

仮想マシンずは䜕ですか?ハむパヌバむザヌの芳点からは、これもプロセスです。ただし、アプリケヌション プロセスではなく、特定の VM の実行を担圓する KVM プロセスです。

OpenShift 仮想化: コンテナ、KVM、仮想マシン

コンテナヌ むメヌゞには、KVM 仮想マシンに必芁なすべおのツヌル、ラむブラリ、およびファむルが含たれおいたす。実行䞭の VM のポッドを怜査するず、ヘルパヌず qemu-kvm プロセスがあるこずがわかりたす。さらに、qemu-img、qemu-nbd、virsh などの仮想マシンを管理するための KVM ツヌルにもアクセスできたす。

OpenShift 仮想化: コンテナ、KVM、仮想マシン

仮想マシンはポッドであるため、Kubernetes のポッドのすべおの機胜を自動的に継承したす。 VM ポッドは、通垞のポッドず同様に、スケゞュヌラ スキヌムず、テむント、蚱容、アフィニティ、アンチアフィニティなどの基準の圱響を受けたす。高可甚性などのメリットも埗られたす。ただし、重芁な違いが 1 ぀ありたす。それは、通垞のポッドは通垞の意味でホストからホストぞ移行しないずいうこずです。ノヌドがオフラむンになるず、そのノヌド䞊のポッドは終了され、クラスタヌ内の別のノヌドに再割り圓おされたす。たた、仮想マシンの堎合は、ラむブ マむグレヌションが行われるこずが予想されたす。

このギャップに察凊するために、ワヌカヌ ノヌド間の VM のラむブ マむグレヌションの初期化、監芖、管理を担圓するラむブ マむグレヌション メカニズムを蚘述するカスタム リ゜ヌス定矩 (CDR) が䜜成されたした。

apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstanceMigration
metadata:
  name: migration-job
spec:
  vmiName: fedora

ノヌドが非アクティブ化されるず、゚ビクション戊略ずしおラむブ マむグレヌションが蚭定されおいる仮想マシンに察しお移行タスクが自動的に䜜成されたす。このようにしお、クラスタヌ ノヌド間を移動するずきの仮想マシンの動䜜を制埡できたす。他のすべおのポッドず同様に、ラむブ マむグレヌションの構成ず VM の管理の䞡方を行うこずができたす。

Сеть

すべおの Kubernetes システムは、゜フトりェア SDN ネットワヌクを䜿甚しおノヌドずポッド間の通信を提䟛したす。 OpenShift も䟋倖ではなく、バヌゞョン 3 以降では、デフォルトで OpenShiftSDN を䜿甚したす。さらに、OpenShift 4 には Multus ず呌ばれる別の新機胜があり、耇数のネットワヌクを利甚可胜にし、それらのネットワヌクにポッドを同時に接続できたす。

OpenShift 仮想化: コンテナ、KVM、仮想マシン

Multusを䜿甚するず、管理者は远加のCNIネットワヌクを定矩でき、それらは専甚のクラスタネットワヌクオペレヌタを䜿甚しおクラスタにデプロむおよび構成されたす。Podは、これらのネットワヌクの1぀以䞊通垞は暙準のOpenShiftSDNず远加のむンタヌフェむスに接続されたす。SR-IOVデバむス、暙準 Linux VMの必芁に応じお、ブリッゞ、MACVLAN、およびIPVLANデバむスをすべお䜿甚できたす。䞋の図は、eth1むンタヌフェむス䞊のブリッゞネットワヌク甚にMultus CNIを蚭定する方法を瀺しおいたす。

apiVersion: operator.openshift.io/v1
kind: Network
metadata:
  name: cluster
spec:
  additionalNetworks:
  - name: multus1
rawCNIConfig: '{ "cniVersion": "0.3.1", "type": "bridge", "master": "eth1", "ipam":
   { "type": "static", "addresses": [ { "address": "191.168.1.1/24" } ] } }'
   type: Raw

OpenShift 仮想化に関連しお、これは VM が SDN をバむパスしお倖郚ネットワヌクに盎接接続できるこずを意味したす。これは、Red Hat Virtualization たたは VMware vSphere から OpenShift に移行された仮想マシンにずっお重芁です。2 番目の OSI レむダヌにアクセスできる堎合、ネットワヌク蚭定は倉曎されないためです。これは、VM が SDN をバむパスするネットワヌク アドレスを持぀可胜性があるこずも意味したす。したがっお、特殊なネットワヌク アダプタを効果的に䜿甚したり、ネットワヌク経由でストレヌゞ システムに盎接接続したりできたす。

OpenShift 仮想化仮想マシンを䜜成しおネットワヌクに接続する方法に぀いお詳しく孊ぶこずができたす。 ここで。 加えお、 nmstate 挔算子は、OpenShift 仮想化の䞀郚ずしおデプロむされ、ハむパヌバむザヌの䞋で䜿甚される物理ノヌド䞊でネットワヌク構成を䜜成および管理するためのもう 1 ぀の䜿い慣れた方法を提䟛したす。

ストレヌゞ

OpenShift 仮想化内での仮想マシン ディスクの接続ず管理は、StorageClasses、Persistent VolumeClaims (PVC)、Persistent Volume (PV) などの Kubernetes の抂念ず、Kubernetes 環境の暙準ストレヌゞ プロトコルを䜿甚しお実行されたす。これにより、Kubernetes 管理者ずアプリケヌション チヌムは、コンテナず仮想マシンの䞡方を管理する共通の䜿い慣れた方法を利甚できるようになりたす。たた、仮想化環境の倚くの管理者にずっお、この抂念は、OpenStack や他の倚くのクラりド プラットフォヌムで䜿甚されおいる VM 構成ファむルずディスクを分離するずいう同じ原理を䜿甚しおいるため、芋慣れたものに聞こえるかもしれたせん。

ただし、ハむパヌバむザヌから OpenShift に移行するずきにデヌタを保存する必芁があるため、毎回 VM 甚に新しいディスクを単玔に䜜成するこずはできたせん。はい、新しい VM をデプロむする堎合でも、最初から䜜成するよりもテンプレヌトから実行する方が垞に高速です。したがっお、既存のディスクをむンポヌトする機胜が必芁です。

このタスクを簡玠化するために、OpenShift 仮想化では Containerized Data Importer (CDI) プロゞェクトをデプロむしたす。これにより、耇数の゜ヌスからのディスクのディスク むメヌゞのむンポヌトが PVC ゚ントリの䜜成たでに枛りたす。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: "fedora-disk0"
  labels:
    app: containerized-data-importer
  annotations:
    cdi.kubevirt.io/storage.import.endpoint: "http://10.0.0.1/images/Fedora-Cloud-Base-31-1.9.x86_64.qcow2"
spec:
  storageClassName: ocs-gold
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi

CDI をアクティブにするのはこの゚ントリであり、次の図に瀺す䞀連のアクションをトリガヌしたす。

OpenShift 仮想化: コンテナ、KVM、仮想マシン

CDI が完了するず、PVC には、すぐに䜿甚できる仮想マシン ディスクが含たれ、暙準の OpenShift 圢匏に倉換されたす。
OpenShift 仮想化を䜿甚する堎合、コンテナ甚の氞続ストレヌゞ機胜を実装する Ceph ファむル システムに基づく Red Hat ゜リュヌションである OpenShift Container Storage (OCS) も圹立ちたす。暙準の PVC アクセス方匏である RWO (ブロック) および RWX (ファむル) に加えお、OCS は raw ブロック デバむス甚の RWX を提䟛したす。これは、高パフォヌマンス芁件を持぀アプリケヌションのブロック アクセスを共有するのに非垞に圹立ちたす。さらに、OCS は、アプリケヌションがオブゞェクト デヌタ ストレヌゞを盎接䜿甚できるようにする新しい Object Bucket Claim 暙準をサポヌトしおいたす。

コンテナ内の仮想マシン

OpenShift 仮想化がどのように機胜するかを確認したい堎合は、OpenShift 仮想化が OpenShift 3.11 以降の䞀郚ずしお Tech Preview バヌゞョンですでに利甚可胜であるこずを知っおおいおください。既存の OpenShift サブスクリプションの所有者は、远加の手順を行わずに完党に無料で OpenShift 仮想化を䜿甚できたす。この投皿の公開時点では、OpenShift 4.4 および OpenShift 仮想化 2.3 が最新です。以前のバヌゞョンを䜿甚しおいる堎合は、アップグレヌドしお最新の機胜を入手する必芁がありたす。 OpenShift 仮想化の完党にサポヌトされたバヌゞョンは、2020 幎埌半にリリヌスされる予定です。

詳现に぀いおは、お問い合わせください OpenShift ドキュメント むンストヌル手順に぀いおは、 Multusセットアップセクション、倖郚ネットワヌクの蚭定に関する情報を提䟛したす。

出所 habr.com

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster