ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° OpenShift (ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°Π³ΠΎΡΠ΅ - Kubernetes: KubeVirt, Π²ΠΈΠΆΡΠ΅.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° OpenShift, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ°Π²ΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠ½ΠΎΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΡΠΎ Π³ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ.
ΠΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ cgroups, Π·Π° Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΡΠ΅ΡΡΡΡΠΈ. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ Python, Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠ°ΡΠΎ bash, Emacs ΠΈΠ»ΠΈ vim.
ΠΠ°ΠΊΠ²ΠΎ Π΅ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°? ΠΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡΠ° ΡΠΎΠ²Π° ΡΡΡΠΎ Π΅ ΠΏΡΠΎΡΠ΅Ρ. ΠΠΎ Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° KVM ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° VM.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° KVM Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°. ΠΠΊΠΎ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠ°ΠΌΠ΅ pod Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠ° VM, ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ°ΠΌ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡΠΈ ΠΈ qemu-kvm ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ KVM ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΊΠ°ΡΠΎ qemu-img, qemu-nbd ΠΈ virsh.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π΅ pod, ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π° ΡΡΠ»Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° pod Π² Kubernetes. VM pods, ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ pods, ΡΠ° ΠΎΠ±Π΅ΠΊΡ Π½Π° ΡΡ Π΅ΠΌΠΈ ΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ ΠΊΠ°ΡΠΎ ΠΏΠ΅ΡΠ½Π°, ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ½ΠΎΡΡΠΈ, Π°ΡΠΈΠ½ΠΈΡΠ΅Ρ ΠΈ Π°Π½ΡΠΈΠ°ΡΠΈΠ½ΠΈΡΠ΅Ρ. ΠΠΈΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ ΠΈ Ρ.Π½. ΠΠΌΠ° ΠΎΠ±Π°ΡΠ΅ Π΅Π΄Π½Π° Π²Π°ΠΆΠ½Π° ΡΠ°Π·Π»ΠΈΠΊΠ°: ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ²Π΅ Π½Π΅ ΠΌΠΈΠ³ΡΠΈΡΠ°Ρ ΠΎΡ Ρ ΠΎΡΡ Π½Π° Ρ ΠΎΡΡ Π² ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡ ΡΠΌΠΈΡΡΠ». ΠΠΊΠΎ Π΄Π°Π΄Π΅Π½ Π²ΡΠ·Π΅Π» ΠΈΠ·Π»Π΅Π·Π΅ ΠΎΡΠ»Π°ΠΉΠ½, Π³ΡΡΠΏΠ°ΡΠ° Π² Π½Π΅Π³ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π° ΠΈ ΡΠ΅ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π° ΠΊΡΠΌ Π΄ΡΡΠ³ Π²ΡΠ·Π΅Π» Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. Π Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΠΆΠΈΠ²ΠΎ.
ΠΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π΅ ΡΠ°Π·ΠΈ ΠΏΡΠ°Π·Π½ΠΈΠ½Π°, Π±Π΅ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡ (CDR), Π·Π° Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΠΆΠΈΠ²ΠΎ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅, Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π° ΠΆΠΈΠ²ΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ.
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstanceMigration
metadata:
name: migration-job
spec:
vmiName: fedora
ΠΠΎΠ³Π°ΡΠΎ Π΄Π°Π΄Π΅Π½ Π²ΡΠ·Π΅Π» Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½, Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π·Π° ΠΎΠ½Π΅Π·ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΆΠΈΠ²ΠΎ, Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ ΠΊΠ°ΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½Π΅. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ°ΠΊΡΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Live Migration, ΡΠ°ΠΊΠ° ΠΈ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ VM, ΠΊΠ°ΠΊΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅.
Π‘Π΅ΡΡ
ΠΡΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° Kubernetes ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ SDN ΠΌΡΠ΅ΠΆΠΈ. OpenShift Π½Π΅ Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΡ 3, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° OpenShiftSDN ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠΎΠ²Π°. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, OpenShift 4 ΠΈΠΌΠ° Π΄ΡΡΠ³Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΡΠ΅ΡΠ΅Π½Π° Multus, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΡΠ΅ΠΆΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΠΈ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ²Π΅ ΠΊΡΠΌ ΡΡΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Multus, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ CNI ΠΌΡΠ΅ΠΆΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π³ΡΡΠ½Π°ΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΊΠ»ΡΡΡΠ΅ΡΠ΅Π½ ΠΌΡΠ΅ΠΆΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΠΊΡΠΌ Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΌΡΠ΅ΠΆΠΈ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ OpenShiftSDN ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. SR-IOV ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ Linux Bridge, MACVLAN ΠΈ IPVLAN ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ, Π°ΠΊΠΎ Π²Π°ΡΠ°ΡΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΡΠΎΠ²Π°. Π€ΠΈΠ³ΡΡΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Multis CNI Π·Π° ΠΌΠΎΡΡΠΎΠ²Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° eth1:
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. Π’ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΠΌΠΈΠ³ΡΠΈΡΠ°Π½ΠΈ ΠΊΡΠΌ OpenShift ΠΎΡ Red Hat Virtualization ΠΈΠ»ΠΈ VMware vSphere, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠΎΡΠΈΡ OSI ΡΠ»ΠΎΠΉ, Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Π’ΠΎΠ²Π° ΡΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ VM ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΡΠ΅ΠΆΠΎΠ² Π°Π΄ΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»Ρ SDN. Π’Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°ΠΌΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π· ΠΌΡΠ΅ΠΆΠ°ΡΠ°...
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΈ ΡΠ²ΡΡΠ·Π²Π°ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ OpenShift ΠΊΡΠΌ ΠΌΡΠ΅ΠΆΠ°ΡΠ°
Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅
Π‘Π²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° OpenShift ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π½Π° Kubernetes ΠΊΠ°ΡΠΎ StorageClasses, PersistentVolumeClaims (PVC) ΠΈ PersistentVolume (PV), ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π·Π° ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° Kubernetes. Π’ΠΎΠ²Π° Π΄Π°Π²Π° Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ ΠΈ Π΅ΠΊΠΈΠΏΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Kubernetes ΠΎΠ±Ρ, ΠΏΠΎΠ·Π½Π°Ρ Π½Π°ΡΠΈΠ½ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ. Π Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ Π½Π° ΡΡΠ΅Π΄ΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π²ΡΡΠΈ ΠΏΠΎΠ·Π½Π°ΡΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° VM ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² OpenStack ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
ΠΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π°ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ² Π΄ΠΈΡΠΊ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ ΠΎΡ Ρ ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡΠ° ΠΊΡΠΌ OpenShift ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π΄Π°Π½Π½ΠΈΡΠ΅. ΠΠ°, Π΄ΠΎΡΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π²Π½Π΅Π΄ΡΠΈΠΌ Π½ΠΎΠ²Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΡ ΡΠ°Π±Π»ΠΎΠ½, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄Π° Ρ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΎΡ Π½ΡΠ»Π°ΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π΅.
ΠΠ° Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈ ΡΠ°Π·ΠΈ Π·Π°Π΄Π°ΡΠ°, Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° 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, Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°ΠΉΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΎΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΠ³ΡΡΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ:
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ CDI Π·Π°Π²ΡΡΡΠΈ, PVC ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° Π΄ΠΈΡΠΊΠ° Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°, Π³ΠΎΡΠΎΠ² Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ OpenShift...
ΠΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° OpenShift, OpenShift Container Storage (OCS), ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Red Hat, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Ceph, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΈΠ»Π°Π³Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΡΡΠΎ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° PVC Π΄ΠΎΡΡΡΠΏ - RWO (Π±Π»ΠΎΠΊ) ΠΈ RWX (ΡΠ°ΠΉΠ») - OCS ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ RWX Π·Π° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ² Π΄ΠΎΡΡΡΠΏ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π²ΠΈΡΠΎΠΊΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° OCS ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½ΠΎΠ²ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡ Object Bucket Claim, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
ΠΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
ΠΠΊΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ, ΡΠΎΠ³Π°Π²Π° Π·Π½Π°ΠΉΡΠ΅, ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° OpenShift Π²Π΅ΡΠ΅ Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π²ΡΠ² Π²Π΅ΡΡΠΈΡΡΠ° Tech Preview ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ OpenShift 3.11 ΠΈ ΠΏΠΎ-Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ Π·Π° OpenShift ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° OpenShift Π½Π°ΠΏΡΠ»Π½ΠΎ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ ΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΡΠΏΠΊΠΈ. ΠΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ OpenShift 4.4 ΠΈ OpenShift virtualization 2.3 ΡΠ° Π°ΠΊΡΡΠ°Π»Π½ΠΈ; Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°Π΄ΡΡΡΠΎΠΈΡΠ΅, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° OpenShift ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΡΠ½Π°ΡΠ° ΠΏΡΠ΅Π· Π²ΡΠΎΡΠ°ΡΠ° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π½Π° 2020 Π³.
ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠ»Ρ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΡΠ΅
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com