Selamlar bu anlatıma geçmeden önce bu anlatımdan önceki işlemleri yaptığınızdan emin olun.
OpenStack Victoria Sürümü: Temel Bileşenler ve Kurulum Adımları
OpenStack Victoria: Keystone Kurulumu
Şimdi bu anlatıma kadar elimizde ne var bir bakalım;
- MariaDB
- RabbitMQ
- Memcached
- httpd (Apache)
- Keystone
şuana kadar ki envanterimiz bu şekilde. Buraya kadar tüm kurulumları sorunsuz başardıysak iyi ilerlemişizdir. Şimdi sırada kuracağımız servis Glance servisi.
Glance: OpenStack’in İmaj Yönetim Bileşeni
Glance, OpenStack’in önemli bileşenlerinden biridir ve sanal makine imajlarının yönetimini sağlar. Bir başka deyişle, Glance, sanal makineler için kullanılan disk imajlarını toplayan, kaydeden, saklayan ve gerektiğinde bu imajları kullanarak yeni sanal makineler oluşturulmasına olanak tanıyan bir hizmettir.
Glance’in temel işlevleri şunlardır:
1. İmaj Saklama (Storage):
• Glance, sanal makine imajlarını saklamak için çeşitli depolama türlerini destekler. Bunlar arasında yerel dosya sistemi, OpenStack Object Storage (Swift), Amazon S3 ve çeşitli NAS cihazları yer alır. Bu sayede, esnek ve ölçeklenebilir bir imaj depolama sistemi sunar.
2. İmaj Yönetimi:
• Glance, kullanıcıların imajları kolayca yönetmesine olanak tanır. Kullanıcılar, mevcut imajları listeleyebilir, yeni imajlar ekleyebilir, gereksiz imajları silebilir veya var olan imajları güncelleyebilirler. Bu yönetim işlemleri, hem Glance’ın API’leri üzerinden hem de OpenStack’in web arayüzü olan Horizon aracılığıyla yapılabilir.
3. İmaj Paylaşımı:
• Glance, imajların projeler arasında paylaşılmasına izin verir. Bu özellik sayesinde, bir projede oluşturulan imajlar, başka projelerde de kullanılabilir hale gelir. Böylece, iş birliği ve kaynak paylaşımı kolaylaşır.
4. İmaj Formatları:
• Glance, çeşitli imaj formatlarını destekler. Örneğin, RAW, VHD (Virtual Hard Disk), VMDK (VMware Disk Format), QEMU/KVM QCOW2 gibi yaygın sanal makine imaj formatları Glance üzerinden yönetilebilir. Bu geniş format desteği, farklı sanallaştırma teknolojileri ile uyumluluğu artırır.
5. İmaj İndeksleme ve Meta Veri Yönetimi:
• Glance, imajların meta verilerini (örneğin, imajın adı, versiyonu, işletim sistemi türü, boyutu gibi bilgiler) saklar ve bu verilerin indekslenmesine olanak tanır. Bu sayede, kullanıcılar imajları çeşitli kriterlere göre arayabilir ve filtreleyebilirler. Meta veri yönetimi, imajların organizasyonu ve bulunabilirliği açısından büyük önem taşır.
6. İmaj Güvenliği:
• Glance, imajların güvenliğini sağlamak için çeşitli mekanizmalar sunar. İmajlar yüklenirken, Glance bunların güvenliğini doğrulamak için imza kontrolü yapabilir. Ayrıca, yalnızca yetkili kullanıcıların imajlara erişebilmesi için rol tabanlı erişim kontrolü de uygulanabilir.
Glance’ın OpenStack İçindeki Rolü
Glance, OpenStack’in diğer bileşenleri ile entegre çalışır. Örneğin, Nova bileşeni, yeni bir sanal makine oluştururken Glance’dan bir imaj alır ve bu imajı kullanarak sanal makineyi başlatır. Bu nedenle, Glance’ın doğru ve etkili bir şekilde çalışması, OpenStack’in genel performansı ve kullanılabilirliği açısından kritik bir öneme sahiptir.
Glance Mimarisi:
Keystone Kullanıcı Yönetimi: Glance İçin Kullanıcı ve Servislerin Eklenmesi
# create [glance] user in [service] project
~(keystone)# openstack user create --domain default --project service --password servicepassword glance
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| default_project_id | 7d06ed9da6144785a665b7f66248a2ff |
| domain_id | default |
| enabled | True |
| id | ac8bf333321c420d9b1071dfc7d73b23 |
| name | glance |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
# add [glance] user in [admin] role
~(keystone)# openstack role add --project service --user glance admin
# create service entry for [glance]
~(keystone)# openstack service create --name glance --description "OpenStack Image service" image
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Openstack Image Service |
| enabled | True |
| id | 559d34efb4a34c18a03c16fdc1ac678f |
| name | glance |
| type | image |
+-------------+----------------------------------+
# define Glance API Host
~(keystone)# export controller=controlnode01_IP
# create endpoint for [glance] (public)
~(keystone)# openstack endpoint create --region RegionOne image public http://$controller:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | ff4e3c56fdc8424b882c2d51a746ca99 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 559d34efb4a34c18a03c16fdc1ac678f |
| service_name | glance |
| service_type | image |
| url | http://controlnode01_IP:9292 |
+--------------+----------------------------------+
# create endpoint for [glance] (internal)
~(keystone)# openstack endpoint create --region RegionOne image internal http://$controller:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 0568bce630834f72a51b60131c39f8e6 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 559d34efb4a34c18a03c16fdc1ac678f |
| service_name | glance |
| service_type | image |
| url | http://controlnode01_IP:9292 |
+--------------+----------------------------------+
# create endpoint for [glance] (admin)
~(keystone)# openstack endpoint create --region RegionOne image admin http://$controller:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 7e0d43b768c24aafb9c1436bec5edafe |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 559d34efb4a34c18a03c16fdc1ac678f |
| service_name | glance |
| service_type | image |
| url | http://controlnode01_IP:9292 |
+--------------+----------------------------------+
MariaDB’de Glance İçin Kullanıcı ve Veritabanı Oluşturma Adımları
~(keystone)#mysql
MariaDB [(none)]> create database glance;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on glance.* to glance@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on glance.* to glance@'%' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
Glance (Image Servisi) Kurulumu
~(keystone)# apt -y install glance
Glance Konfigürasyonu
~(keystone)# mv /etc/glance/glance-api.conf /etc/glance/glance-api.conf.org
~(keystone)# vi /etc/glance/glance-api.conf
# create new
[DEFAULT]
bind_host = 0.0.0.0
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
[database]
# MariaDB connection info
connection = mysql+pymysql://glance:password@controlnode01_IP/glance
# keystone auth info
[keystone_authtoken]
www_authenticate_uri = http://controlnode01_IP:5000
auth_url = http://controlnode01_IP:5000
memcached_servers = controlnode01_IP:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = servicepassword
[paste_deploy]
flavor = keystone
~(keystone)# chmod 640 /etc/glance/glance-api.conf
~(keystone)# chown root:glance /etc/glance/glance-api.conf
~(keystone)# su -s /bin/bash glance -c "glance-manage db_sync"
~(keystone)# systemctl restart glance-api
Glance bileşeninin private cloud ortamınızda hangi mimari yapıda kullanılacağını belirlemek için, OpenStack Wiki’deki Edge Environment rehberini inceleyebilirsiniz. Bu rehber, farklı kullanım senaryolarına uygun en ideal yapılandırmayı seçmenize yardımcı olacaktır.
Not: Glance’ın desteklediği disk ve container image formatları burdan görebilirsiniz.