Operator Direktur OSP membuat serangkaian definisi sumber daya khusus di atas OpenShift untuk mengelola sumber daya yang biasanya dibuat oleh Tripleo's Undercloud. CRD ini dibagi menjadi dua jenis untuk penyediaan perangkat keras dan konfigurasi perangkat lunak.
Operator Direktur OSP diinstal dan dikelola melalui OLM Operator Lifecycle Manager. OLM diinstal secara otomatis dengan instalasi OpenShift Anda. Untuk mendapatkan snapshot operator direktur OSP terbaru, Anda perlu membuat CatalogSource, OperatorGroup, dan berlangganan yang sesuai untuk mengarahkan instalasi dengan OLM:
oc new-project openstack
apiVersion : operators.coreos.com/v1alpha1
kind : CatalogSource
metadata :
name : osp-director-operator-index
namespace : openstack
spec :
sourceType : grpc
image : quay.io/openstack-k8s-operators/osp-director-operator-index:0.0.1
apiVersion : operators.coreos.com/v1
kind : OperatorGroup
metadata :
name : " osp-director-operator-group "
namespace : openstack
spec :
targetNamespaces :
- openstack
apiVersion : operators.coreos.com/v1alpha1
kind : Subscription
metadata :
name : osp-director-operator-subscription
namespace : openstack
spec :
config :
env :
- name : WATCH_NAMESPACE
value : openstack,openshift-machine-api,openshift-sriov-network-operator
source : osp-director-operator-index
sourceNamespace : openstack
name : osp-director-operator
startingCSV : osp-director-operator.v0.0.1
channel : alpha
Kami memiliki skrip untuk mengotomatiskan instalasi di sini dengan OLM untuk tag tertentu: skrip untuk mengotomatiskan instalasi
Catatan : Di beberapa titik di masa depan kami dapat berintegrasi ke dalam operatorHub sehingga operator direktur OSP tersedia secara otomatis di instalasi OCP Anda sumber katalog OLM.
Buat volume data basis RHEL sebelum menggunakan OpenStack. Ini akan digunakan oleh pengontrol VM yang disediakan melalui virtualisasi openshift. Pendekatan untuk melakukan ini adalah sebagai berikut:
virtctl
: sudo subscription-manager repos --enable=cnv-2.6-for-rhel-8-x86_64-rpms
sudo dnf install -y kubevirt-virtctl
curl -O http://download.devel.redhat.com/brewroot/packages/rhel-guest-image/8.4/1168/images/rhel-guest-image-8.4-1168.x86_64.qcow2
dnf install -y libguestfs-tools-c
virt-customize -a < rhel guest image > --run-command ' sed -i -e "s/^(kernelopts=.*)net.ifnames=0 (.*)/12/" /boot/grub2/grubenv '
virt-customize -a < rhel guest image > --run-command ' sed -i -e "s/^(GRUB_CMDLINE_LINUX=.*)net.ifnames=0 (.*)/12/" /etc/default/grub '
/etc/hosts
Anda: <cluster ingress VIP> cdi-uploadproxy-openshift-cnv.apps.<cluster name>.<domain name>
virtctl
: virtctl image-upload dv openstack-base-img -n openstack --size=50Gi --image-path=<local path to image> --storage-class <desired storage class> --insecure
storage-class
di atas, pilih satu yang ingin Anda gunakan dari yang ditampilkan di: oc get storageclass
Tentukan sumber daya khusus OpenStackNetConfig Anda. Setidaknya satu jaringan diperlukan untuk CTLPlane. Secara opsional Anda dapat mendefinisikan beberapa jaringan di CR untuk digunakan dengan arsitektur isolasi jaringan Tripleo. Selain definisi jaringan, OpenStackNet mencakup informasi yang digunakan untuk menentukan kebijakan konfigurasi jaringan yang digunakan untuk melampirkan VM apa pun ke jaringan ini melalui virtualisasi OpenShift. Berikut ini adalah contoh jaringan IPv4 CTLPlan sederhana yang menggunakan Linux Bridge untuk konfigurasi hostnya.
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackNetConfig
metadata :
name : openstacknetconfig
spec :
attachConfigurations :
br-osp :
nodeNetworkConfigurationPolicy :
nodeSelector :
node-role.kubernetes.io/worker : " "
desiredState :
interfaces :
- bridge :
options :
stp :
enabled : false
port :
- name : enp7s0
description : Linux bridge with enp7s0 as a port
name : br-osp
state : up
type : linux-bridge
mtu : 1500
# optional DnsServers list
dnsServers :
- 192.168.25.1
# optional DnsSearchDomains list
dnsSearchDomains :
- osptest.test.metalkube.org
- some.other.domain
# DomainName of the OSP environment
domainName : osptest.test.metalkube.org
networks :
- name : Control
nameLower : ctlplane
subnets :
- name : ctlplane
ipv4 :
allocationEnd : 192.168.25.250
allocationStart : 192.168.25.100
cidr : 192.168.25.0/24
gateway : 192.168.25.1
attachConfiguration : br-osp
# optional: (OSP17 only) specify all phys networks with optional MAC address prefix, used to
# create static OVN Bridge MAC address mappings. Unique OVN bridge mac address per node is
# dynamically allocated by creating OpenStackMACAddress resource and create a MAC per physnet per node.
# - If PhysNetworks is not provided, the tripleo default physnet datacentre gets created.
# - If the macPrefix is not specified for a physnet, the default macPrefix "fa:16:3a" is used.
# - If PreserveReservations is not specified, the default is true.
ovnBridgeMacMappings :
preserveReservations : True
physNetworks :
- macPrefix : fa:16:3a
name : datacentre
- macPrefix : fa:16:3b
name : datacentre2
# optional: configure static mapping for the networks per nodes. If there is none, a random gets created
reservations :
controller-0 :
macReservations :
datacentre : fa:16:3a:aa:aa:aa
datacentre2 : fa:16:3b:aa:aa:aa
compute-0 :
macReservations :
datacentre : fa:16:3a:bb:bb:bb
datacentre2 : fa:16:3b:bb:bb:bb
Jika Anda menulis YAML di atas ke dalam file yang disebut networkconfig.yaml, Anda dapat membuat OpenStackNetConfig melalui perintah ini:
oc create -n openstack -f networkconfig.yaml
Untuk menggunakan isolasi jaringan menggunakan VLAN, tambahkan ID VLAN ke spesifikasi definisi jaringan
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackNetConfig
metadata :
name : openstacknetconfig
spec :
attachConfigurations :
br-osp :
nodeNetworkConfigurationPolicy :
nodeSelector :
node-role.kubernetes.io/worker : " "
desiredState :
interfaces :
- bridge :
options :
stp :
enabled : false
port :
- name : enp7s0
description : Linux bridge with enp7s0 as a port
name : br-osp
state : up
type : linux-bridge
mtu : 1500
br-ex :
nodeNetworkConfigurationPolicy :
nodeSelector :
node-role.kubernetes.io/worker : " "
desiredState :
interfaces :
- bridge :
options :
stp :
enabled : false
port :
- name : enp6s0
description : Linux bridge with enp6s0 as a port
name : br-ex-osp
state : up
type : linux-bridge
mtu : 1500
# optional DnsServers list
dnsServers :
- 192.168.25.1
# optional DnsSearchDomains list
dnsSearchDomains :
- osptest.test.metalkube.org
- some.other.domain
# DomainName of the OSP environment
domainName : osptest.test.metalkube.org
networks :
- name : Control
nameLower : ctlplane
subnets :
- name : ctlplane
ipv4 :
allocationEnd : 192.168.25.250
allocationStart : 192.168.25.100
cidr : 192.168.25.0/24
gateway : 192.168.25.1
attachConfiguration : br-osp
- name : InternalApi
nameLower : internal_api
mtu : 1350
subnets :
- name : internal_api
attachConfiguration : br-osp
vlan : 20
ipv4 :
allocationEnd : 172.17.0.250
allocationStart : 172.17.0.10
cidr : 172.17.0.0/24
- name : External
nameLower : external
subnets :
- name : external
ipv6 :
allocationEnd : 2001:db8:fd00:1000:ffff:ffff:ffff:fffe
allocationStart : 2001:db8:fd00:1000::10
cidr : 2001:db8:fd00:1000::/64
gateway : 2001:db8:fd00:1000::1
attachConfiguration : br-ex
- name : Storage
nameLower : storage
mtu : 1350
subnets :
- name : storage
ipv4 :
allocationEnd : 172.18.0.250
allocationStart : 172.18.0.10
cidr : 172.18.0.0/24
vlan : 30
attachConfiguration : br-osp
- name : StorageMgmt
nameLower : storage_mgmt
mtu : 1350
subnets :
- name : storage_mgmt
ipv4 :
allocationEnd : 172.19.0.250
allocationStart : 172.19.0.10
cidr : 172.19.0.0/24
vlan : 40
attachConfiguration : br-osp
- name : Tenant
nameLower : tenant
vip : False
mtu : 1350
subnets :
- name : tenant
ipv4 :
allocationEnd : 172.20.0.250
allocationStart : 172.20.0.10
cidr : 172.20.0.0/24
vlan : 50
attachConfiguration : br-osp
Saat menggunakan VLAN untuk isolasi jaringan dengan Linux-Bridge
Catatan : Untuk menggunakan bingkai jumbo untuk jembatan, buat konfigurasi untuk perangkat untuk mengonfigurasi mtu correnct:
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackNetConfig
metadata :
name : openstacknetconfig
spec :
attachConfigurations :
br-osp :
nodeNetworkConfigurationPolicy :
nodeSelector :
node-role.kubernetes.io/worker : " "
desiredState :
interfaces :
- bridge :
options :
stp :
enabled : false
port :
- name : enp7s0
description : Linux bridge with enp7s0 as a port
name : br-osp
state : up
type : linux-bridge
mtu : 9000
- name : enp7s0
description : Configuring enp7s0 on workers
type : ethernet
state : up
mtu : 9000
Buat ConfigMaps yang menentukan lingkungan panas khusus, templat panas, dan file peran khusus (nama harus roles_data.yaml
) yang digunakan untuk konfigurasi jaringan tripleo. File lingkungan panas yang ditentukan adminStrator dapat disediakan di ConfigMap dan akan digunakan sebagai konvensi dalam langkah -langkah selanjutnya yang digunakan untuk membuat tumpukan panas untuk penyebaran overcloud. Sebagai konvensi, setiap instalasi Direktur OSP akan menggunakan 2 ConfigMaps bernama heat-env-config
dan tripleo-tarball-config
untuk memberikan informasi ini. ConfigMap heat-env-config
memegang semua file lingkungan penyebaran di mana setiap file ditambahkan sebagai -e file.yaml
ke perintah openstack stack create
. Contoh yang bagus adalah:
"Peta konfigurasi tarball" dapat digunakan untuk menyediakan tarball (biner) yang diekstraksi dalam templat tripleo-heat ketika buku pedoman dihasilkan. Setiap tarball harus berisi direktori file relatif terhadap akar direktori THT. Anda akan ingin menyimpan hal -hal seperti contoh -contoh berikut di peta konfigurasi yang berisi tarball khusus:
File Net-Config.
Lingkungan Net-Config
Catatan : File Net-Config untuk mesin virtual dibuat oleh operator, tetapi dapat ditimpa menggunakan "peta konfigurasi tarball". Untuk menimpa net-config yang telah disajikan sebelumnya menggunakan nama file <role lowercase>-nic-template.yaml
untuk osp16.2 atau <role lowercase>-nic-template.j2
untuk osp17. Catatan : Nama antarmuka jaringan untuk VM yang dibuat oleh pengontrol OpenStackVMSet dipesan secara abjad oleh nama jaringan yang ditetapkan untuk peran VM. Pengecualian adalah antarmuka jaringan default
dari POD VM yang akan selalu merupakan antarmuka pertama. Bagian inteface yang dihasilkan dari definisi mesin virtual akan terlihat seperti ini:
interfaces :
- masquerade : {}
model : virtio
name : default
- bridge : {}
model : virtio
name : ctlplane
- bridge : {}
model : virtio
name : external
- bridge : {}
model : virtio
name : internalapi
- bridge : {}
model : virtio
name : storage
- bridge : {}
model : virtio
name : storagemgmt
- bridge : {}
model : virtio
name : tenant
Dengan ini antarmuka CTLPlan adalah NIC2, External NIC3, ... dan sebagainya.
Catatan : Lalu lintas FIP tidak diteruskan ke jaringan penyewa VLAN dengan ML2/OVN dan DVR. DVR diaktifkan secara default. Jika Anda memerlukan jaringan penyewa VLAN dengan OVN, Anda dapat menonaktifkan DVR. Untuk menonaktifkan DVR, sertakan baris berikut dalam file lingkungan:
parameter_defaults :
NeutronEnableDVR : false
Dukungan untuk "Lalu Lintas VLAN Terdistribusi di OVN" sedang dilacak di Kelola Alamat MAC untuk "Tambahkan Dukungan di Tripleo untuk Lalu Lintas VLAN Terdistribusi di OVN" (https://bugs.launchpad.net/tripleo/+bug/1881593)
[GIT Repo Config Map] ConfigMap ini berisi kunci SSH dan URL untuk repo git yang digunakan untuk menyimpan buku pedoman yang dihasilkan (di bawah)
Setelah Anda menyesuaikan templat/contoh di atas untuk lingkungan Anda, Anda dapat membuat ConfigMaps untuk 'heat-env-config' dan 'tripleo-tarball-config' (tarballs) configmaps dengan menggunakan perintah contoh ini pada file yang berisi masing-masing jenis konfigurasi masing-masing (satu direktori untuk setiap jenis ConfigMap):
# create the configmap for heat-env-config
oc create configmap -n openstack heat-env-config --from-file=heat-env-config/ --dry-run=client -o yaml | oc apply -f -
# create the configmap containing a tarball of t-h-t network config files. NOTE: these files may overwrite default t-h-t files so keep this in mind when naming them.
cd < dir with net config files >
tar -cvzf net-config.tar.gz * .yaml
oc create configmap -n openstack tripleo-tarball-config --from-file=tarball-config.tar.gz
# create the Git secret used for the repo where Ansible playbooks are stored
oc create secret generic git-secret -n openstack --from-file=git_ssh_identity= < path to git id_rsa > --from-literal=git_url= < your git server URL (git@...) >
(Opsional) Buat rahasia untuk OpenStackControlPlan Anda. Rahasia ini akan memberikan kata sandi default untuk mesin virtual dan host baremetal Anda. Jika tidak ada rahasia yang disediakan, Anda hanya akan dapat masuk dengan tombol SSH yang didefinisikan dalam Rahasia OSP-ControlPlan-SSH-Keys.
apiVersion : v1
kind : Secret
metadata :
name : userpassword
namespace : openstack
data :
# 12345678
NodeRootPassword : MTIzNDU2Nzg=
Jika Anda menulis YAML di atas ke dalam file yang disebut ctlplane-secret.yaml Anda dapat membuat rahasia melalui perintah ini:
oc create -n openstack -f ctlplane-secret.yaml
Tentukan sumber daya khusus OpenStackControlPlan Anda. Sumber Daya Kustom OpenStackControlplane menyediakan tempat sentral untuk membuat dan mengukur VM yang digunakan untuk pengontrol OSP bersama dengan VMSet tambahan apa pun untuk penyebaran Anda. Setidaknya 1 pengontrol VM diperlukan untuk instalasi demo dasar dan per OSP Pedoman Ketersediaan Tinggi 3 VM pengontrol direkomendasikan.
CATATAN : Jika gambar RHEL-GUEST digunakan sebagai dasar untuk menggunakan mesin virtual OpenStackControlplane, pastikan untuk menghapus net.ifnames = 0 parameter kernel dari gambar untuk memiliki penamaan antarmuka jaringan BioSdev. Ini bisa dilakukan seperti:
dnf install -y libguestfs-tools-c
virt-customize -a bms-image.qcow2 --run-command ' sed -i -e "s/^(kernelopts=.*)net.ifnames=0 (.*)/12/" /boot/grub2/grubenv '
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackControlPlane
metadata :
name : overcloud
namespace : openstack
spec :
openStackClientImageURL : quay.io/openstack-k8s-operators/rhosp16-openstack-tripleoclient:16.2_20210713.1
openStackClientNetworks :
- ctlplane
- external
- internalapi
# openStackClientStorageClass must support RWX
# https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
openStackClientStorageClass : host-nfs-storageclass
passwordSecret : userpassword
gitSecret : git-secret
virtualMachineRoles :
controller :
roleName : Controller
roleCount : 3
networks :
- ctlplane
- internalapi
- external
- tenant
- storage
- storagemgmt
cores : 6
memory : 12
rootDisk :
diskSize : 50
baseImageVolumeName : openstack-base-img
# storageClass must support RWX to be able to live migrate VMs
storageClass : host-nfs-storageclass
storageAccessMode : ReadWriteMany
# When using OpenShift Virtualization with OpenShift Container Platform Container Storage,
# specify RBD block mode persistent volume claims (PVCs) when creating virtual machine disks. With virtual machine disks,
# RBD block mode volumes are more efficient and provide better performance than Ceph FS or RBD filesystem-mode PVCs.
# To specify RBD block mode PVCs, use the 'ocs-storagecluster-ceph-rbd' storage class and VolumeMode: Block.
storageVolumeMode : Filesystem
# Optional
# DedicatedIOThread - Disks with dedicatedIOThread set to true will be allocated an exclusive thread.
# This is generally useful if a specific Disk is expected to have heavy I/O traffic, e.g. a database spindle.
dedicatedIOThread : false
additionalDisks :
# name must be uniqe and must not be rootDisk
- name : dataDisk1
diskSize : 100
storageClass : host-nfs-storageclass
storageAccessMode : ReadWriteMany
storageVolumeMode : Filesystem
# Optional block storage settings
# IOThreadsPolicy - IO thread policy for the domain. Currently valid policies are shared and auto.
# However, if any disk requests a dedicated IOThread, ioThreadsPolicy will be enabled and default to shared.
# When ioThreadsPolicy is set to auto IOThreads will also be "isolated" from the vCPUs and placed on the same physical CPU as the QEMU emulator thread.
# An ioThreadsPolicy of shared indicates that KubeVirt should use one thread that will be shared by all disk devices.
ioThreadsPolicy : auto
# Block Multi-Queue is a framework for the Linux block layer that maps Device I/O queries to multiple queues.
# This splits I/O processing up across multiple threads, and therefor multiple CPUs. libvirt recommends that the
# number of queues used should match the number of CPUs allocated for optimal performance.
blockMultiQueue : false
Jika Anda menulis YAML di atas ke dalam file yang disebut OpenStackControlPlan.YAML, Anda dapat membuat OpenStackControlPlan melalui perintah ini:
oc create -f openstackcontrolplane.yaml
Catatan VM dalam VMSET yang sama (Peran VM) didistribusikan di seluruh node pekerja yang tersedia menggunakan aturan afinitas anti pod (PreferredDuringingChedulingingingDuringExecution). Dengan ini masih mungkin bahwa beberapa VM dari peran berakhir pada simpul pekerja yang sama jika tidak ada sumber daya lain yang tersedia (misalnya reboot pekerja selama pembaruan). Tidak ada migrasi hidup otomatis yang terjadi, jika misalnya sebuah simpul muncul setelah pemeliharaan/reboot. Pada permintaan penjadwalan berikutnya, VM akan dipindahkan lagi.
Tentukan OpenStackBaremetalSet untuk mengukur host komputasi OSP. Sumber daya OpenStackBaremetal dapat digunakan untuk mendefinisikan dan mengukur sumber daya menghitung dan secara opsional digunakan untuk mendefinisikan dan mengukur host baremetal untuk jenis peran tripleo lainnya. Contoh di bawah ini mendefinisikan satu host komputasi yang akan dibuat.
Catatan : Jika gambar RHEL-GUEST digunakan sebagai basis untuk menggunakan node komputasi OpenStackBaremetalSet, pastikan untuk menghapus net.ifnames = 0 parameter kernel dari gambar untuk memiliki penamaan antarmuka jaringan BioSdev. Ini bisa dilakukan seperti:
dnf install -y libguestfs-tools-c
virt-customize -a bms-image.qcow2 --run-command ' sed -i -e "s/^(kernelopts=.*)net.ifnames=0 (.*)/12/" /boot/grub2/grubenv '
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackBaremetalSet
metadata :
name : compute
namespace : openstack
spec :
# How many nodes to provision
count : 1
# The image to install on the provisioned nodes. NOTE: needs to be accessible on the OpenShift Metal3 provisioning network.
baseImageUrl : http://host/images/rhel-image-8.4.x86_64.qcow2
# NOTE: these are automatically created via the OpenStackControlplane CR above
deploymentSSHSecret : osp-controlplane-ssh-keys
# The interface on the nodes that will be assigned an IP from the mgmtCidr
ctlplaneInterface : enp7s0
# Networks to associate with this host
networks :
- ctlplane
- internalapi
- tenant
- storage
roleName : Compute
passwordSecret : userpassword
Jika Anda menulis YAML di atas ke dalam file yang disebut compute.yaml, Anda dapat membuat OpenStackBareMetalSet melalui perintah ini:
oc create -f compute.yaml
Pendaftaran Node (Daftarkan Sistem Overcloud ke Saluran yang Diperlukan)
Tunggu sumber daya di atas untuk menyelesaikan penyebaran (Hitung dan Controlplane). Setelah sumber daya diselesaikan, lanjutkan dengan pendaftaran simpul.
Gunakan prosedur seperti yang dijelaskan dalam 5.9. Menjalankan pendaftaran berbasis ansible secara manual melakukannya.
Catatan: Kami sarankan menggunakan pendaftaran manual karena berfungsi terlepas dari pilihan gambar dasar. Jika Anda menggunakan overcloud-full sebagai gambar penyebaran dasar Anda maka pendaftaran RHSM otomatis dapat digunakan melalui peran/file lingkungan rhsm.yaml sebagai alternatif dari pendekatan ini.
oc rsh openstackclient
bash
cd /home/cloud-admin
< create the ansible playbook for the overcloud nodes - e.g. rhsm.yaml >
# register the overcloud nodes to required repositories
ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory ./rhsm.yaml
(Opsional) Buat file peran a) Gunakan pod OpenStackClient untuk menghasilkan file peran khusus
oc rsh openstackclient
unset OS_CLOUD
cd /home/cloud-admin/
openstack overcloud roles generate Controller ComputeHCI > roles_data.yaml
exit
b) Salin file peran khusus dari pod OpenStackClient
oc cp openstackclient:/home/cloud-admin/roles_data.yaml roles_data.yaml
Perbarui ConfigMap tarballConfigMap
untuk menambahkan file roles_data.yaml
ke tarball dan perbarui ConfigMap.
Catatan : Pastikan untuk menggunakan roles_data.yaml
sebagai nama file.
Tentukan OpenStackConfigGenerator untuk menghasilkan buku pedoman yang tidak dapat dijalankan untuk penyebaran kluster OSP.
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackConfigGenerator
metadata :
name : default
namespace : openstack
spec :
enableFencing : False
imageURL : quay.io/openstack-k8s-operators/rhosp16-openstack-tripleoclient:16.2_20210713.1
gitSecret : git-secret
heatEnvConfigMap : heat-env-config
tarballConfigMap : tripleo-tarball-config
# (optional) for debugging it is possible to set the interactive mode.
# In this mode the playbooks won't get rendered automatically. Just the environment to start the rendering gets created
# interactive: true
# (optional) provide custom registry or specific container versions via the ephemeralHeatSettings
# ephemeralHeatSettings:
# heatAPIImageURL: quay.io/tripleotraincentos8/centos-binary-heat-api:current-tripleo
# heatEngineImageURL: quay.io/tripleotraincentos8/centos-binary-heat-engine:current-tripleo
# mariadbImageURL: quay.io/tripleotraincentos8/centos-binary-mariadb:current-tripleo
# rabbitImageURL: quay.io/tripleotraincentos8/centos-binary-rabbitmq:current-tripleo
Jika Anda menulis YAML di atas ke dalam file yang disebut Generator.YAML, Anda dapat membuat OpenStackConfigGenerator melalui perintah ini:
oc create -f generator.yaml
Osconfiggenerator yang dibuat di atas akan secara otomatis menghasilkan buku pedoman setiap kali Anda skala atau memodifikasi ConfigMaps untuk penyebaran OSP Anda. Menghasilkan buku pedoman ini membutuhkan waktu beberapa menit. Anda dapat memantau kondisi status Osconfiggenerator untuk menyelesaikannya.
Dapatkan OsconfigVersion terbaru (Ansible Playbooks). Pilih hash/pencernaan dari Osconfigversion terbaru untuk digunakan pada langkah berikutnya.
oc get -n openstack --sort-by {.metadata.creationTimestamp} osconfigversions -o json
CATATAN: Objek Osconfigversion juga memiliki atribut 'Git Diff' yang dapat digunakan untuk dengan mudah membandingkan perubahan antara versi buku pedoman Ansible.
Buat OsDeploy (Execute Ansible Playbooks)
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackDeploy
metadata :
name : default
spec :
configVersion : n5fch96h548h75hf4hbdhb8hfdh676h57bh96h5c5h59hf4h88h...
configGenerator : default
Jika Anda menulis YAML di atas ke dalam file yang disebut deploy.yaml, Anda dapat membuat OpenStackDeploy melalui perintah ini:
oc create -f deploy.yaml
Saat penempatan berjalan, ia akan menciptakan pekerjaan Kubernetes untuk melaksanakan buku pedoman ansible. Anda dapat mengarahkan log pekerjaan/pod ini untuk menonton buku pedoman yang tidak dapat dijalankan. Selain itu, Anda dapat secara manual mengakses buku pedoman ansible yang dieksekusi dengan masuk ke pod 'OpenStackClient', masuk ke direktori/home/cloud-admin/work //. Di sana Anda akan menemukan buku pedoman ansible bersama dengan file ansible.log untuk penyebaran yang sedang berjalan.
Dimungkinkan untuk menggunakan infrastruktur hiper-konvergen Tripleo di mana node komputasi juga bertindak sebagai node Ceph OSD. Alur kerja untuk menginstal Ceph melalui Tripleo adalah:
Pastikan untuk menggunakan quay.io/openstack-k8s-operators/rhosp16-openstack-tripleoclient:16.2_20210521.1
atau lebih baru untuk OpenStackClient openStackClientImageURL
.
Memiliki node komputasi dengan disk tambahan yang akan digunakan sebagai OSDS dan membuat baremetalset untuk peran komputehci yang memiliki jaringan StorageMgmt di samping jaringan komputasi default dan parameter IsHCI
diatur ke True.
Catatan : Jika gambar RHEL-GUEST digunakan sebagai dasar untuk menggunakan node komputasi openstackBaremetalset, pastikan untuk menghapus net.ifnames = 0 parameter kernel membentuk gambar untuk memiliki penamaan antarmuka jaringan BioSdev. Ini bisa dilakukan seperti:
dnf install -y libguestfs-tools-c
virt-customize -a bms-image.qcow2 --run-command ' sed -i -e "s/^(kernelopts=.*)net.ifnames=0 (.*)/12/" /boot/grub2/grubenv '
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackBaremetalSet
metadata :
name : computehci
namespace : openstack
spec :
# How many nodes to provision
replicas : 2
# The image to install on the provisioned nodes
baseImageUrl : http://host/images/rhel-image-8.4.x86_64.qcow2
# The secret containing the SSH pub key to place on the provisioned nodes
deploymentSSHSecret : osp-controlplane-ssh-keys
# The interface on the nodes that will be assigned an IP from the mgmtCidr
ctlplaneInterface : enp7s0
# Networks to associate with this host
networks :
- ctlplane
- internalapi
- tenant
- storage
- storagemgmt
roleName : ComputeHCI
passwordSecret : userpassword
Deploying OpenStack once you have the OSP Director Operator installed
yang mencakup peran Computehci/usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
dan kustomisasi lainnya ke Tripleo Deploy Custom ConfigMap, EG storage-backend.yaml
: resource_registry :
OS::TripleO::Services::CephMgr : deployment/ceph-ansible/ceph-mgr.yaml
OS::TripleO::Services::CephMon : deployment/ceph-ansible/ceph-mon.yaml
OS::TripleO::Services::CephOSD : deployment/ceph-ansible/ceph-osd.yaml
OS::TripleO::Services::CephClient : deployment/ceph-ansible/ceph-client.yaml
parameter_defaults :
# needed for now because of the repo used to create tripleo-deploy image
CephAnsibleRepo : " rhelosp-ceph-4-tools "
CephAnsiblePlaybookVerbosity : 3
CinderEnableIscsiBackend : false
CinderEnableRbdBackend : true
CinderBackupBackend : ceph
CinderEnableNfsBackend : false
NovaEnableRbdBackend : true
GlanceBackend : rbd
CinderRbdPoolName : " volumes "
NovaRbdPoolName : " vms "
GlanceRbdPoolName : " images "
CephPoolDefaultPgNum : 32
CephPoolDefaultSize : 2
CephAnsibleDisksConfig :
devices :
- ' /dev/sdb '
- ' /dev/sdc '
- ' /dev/sdd '
osd_scenario : lvm
osd_objectstore : bluestore
CephAnsibleExtraConfig :
is_hci : true
CephConfigOverrides :
rgw_swift_enforce_content_length : true
rgw_swift_versioning_enabled : true
Setelah Anda menyesuaikan templat/contoh di atas untuk lingkungan Anda, buat/perbarui ConfigMaps seperti yang dijelaskan dalam Deploying OpenStack once you have the OSP Director Operator installed
Deploying OpenStack once you have the OSP Director Operator installed
dan menentukan peran peran yang dihasilkan. Catatan : Pastikan untuk menggunakan quay.io/openstack-k8s-operators/rhosp16-openstack-tripleoclient:16.2_20210521.1
atau lebih baru untuk osconfiggenerator imageURL
.
Tunggu OpenStackConfigGenerator untuk menyelesaikan pekerjaan rendering buku pedoman.
Dapatkan hash/pencernaan dari OpenStackConfigversion terbaru.
Buat OpenStackDeploy untuk OpenStackConfigversion yang ditentukan. Ini akan menggunakan Playbook Ansible.
Menghapus host komputasi baremetal membutuhkan langkah -langkah berikut:
Jika simpul komputasi dihapus, nonaktifkan layanan komputasi pada simpul keluar pada overcloud untuk mencegah node menjadwalkan instance baru
openstack compute service list
openstack compute service set < hostname > nova-compute --disable
Anotasi Sumber Daya BMH
oc annotate -n openshift-machine-api bmh/openshift-worker-3 osp-director.openstack.org/delete-host=true --overwrite
Status anotasi sedang tercermin dalam osbaremetalset/osvmset menggunakan parameter annotatedForDeletion
:
oc get osbms computehci -o json | jq .status
{
" baremetalHosts " : {
" computehci-0 " : {
" annotatedForDeletion " : true,
" ctlplaneIP " : " 192.168.25.105/24 " ,
" hostRef " : " openshift-worker-3 " ,
" hostname " : " computehci-0 " ,
" networkDataSecretName " : " computehci-cloudinit-networkdata-openshift-worker-3 " ,
" provisioningState " : " provisioned " ,
" userDataSecretName " : " computehci-cloudinit-userdata-openshift-worker-3 "
},
" computehci-1 " : {
" annotatedForDeletion " : false,
" ctlplaneIP " : " 192.168.25.106/24 " ,
" hostRef " : " openshift-worker-4 " ,
" hostname " : " computehci-1 " ,
" networkDataSecretName " : " computehci-cloudinit-networkdata-openshift-worker-4 " ,
" provisioningState " : " provisioned " ,
" userDataSecretName " : " computehci-cloudinit-userdata-openshift-worker-4 "
}
},
" provisioningStatus " : {
" readyCount " : 2,
" reason " : " All requested BaremetalHosts have been provisioned " ,
" state " : " provisioned "
}
}
Mengurangi Hitungan Sumber Daya dari Osbaremetalset akan memicu pengontrol corrensponding untuk menangani penghapusan sumber daya
oc patch osbms computehci --type=merge --patch ' {"spec":{"count":1}} '
Sebagai akibat:
oc get osnet ctlplane -o json | jq .status.roleReservations.ComputeHCI
{
" addToPredictableIPs " : true,
" reservations " : [
{
" deleted " : true,
" hostname " : " computehci-0 " ,
" ip " : " 192.168.25.105 " ,
" vip " : false
},
{
" deleted " : false,
" hostname " : " computehci-1 " ,
" ip " : " 192.168.25.106 " ,
" vip " : false
}
]
}
Ini menghasilkan perilaku berikut
Saat ini jika simpul komputasi dihapus, ada beberapa entri yang tersisa yang ditresteri di pesawat kontrol OpenStack dan tidak dibersihkan secara otomatis. Untuk membersihkannya, lakukan langkah -langkah berikut.
openstack compute service list
openstack compute service delete < service-id >
openstack network agent list
for AGENT in $( openstack network agent list --host < scaled-down-node > -c ID -f value ) ; do openstack network agent delete $AGENT ; done
Menghapus VM membutuhkan langkah -langkah berikut:
Jika VM meng -host layanan OSP apa pun yang harus dinonaktifkan sebelum penghapusan, lakukanlah.
Anotasi sumber daya VM
oc annotate -n openstack vm/controller-1 osp-director.openstack.org/delete-host=true --overwrite
Mengurangi Rolecount Sumber Daya dari VirtualMachineroles di OpenStackControlplane Cr. Pengontrol korensponding untuk menangani penghapusan sumber daya
oc patch osctlplane overcloud --type=merge --patch ' {"spec":{"virtualMachineRoles":{"<RoleName>":{"roleCount":2}}}} '
Sebagai akibat:
Ini menghasilkan perilaku berikut
Jika VM memang meng -host layanan OSP apa pun yang harus dihapus, hapus layanan menggunakan perintah OpenStack yang sesuai.
Dimungkinkan untuk menggunakan arsitektur Tripleo's Routed Networks (Spine/Leaf Networking) untuk mengkonfigurasi jaringan daun overcloud. Gunakan parameter subnet untuk menentukan subnet daun tambahan dengan jaringan dasar.
Keterbatasan saat ini adalah bahwa hanya ada satu jaringan penyediaan untuk Metal3.
Alur kerja untuk menginstal overcloud menggunakan beberapa subnet adalah:
Tentukan sumber daya khusus OpenStackNetConfig Anda dan tentukan semua subnet untuk jaringan Overcloud. Operator akan membuat tripleo network_data.yaml untuk rilis OSP yang digunakan.
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackNetConfig
metadata :
name : openstacknetconfig
spec :
attachConfigurations :
br-osp :
nodeNetworkConfigurationPolicy :
nodeSelector :
node-role.kubernetes.io/worker : " "
desiredState :
interfaces :
- bridge :
options :
stp :
enabled : false
port :
- name : enp7s0
description : Linux bridge with enp7s0 as a port
name : br-osp
state : up
type : linux-bridge
mtu : 1500
br-ex :
nodeNetworkConfigurationPolicy :
nodeSelector :
node-role.kubernetes.io/worker : " "
desiredState :
interfaces :
- bridge :
options :
stp :
enabled : false
port :
- name : enp6s0
description : Linux bridge with enp6s0 as a port
name : br-ex-osp
state : up
type : linux-bridge
mtu : 1500
# optional DnsServers list
dnsServers :
- 192.168.25.1
# optional DnsSearchDomains list
dnsSearchDomains :
- osptest.test.metalkube.org
- some.other.domain
# DomainName of the OSP environment
domainName : osptest.test.metalkube.org
networks :
- name : Control
nameLower : ctlplane
subnets :
- name : ctlplane
ipv4 :
allocationEnd : 192.168.25.250
allocationStart : 192.168.25.100
cidr : 192.168.25.0/24
gateway : 192.168.25.1
attachConfiguration : br-osp
- name : InternalApi
nameLower : internal_api
mtu : 1350
subnets :
- name : internal_api
ipv4 :
allocationEnd : 172.17.0.250
allocationStart : 172.17.0.10
cidr : 172.17.0.0/24
routes :
- destination : 172.17.1.0/24
nexthop : 172.17.0.1
- destination : 172.17.2.0/24
nexthop : 172.17.0.1
vlan : 20
attachConfiguration : br-osp
- name : internal_api_leaf1
ipv4 :
allocationEnd : 172.17.1.250
allocationStart : 172.17.1.10
cidr : 172.17.1.0/24
routes :
- destination : 172.17.0.0/24
nexthop : 172.17.1.1
- destination : 172.17.2.0/24
nexthop : 172.17.1.1
vlan : 21
attachConfiguration : br-osp
- name : internal_api_leaf2
ipv4 :
allocationEnd : 172.17.2.250
allocationStart : 172.17.2.10
cidr : 172.17.2.0/24
routes :
- destination : 172.17.1.0/24
nexthop : 172.17.2.1
- destination : 172.17.0.0/24
nexthop : 172.17.2.1
vlan : 22
attachConfiguration : br-osp
- name : External
nameLower : external
subnets :
- name : external
ipv4 :
allocationEnd : 10.0.0.250
allocationStart : 10.0.0.10
cidr : 10.0.0.0/24
gateway : 10.0.0.1
attachConfiguration : br-ex
- name : Storage
nameLower : storage
mtu : 1350
subnets :
- name : storage
ipv4 :
allocationEnd : 172.18.0.250
allocationStart : 172.18.0.10
cidr : 172.18.0.0/24
routes :
- destination : 172.18.1.0/24
nexthop : 172.18.0.1
- destination : 172.18.2.0/24
nexthop : 172.18.0.1
vlan : 30
attachConfiguration : br-osp
- name : storage_leaf1
ipv4 :
allocationEnd : 172.18.1.250
allocationStart : 172.18.1.10
cidr : 172.18.1.0/24
routes :
- destination : 172.18.0.0/24
nexthop : 172.18.1.1
- destination : 172.18.2.0/24
nexthop : 172.18.1.1
vlan : 31
attachConfiguration : br-osp
- name : storage_leaf2
ipv4 :
allocationEnd : 172.18.2.250
allocationStart : 172.18.2.10
cidr : 172.18.2.0/24
routes :
- destination : 172.18.0.0/24
nexthop : 172.18.2.1
- destination : 172.18.1.0/24
nexthop : 172.18.2.1
vlan : 32
attachConfiguration : br-osp
- name : StorageMgmt
nameLower : storage_mgmt
mtu : 1350
subnets :
- name : storage_mgmt
ipv4 :
allocationEnd : 172.19.0.250
allocationStart : 172.19.0.10
cidr : 172.19.0.0/24
routes :
- destination : 172.19.1.0/24
nexthop : 172.19.0.1
- destination : 172.19.2.0/24
nexthop : 172.19.0.1
vlan : 40
attachConfiguration : br-osp
- name : storage_mgmt_leaf1
ipv4 :
allocationEnd : 172.19.1.250
allocationStart : 172.19.1.10
cidr : 172.19.1.0/24
routes :
- destination : 172.19.0.0/24
nexthop : 172.19.1.1
- destination : 172.19.2.0/24
nexthop : 172.19.1.1
vlan : 41
attachConfiguration : br-osp
- name : storage_mgmt_leaf2
ipv4 :
allocationEnd : 172.19.2.250
allocationStart : 172.19.2.10
cidr : 172.19.2.0/24
routes :
- destination : 172.19.0.0/24
nexthop : 172.19.2.1
- destination : 172.19.1.0/24
nexthop : 172.19.2.1
vlan : 42
attachConfiguration : br-osp
- name : Tenant
nameLower : tenant
vip : False
mtu : 1350
subnets :
- name : tenant
ipv4 :
allocationEnd : 172.20.0.250
allocationStart : 172.20.0.10
cidr : 172.20.0.0/24
routes :
- destination : 172.20.1.0/24
nexthop : 172.20.0.1
- destination : 172.20.2.0/24
nexthop : 172.20.0.1
vlan : 50
attachConfiguration : br-osp
- name : tenant_leaf1
ipv4 :
allocationEnd : 172.20.1.250
allocationStart : 172.20.1.10
cidr : 172.20.1.0/24
routes :
- destination : 172.20.0.0/24
nexthop : 172.20.1.1
- destination : 172.20.2.0/24
nexthop : 172.20.1.1
vlan : 51
attachConfiguration : br-osp
- name : tenant_leaf2
ipv4 :
allocationEnd : 172.20.2.250
allocationStart : 172.20.2.10
cidr : 172.20.2.0/24
routes :
- destination : 172.20.0.0/24
nexthop : 172.20.2.1
- destination : 172.20.1.0/24
nexthop : 172.20.2.1
vlan : 52
attachConfiguration : br-osp
Jika Anda menulis YAML di atas ke dalam file yang disebut networkconfig.yaml, Anda dapat membuat OpenStackNetConfig melalui perintah ini:
oc create -n openstack -f networkconfig.yaml
...
# ##############################################################################
# Role: ComputeLeaf1 #
# ##############################################################################
- name : ComputeLeaf1
description : |
Basic ComputeLeaf1 Node role
# Create external Neutron bridge (unset if using ML2/OVS without DVR)
tags :
- external_bridge
networks :
InternalApi :
subnet : internal_api_leaf1
Tenant :
subnet : tenant_leaf1
Storage :
subnet : storage_leaf1
HostnameFormatDefault : ' %stackname%-novacompute-leaf1-%index% '
...
# ##############################################################################
# Role: ComputeLeaf2 #
# ##############################################################################
- name : ComputeLeaf2
description : |
Basic ComputeLeaf1 Node role
# Create external Neutron bridge (unset if using ML2/OVS without DVR)
tags :
- external_bridge
networks :
InternalApi :
subnet : internal_api_leaf2
Tenant :
subnet : tenant_leaf2
Storage :
subnet : storage_leaf2
HostnameFormatDefault : ' %stackname%-novacompute-leaf2-%index% '
...
Perbarui ConfigMap tarballConfigMap
untuk menambahkan file roles_data.yaml
ke tarball dan perbarui ConfigMap.
Catatan : Pastikan untuk menggunakan roles_data.yaml
sebagai nama file.
Templat TRIPLEO NIC 16.2 OSP memiliki parameter Interfaceroutes per default yang disertakan. Parameter rute yang diberikan dalam lingkungan/jaringan-lingkungan.yaml yang dinamai rute biasanya ditetapkan pada properti host_routes jaringan neutron dan dapat ditambahkan ke parameter Role Interfaceroutes. Karena tidak ada neutron diperlukan untuk menambahkan rute {{{network.name}} ke template NIC di mana diperlukan dan konsat dua daftar:
parameters:
...
{{ $net.Name }}Routes:
default: []
description: >
Routes for the storage network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
...
- type: interface
...
routes:
list_concat_unique:
- get_param: {{ $net.Name }}Routes
- get_param: {{ $net.Name }}InterfaceRoutes
Rute Informasi Subnet Diberikan Otomatis ke environments/network-environment.yaml
yang digunakan dalam skrip yang membuat buku pedoman yang tidak dapat dijalankan. Oleh karena itu, dalam templat NIC, gunakan routes_ <subnet_name>, misalnya Storageroutes_Storage_leaf1 untuk mengatur perutean yang benar pada host.
Untuk peran komputasi computeleaf1, template NIC perlu dimodifikasi untuk menggunakannya:
...
StorageRoutes_storage_leaf1 :
default : []
description : >
Routes for the storage network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type : json
...
InternalApiRoutes_internal_api_leaf1 :
default : []
description : >
Routes for the internal_api network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type : json
...
TenantRoutes_tenant_leaf1 :
default : []
description : >
Routes for the internal_api network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type : json
...
get_param : StorageIpSubnet
routes :
list_concat_unique :
- get_param : StorageRoutes_storage_leaf1
- type : vlan
...
get_param : InternalApiIpSubnet
routes :
list_concat_unique :
- get_param : InternalApiRoutes_internal_api_leaf1
...
get_param : TenantIpSubnet
routes :
list_concat_unique :
- get_param : TenantRoutes_tenant_leaf1
- type : ovs_bridge
...
Perbarui tarballConfigMap
ConfigMap untuk menambahkan file NIC Templates roles_data.yaml
ke tarball dan perbarui ConfigMap.
Catatan : Pastikan untuk menggunakan roles_data.yaml
sebagai nama file.
Sejauh ini hanya OSP16.2 yang diuji dengan beberapa penyebaran subnet dan kompatibel dengan subnet tunggal OSP17.0.
Tbd
Pastikan untuk menambahkan templat NIC baru yang dibuat ke file lingkungan ke resource_registry
untuk peran node baru:
resource_registry :
OS::TripleO::Compute::Net::SoftwareConfig : net-config-two-nic-vlan-compute.yaml
OS::TripleO::ComputeLeaf1::Net::SoftwareConfig : net-config-two-nic-vlan-compute_leaf1.yaml
OS::TripleO::ComputeLeaf2::Net::SoftwareConfig : net-config-two-nic-vlan-compute_leaf2.yaml
Pada titik ini kita dapat menyediakan overcloud.
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackControlPlane
metadata :
name : overcloud
namespace : openstack
spec :
gitSecret : git-secret
openStackClientImageURL : registry.redhat.io/rhosp-rhel8/openstack-tripleoclient:16.2
openStackClientNetworks :
- ctlplane
- external
- internal_api
- internal_api_leaf1 # optionally the openstackclient can also be connected to subnets
openStackClientStorageClass : host-nfs-storageclass
passwordSecret : userpassword
domainName : ostest.test.metalkube.org
virtualMachineRoles :
Controller :
roleName : Controller
roleCount : 1
networks :
- ctlplane
- internal_api
- external
- tenant
- storage
- storage_mgmt
cores : 6
memory : 20
rootDisk :
diskSize : 40
baseImageVolumeName : controller-base-img
storageClass : host-nfs-storageclass
storageAccessMode : ReadWriteMany
storageVolumeMode : Filesystem
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackBaremetalSet
metadata :
name : computeleaf1
namespace : openstack
spec :
# How many nodes to provision
count : 1
# The image to install on the provisioned nodes
baseImageUrl : http://192.168.111.1/images/rhel-guest-image-8.4-1168.x86_64.qcow2
provisionServerName : openstack
# The secret containing the SSH pub key to place on the provisioned nodes
deploymentSSHSecret : osp-controlplane-ssh-keys
# The interface on the nodes that will be assigned an IP from the mgmtCidr
ctlplaneInterface : enp7s0
# Networks to associate with this host
networks :
- ctlplane
- internal_api_leaf1
- external
- tenant_leaf1
- storage_leaf1
roleName : ComputeLeaf1
passwordSecret : userpassword
apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackBaremetalSet
metadata :
name : computeleaf2
namespace : openstack
spec :
# How many nodes to provision
count : 1
# The image to install on the provisioned nodes
baseImageUrl : http://192.168.111.1/images/rhel-guest-image-8.4-1168.x86_64.qcow2
provisionServerName : openstack
# The secret containing the SSH pub key to place on the provisioned nodes
deploymentSSHSecret : osp-controlplane-ssh-keys
# The interface on the nodes that will be assigned an IP from the mgmtCidr
ctlplaneInterface : enp7s0
# Networks to associate with this host
networks :
- ctlplane
- internal_api_leaf2
- external
- tenant_leaf2
- storage_leaf2
roleName : ComputeLeaf2
passwordSecret : userpassword
Tentukan OpenStackConfigGenerator untuk menghasilkan buku pedoman yang tidak dapat dijalankan untuk penyebaran kluster OSP seperti dalam Deploying OpenStack once you have the OSP Director Operator installed
dan menentukan peran peran yang dihasilkan.
Seperti yang dijelaskan sebelumnya dalam Run the software deployment
, terapkan, daftarkan node Overcloud ke repositori yang diperlukan dan jalankan penyebaran Sofware dari dalam pod OpenStackClient.
OSP-D Operator menyediakan API untuk membuat dan memulihkan cadangan CR saat ini, ConfigMap, dan Konfigurasi Rahasia. API ini terdiri dari dua CRD:
OpenStackBackupRequest
OpenStackBackup
CRD OpenStackBackupRequest
digunakan untuk memulai pembuatan atau pemulihan cadangan, sedangkan OpenStackBackup
CRD digunakan untuk benar -benar menyimpan data CR, ConfigMap dan rahasia yang dimiliki oleh operator. Ini memungkinkan untuk beberapa manfaat:
OpenStackBackup
CR, pengguna tidak harus mengekspor/mengimpor setiap bagian dari konfigurasi operator secara manualOpenStackBackup
baru, buat OpenStackBackupRequest
dengan mode
diatur untuk save
di spec -nya. Misalnya: apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackBackupRequest
metadata :
name : openstackbackupsave
namespace : openstack
spec :
mode : save
additionalConfigMaps : []
additionalSecrets : []
Bidang spesifik adalah sebagai berikut:
mode: save
menunjukkan bahwa ini adalah permintaan untuk membuat cadangan.additionalConfigMaps
dan additionalSecrets
dapat digunakan untuk memasukkanmap dan rahasia konfigurasi tambahan yang tidak disadari oleh operator (yaitu configmaps dan rahasia yang dibuat secara manual untuk tujuan tertentu).OpenStackControlPlane
, OpenStackBaremetalSet
, dll) di namespace, tanpa mengharuskan pengguna untuk memasukkannya ke dalam daftar tambahan ini.OpenStackBackupRequest
telah dibuat, monitor statusnya: oc get -n openstack osbackuprequest openstackbackupsave
Sesuatu seperti ini seharusnya muncul:
NAME OPERATION SOURCE STATUS COMPLETION TIMESTAMP
openstackbackupsave save Quiescing
Negara Quiescing
menunjukkan bahwa operator sedang menunggu status penyediaan semua CRS operator OSP-D untuk mencapai setara "selesai" mereka. Waktu yang diperlukan untuk ini akan bervariasi berdasarkan jumlah CRS operator OSP-D dan kebetulan keadaan penyediaan mereka saat ini. Catatan: Ada kemungkinan bahwa operator tidak akan pernah sepenuhnya diam karena kesalahan dan/atau "menunggu" status dalam CRS yang ada. Untuk melihat CRD/CRS mana yang mencegah ketenangan, selidiki log operator. Misalnya:
oc logs < OSP-D operator pod > -c manager -f
...
2022-01-11T18:26:15.180Z INFO controllers.OpenStackBackupRequest Quiesce for save for OpenStackBackupRequest openstackbackupsave is waiting for: [OpenStackBaremetalSet: compute, OpenStackControlPlane: overcloud, OpenStackVMSet: controller]
Jika OpenStackBackupRequest
memasuki keadaan Error
, lihat konten penuhnya untuk melihat kesalahan yang ditemui ( oc get -n openstack openstackbackuprequest <name> -o yaml
).
OpenStackBackupRequest
telah dihormati dengan membuat dan menyimpan OpenStackBackup
yang mewakili konfigurasi operator OSP-D saat ini, itu akan memasuki status Saved
. Misalnya: oc get -n openstack osbackuprequest
NAME OPERATION SOURCE STATUS COMPLETION TIMESTAMP
openstackbackupsave save Saved 2022-01-11T19:12:58Z
OpenStackBackup
yang terkait juga akan dibuat. Misalnya:
oc get -n openstack osbackup
NAME AGE
openstackbackupsave-1641928378 6m7s
OpenStackBackup
, buat OpenStackBackupRequest
dengan mode
diatur untuk restore
spesifikasinya. Misalnya: apiVersion : osp-director.openstack.org/v1beta1
kind : OpenStackBackupRequest
metadata :
name : openstackbackuprestore
namespace : openstack
spec :
mode : restore
restoreSource : openstackbackupsave-1641928378
Bidang spesifik adalah sebagai berikut:
mode: restore
menunjukkan bahwa ini adalah permintaan untuk mengembalikan OpenStackBackup
yang ada.restoreSource
menunjukkan OpenStackBackup
mana yang harus dipulihkan. Dengan mode
yang diatur untuk restore
, operator OSP-D akan mengambil konten dari restoreSource
OpenStackBackup
dan mencoba menerapkannya terhadap CRS, ConfigMaps, dan Rahasia yang ada saat ini hadir dalam namespace. Dengan demikian ia akan menimpa sumber daya operator OSP-D yang ada di namespace dengan nama yang sama dengan yang ada di OpenStackBackup
, dan akan menciptakan sumber daya baru bagi mereka yang saat ini tidak ditemukan di namespace. Jika diinginkan, mode
dapat diatur ke cleanRestore
untuk sepenuhnya menyeka sumber daya operator OSP-D yang ada di dalam namespace sebelum mencoba restorasi, sehingga semua sumber daya dalam OpenStackBackup
dibuat sepenuhnya lagi.
OpenStackBackupRequest
telah dibuat, monitor statusnya: oc get -n openstack osbackuprequest openstackbackuprestore
Sesuatu seperti ini tampaknya menunjukkan bahwa semua sumber daya dari OpenStackBackup
diterapkan pada cluster:
NAME OPERATION SOURCE STATUS COMPLETION TIMESTAMP
openstackbackuprestore restore openstackbackupsave-1641928378 Loading
Kemudian, setelah semua sumber daya telah dimuat, operator akan mulai mendamaikan untuk mencoba menyediakan semua sumber daya:
NAME OPERATION SOURCE STATUS COMPLETION TIMESTAMP
openstackbackuprestore restore openstackbackupsave-1641928378 Reconciling
Jika OpenStackBackupRequest
memasuki status Error
, lihat konten penuhnya untuk melihat kesalahan yang ditemui ( oc get -n openstack openstackbackuprequest <name> -o yaml
).
OpenStackBackupRequest
telah dihormati dengan memulihkan sepenuhnya OpenStackBackup
, itu akan memasuki keadaan Restored
. Misalnya: oc get -n openstack osbackuprequest
NAME OPERATION SOURCE STATUS COMPLETION TIMESTAMP
openstackbackuprestore restore openstackbackupsave-1641928378 Restored 2022-01-12T13:48:57Z
Pada titik ini, semua sumber daya yang terkandung dengan OpenStackBackup
yang dipilih harus dipulihkan dan sepenuhnya disediakan.
Operator Direktur OSP secara otomatis membuat ConfigMap setelah setiap sumber daya OsDeploy selesai dieksekusi. ConfigMap ini dinamai sesuai nama sumber daya OsDeploy dan diawali dengan Tripleo-Exports-. Misalnya tripleo-exports-default akan menjadi nama ConfigMap untuk sumber daya OsDeploy 'default'. Setiap ConfigMap berisi 2 file YAML:
Nama file | Keterangan | Tripleo Command Equivalent |
---|---|---|
ctlplane-export.yaml | Digunakan dengan beberapa tumpukan untuk DCN | Ekspor Overcloud |
ctlplane-export-filtered.yaml | Digunakan untuk beberapa tumpukan dengan tumpukan "pengontrol" sel | Ekspor sel overcloud |
Gunakan perintah di bawah ini untuk mengekstrak file YAML dari ConfigMap. Setelah diekstraksi file YAML dapat ditambahkan ke parameter panas khusus pada sumber daya Osconfiggenerator.
oc extract cm/tripleo-exports-default
Catatan: Operator Direktur OSP belum menghasilkan ekspor untuk Ceph Stacks.
Jika diperlukan, dimungkinkan untuk mengubah CPU/RAM dari OpenStackVMSet yang dikonfigurasi melalui OpenStackControlPlan. Alur kerja adalah sebagai berikut:
Misalnya mengubah controller virtualmachinerole untuk memiliki 8 core dan 22GB RAM:
oc patch -n openstack osctlplane overcloud --type= ' json ' -p= ' [{"op": "add", "path": "/spec/virtualMachineRoles/controller/cores", "value": 8 }] '
oc patch -n openstack osctlplane overcloud --type= ' json ' -p= ' [{"op": "add", "path": "/spec/virtualMachineRoles/controller/memory", "value": 22 }] '
oc get osvmset
NAME CORES RAM DESIRED READY STATUS REASON
controller 8 22 1 1 Provisioned All requested VirtualMachines have been provisioned
virtctl start <VM>
untuk menyalakan vm kembali. Lihat dokumen Proses Pembaruan OSP