OpenStack Magnum
當今最流行的虛擬化就是容器化,雖然容器化不太算是完整的虛擬化,但是站在部屬服務的服務端而言可是幫了不少的忙,因為它可以大大的減少虛擬化吃的大量資源,他是結合Docker的技術還有加上Heat的編配技術,所搭建出來的服務。
很明顯地與VM的差距在於在於系統本身沒有進行隔離
但是光是這一點就可以為系統資源省下不少成本
但這是最大的優點也是最大的缺點
因為本身沒有與原系統做出明顯的隔離
但優點就是如果只要跑程式的話
這是一個不錯的方案
1.登入資料庫
sudo mysql -u root -p
2.建立資料庫
CREATE DATABASE magnum;
3.安全性設定
GRANT ALL PRIVILEGES ON magnum.* TO 'magnum'@'controller' IDENTIFIED BY 'MAGNUM資料庫密碼';
GRANT ALL PRIVILEGES ON magnum.* TO 'magnum'@'%' IDENTIFIED BY 'MAGNUM資料庫密碼';
1.登入admin管理者指令模式
2.新增使用者
openstack user create --domain default --password-prompt magnum
3.將使用者加入service群組
openstack role add --project service --user magnum admin
4.建立服務
openstack service create --name magnum --description "OpenStack Container Infrastructure Management Service" container-infra
5.建立API
openstack endpoint create --region RegionOne container-infra \
public http://CONTROLLER的IP:9511/v1
openstack endpoint create --region RegionOne container-infra \
internal http://CONTROLLER的IP:9511/v1
openstack endpoint create --region RegionOne container-infra \
admin http://CONTROLLER的IP:9511/v1
6.建立Domain
openstack domain create --description "Owns users and projects created by magnum" magnum
7.在這之中建立使用者
openstack user create --domain magnum --password-prompt magnum_domain_admin
8.將使用者加入Domain
openstack role add --domain magnum --user magnum_domain_admin admin
1.安裝套件
sudo DEBIAN_FRONTEND=noninteractive apt-get install magnum-api magnum-conductor -y
前面DEBIAN_FRONTEND=noninteractive是在做不用額外跳窗進入設定模式
2.編輯magnum.conf設定檔
sudo vim /etc/magnum/magnum.conf
[DEFAULT]
#訊息服務
transport_url = rabbit://openstack:AMQP密碼@controller
[api]
host = CONTROLLER的IP
#憑證管理
[certificates]
#如果有裝barbican可以填寫它,會在下一張寫到
cert_manager_type = x509keypair
[cinder_client]
region_name = RegionOne
[database]
connection = mysql+pymysql://magnum:MAGNUM資料庫密碼@controller/magnum
[keystone_authtoken]
memcached_servers = controller:11211
auth_version = v3
auth_uri = http://controller:5000/v3
project_domain_id = default
project_name = service
user_domain_id = default
password = MAGNUM密碼
username = magnum
auth_url = http://controller:35357
auth_type = password
[trust]
trustee_domain_name = magnum
trustee_domain_admin_name = magnum_domain_admin
trustee_domain_admin_password = Domain使用者密碼
[oslo_messaging_notifications]
driver = messaging
3.同步設定檔到資料庫
sudo su -s /bin/sh -c "magnum-db-manage upgrade" magnum
4.重啟服務
sudo service magnum-api restart
sudo service magnum-conductor restart
5.驗證服務
magnum service-list
1.下載Fedora的映像檔
wget https://fedorapeople.org/groups/magnum/fedora-atomic-newton.qcow2
2.登入demo使用者指令模式
3.登入映像檔
openstack image create --disk-format=qcow2 --container-format=bare
--file=fedora-atomic-newton.qcow2 --property os_distro='fedora-atomic' fedora-atomic-newton
4.從SSH金鑰建立連結金鑰
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
5.建立集群服務樣板
magnum cluster-template-create --name swarm-cluster-template --image-id fedora-atomic-newton \
--keypair-id mykey --external-network-id public --dns-nameserver 8.8.8.8
--master-flavor-id m1.small --flavor-id m1.small --coe swarm
6.建立集群服務
magnum cluster-create --name swarm-cluster --cluster-template swarm-cluster-template \
--master-count 1 --node-count 1
7.檢查是否否成功
magnum cluster-list
magnum cluster-show swarm-cluster
8.將憑證服務套用至變數
8-1 建立資料夾
mkdir myclusterconfig
8-2 讀取設定檔
$(magnum cluster-config swarm-cluster --dir myclusterconfig)
9.建立BusyBox
docker run busybox echo "Hello from Docker!"
10.刪除container
magnum cluster-delete swarm-cluster
我自己是本身就有使用Docker在部屬服務,這是我的一個興趣也是喜好,現在我有多一種方式可以幫我完成這一件事情了,大家可以試試看喔!
希望大家可以在這一個月中讀到非常多的應用技巧,那如果有問題可以以私訊我的方式是使用問題回復,我會盡可能地回答問題,那會在後面統一做回覆,或者如果有想知道的相關的應用也可以提出討論喔。
Docker vs. VMs? Combining Both for Cloud Portability Nirvana
OpenStack Doc