溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

OpenStack架構(gòu)----keystone組件(一)

發(fā)布時間:2020-06-16 07:14:03 來源:網(wǎng)絡(luò) 閱讀:1173 作者:藍(lán)月CC 欄目:云計算

本篇博文主要搭建OpenStack架構(gòu)中的keystone組件,之后會依次帶來OpenStack中的glance、nova、neutron、horizon、cinder和虛擬機(jī)的管理操作。在實驗部署之前,先對OpenStack進(jìn)行以下了解!

什么是OpenStack?

OpenStack既是一個社區(qū),也是一個項目和一個開源軟件,提供開放源碼軟件,建立公共和私有云,它提供了一個部署云的操作平臺或工具集,其宗旨在于:幫助組織運行為虛擬計算或存儲服務(wù)的云,為公有云、私有云,也為大云、小云提供可擴(kuò)展的、靈活的云計算。
OpenStackd開源項目由社區(qū)維護(hù),包括OpenStack計算(代號為Nova),OpenStack對象存儲(代號為Swift),并OpenStack鏡像服務(wù)(代號Glance)的集合。 OpenStack提供了一個操作平臺,或工具包,用于編排云。

OpenStack組件:

OpenStack當(dāng)前主要有三個組件:計算,存儲,鏡像。

  • OpenStack計算是一個云控制器,用來啟動一個用戶或一個組的虛擬實例,它也用于配置每個實例或項目中包含多個實例為某個特定項目的聯(lián)網(wǎng)。
  • OpenStack對象存儲是一個在具有內(nèi)置冗余和容錯的大容量系統(tǒng)中存儲對象的系統(tǒng)。對象存儲有各種應(yīng)用,如備份或存檔數(shù)據(jù),存儲圖形或視頻,儲存二級或三級靜態(tài)數(shù)據(jù),發(fā)展與數(shù)據(jù)存儲集成新的應(yīng)用程序。?
  • OpenStack鏡像服務(wù)是一個查找和虛擬機(jī)圖像檢索系統(tǒng)。它可以配置三種方式:使用OpenStack對象存儲來存儲圖像;使用亞馬遜S3直接存儲,或使用S3對象存儲作為S3訪問中間存儲。
    OpenStack架構(gòu)----keystone組件(一)

    OpenStack構(gòu)成

    整個OpenStack是由控制節(jié)點,計算節(jié)點,網(wǎng)絡(luò)節(jié)點,存儲節(jié)點四大部分組成。
    控制節(jié)點:負(fù)責(zé)對其余節(jié)點的控制,包含虛擬機(jī)建立,遷移,網(wǎng)絡(luò)分配,存儲分配等等
    計算節(jié)點:負(fù)責(zé)虛擬機(jī)運行
    網(wǎng)絡(luò)節(jié)點:負(fù)責(zé)對外網(wǎng)絡(luò)與內(nèi)網(wǎng)絡(luò)之間的通信
    存儲節(jié)點:負(fù)責(zé)對虛擬機(jī)的額外存儲管理等等

    控制節(jié)點架構(gòu)

    控制節(jié)點包括以下服務(wù):

  • 管理支持服務(wù)
  • 基礎(chǔ)管理服務(wù)
  • 擴(kuò)展管理服務(wù)
    1)管理支持服務(wù)包含MySQL與Qpid兩個服務(wù)
    MySQL:數(shù)據(jù)庫作為基礎(chǔ)/擴(kuò)展服務(wù)產(chǎn)生的數(shù)據(jù)存放的地方
    Qpid:消息代理(也稱消息中間件)為其他各種服務(wù)之間提供了統(tǒng)一的消息通信服務(wù)
    2)基礎(chǔ)管理服務(wù)包含Keystone,Glance,Nova,Neutron,Horizon五個服務(wù)
    Keystone:認(rèn)證管理服務(wù),提供了其余所有組件的認(rèn)證信息/令牌的管理,創(chuàng)建,修改等等,使用MySQL作為統(tǒng)一的數(shù)據(jù)庫
    Glance:鏡像管理服務(wù),提供了對虛擬機(jī)部署的時候所能提供的鏡像的管理,包含鏡像的導(dǎo)入,格式,以及制作相應(yīng)的模板
    Nova:計算管理服務(wù),提供了對計算節(jié)點的Nova的管理,使用Nova-API進(jìn)行通信
    Neutron:網(wǎng)絡(luò)管理服務(wù),提供了對網(wǎng)絡(luò)節(jié)點的網(wǎng)絡(luò)拓?fù)涔芾?,同時提供Neutron在Horizon的管理面板
    Horizon:控制臺服務(wù),提供了以Web的形式對所有節(jié)點的所有服務(wù)的管理,通常把該服務(wù)稱為DashBoard
    3)擴(kuò)展管理服務(wù)包含Cinder,Swift,Trove,Heat,Centimeter五個服務(wù)
    Cinder:提供管理存儲節(jié)點的Cinder相關(guān),同時提供Cinder在Horizon中的管理面板
    Swift:提供管理存儲節(jié)點的Swift相關(guān),同時提供Swift在Horizon中的管理面板
    Trove:提供管理數(shù)據(jù)庫節(jié)點的Trove相關(guān),同時提供Trove在Horizon中的管理面板
    Heat:提供了基于模板來實現(xiàn)云環(huán)境中資源的初始化,依賴關(guān)系處理,部署等基本操作,也可以解決自動收縮,負(fù)載均衡等高級特性。
    Centimeter:提供對物理資源以及虛擬資源的監(jiān)控,并記錄這些數(shù)據(jù),對該數(shù)據(jù)進(jìn)行分析,在一定條件下觸發(fā)相應(yīng)動作。

    實驗環(huán)境:

    本實驗需三臺虛擬機(jī),分別為控制節(jié)點(包含鏡像服務(wù))、計算節(jié)點、存儲節(jié)點;建議三臺虛擬機(jī)配置2個CPU,內(nèi)存設(shè)置為4G。

主機(jī) 系統(tǒng) IP地址 角色
controller CentOS7 192.168.37.128 keystone、ntp、mariadb、rabbitmq、memcached、etcd、apache
compute CentOS7 192.168.37.130 nova、ntp
cinder CentOS7 192.168.37.131 cinder、ntp

實驗過程:

一、環(huán)境準(zhǔn)備(三臺虛擬機(jī))

1、關(guān)閉防火墻 關(guān)閉selinux

systemctl stop firewalld.service
setenforce 0

2、分別修改主機(jī)名

hostnamectl set-hostname controller #控制節(jié)點
bash
hostnamectl set-hostname compute #計算節(jié)點
bash
hostnamectl set-hostname cinder #存儲節(jié)點
bash

3、修改hosts文件

vim /etc/hosts
192.168.37.128 controller
192.168.37.130 compute
192.168.37.131 cinder

4、節(jié)點互通測試

ping -c 4 openstack.org #發(fā)送4個包測試官網(wǎng)聯(lián)通
ping -c 4 compute
ping -c 4 openstack.org #計算節(jié)點測試
ping -c 4 controller
ping -c 4 openstack.org #存儲節(jié)點測試
ping -c 4 controller

5、備份默認(rèn)yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

6、下載最新yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

7、安裝所需openstack軟件包

yum install centos-release-openstack-queens -y
yum upgrade -y #更新軟件倉庫
yum install python-openstackclient -y
yum install openstack-selinux -y

二、配置NTP時鐘服務(wù)

##controller節(jié)點##
1、yum安裝chrony軟件包

yum install chrony -y

2、修改chrony配置文件

vim /etc/chrony.conf                 #文件開頭插入
   server  controller  iburst          #自己為時間源點所有節(jié)點向controller節(jié)點同步時間
   allow 192.168.37.0/24         #設(shè)置時間同步網(wǎng)段

3、開啟NTP服務(wù)

systemctl enable chronyd
systemctl stop chronyd
systemctl start chronyd
#因chrony服務(wù)本身開機(jī)自啟動,所以需要關(guān)閉后重新開啟

OpenStack架構(gòu)----keystone組件(一)

##其他節(jié)點配置##
1、yum安裝chrony軟件包

yum install chrony -y

2、修改chrony配置文件

vim /etc/chrony.conf
   server  controller  iburst                #同步controller

3、開啟服務(wù)

systemctl stop chronyd
systemctl start chronyd

4、controller上驗證時鐘同步服務(wù)

chronyc sources

三、數(shù)據(jù)庫部署(controller節(jié)點)

1、yum安裝mariadb

yum install mariadb mariadb-server python2-PyMySQL -y

2、修改mariadb配置文件

vim /etc/my.cnf.d/mariadb-server.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid 
#以下是新增內(nèi)容
bind-address = 192.168.37.128            #綁定地址controller
default-storage-engine = innodb            #默認(rèn)存儲引擎
innodb_file_per_table = on                     #獨立表空間
max_connections = 4096                       #最大連接
collation-server = utf8_general_ci         #字符集設(shè)定
character-set-server = utf8

3、開啟mariadb服務(wù),設(shè)置開啟自啟動

systemctl enable mariadb.service
systemctl start mariadb.service

OpenStack架構(gòu)----keystone組件(一)

4、數(shù)據(jù)庫基本設(shè)置

mysql_secure_installation
#基本設(shè)置,除設(shè)置密碼為abc123外全部回車

四、rabbitmq服務(wù)部署(controller節(jié)點)

1、yum安裝rabbitmq-server包

yum install rabbitmq-server -y

2、開啟rabbitmq服務(wù),設(shè)置開啟自啟動

systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

3、重啟服務(wù)后添加用戶及權(quán)限

rabbitmqctl add_user openstack 123456 #添加用戶
rabbitmqctl set_permissions openstack "." "." ".*"

OpenStack架構(gòu)----keystone組件(一)

五、memcached服務(wù)部署(controller節(jié)點)

1、yum安裝memcached包

yum install memcached python-memcached -y

2、修改memcached配置文件

vim /etc/sysconfig/memcached

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 192.168.37.128,::1"        #修改監(jiān)聽IP地址

3、開啟memcached服務(wù),設(shè)置開啟自啟動

systemctl enable memcached.service
systemctl start memcached.service

六、ETCD服務(wù)發(fā)現(xiàn)機(jī)制部署(controller節(jié)點)

  • etcd是一個高可用的分布式鍵值(key-value)數(shù)據(jù)庫
  • 用于服務(wù)發(fā)現(xiàn),服務(wù)發(fā)現(xiàn)(ServiceDiscovery)要解決的是分布式系統(tǒng)中最常見的問題之一,即在同一個分布式集群中的進(jìn)程或服務(wù)如何才能找到對方并建立連接

1、yum安裝etcd包

yum install etcd -y

2、修改etcd配置文件,結(jié)果如下:

ETCD_INITIAL_CLUSTER          #開啟群集功能:匹配群集中所有url地址(public、admin、internal)
ETCD_INITIAL_ADVERTISE_PEER_URLS
ETCD_ADVERTISE_CLIENT_URLS
ETCD_LISTEN_CLIENT_URLS
[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"               #文件存放位置
ETCD_LISTEN_PEER_URLS="http://192.168.37.128:2380"      #監(jiān)聽群集服務(wù)端地址
ETCD_LISTEN_CLIENT_URLS="http://192.168.37.128:2379"    #宣告客戶端地址
ETCD_NAME="controller"
[Clustering]                                     #匹配群集地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.37.128:2380"   #控制端地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.37.128:2379"               #客戶端地址
ETCD_INITIAL_CLUSTER="controller=http://192.168.37.128:2380"              #群集名稱設(shè)定
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"                                     #令牌設(shè)定
ETCD_INITIAL_CLUSTER_STATE="new"

OpenStack架構(gòu)----keystone組件(一)
3、開啟etcd服務(wù),設(shè)置開機(jī)自啟動

systemctl enable etcd.service
systemctl start etcd.service

七、keystone認(rèn)證(controller節(jié)點)

1、單獨創(chuàng)建數(shù)據(jù)庫keystone,聲明用戶并授權(quán)

mysql -uroot -p #密碼abc123
create database keystone;
grant all privileges on keystone. to 'keystone'@'localhost' identified by '123456'; #本地用戶授權(quán)
grant all privileges on keystone.
to 'keystone'@'%' identified by '123456';
flush privileges; #其他用戶授權(quán)

2、yum安裝軟件包

yum install openstack-keystone httpd mod_wsgi -y

3、編輯keystone配置文件

vim /etc/keystone/keystone.conf
[database]
#737行
connection = mysql+pymysql://keystone:123456@controller/keystone

[token]
#2922行
provider = fernet                                 #安全消息傳遞算法

4、同步數(shù)據(jù)庫

su -s /bin/sh -c "keystone-manage db_sync" keystone

5、初始化數(shù)據(jù)庫

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

6、給管理員設(shè)置密碼,注冊三種訪問方式

keystone-manage bootstrap --bootstrap-password 123456 \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne

八、Apache服務(wù)部署

1、編輯httpd配置文件

vim /etc/httpd/conf/httpd.conf

ServerName controller

2、建立軟連接,使apache識別keystone

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

3、開啟Apache服務(wù),設(shè)置開機(jī)自啟動

systemctl enable httpd.service
systemctl start httpd.service

4、聲明環(huán)境變量

export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3

OpenStack架構(gòu)----keystone組件(一)

九、創(chuàng)建demo平臺管理

1、創(chuàng)建域Domain

openstack domain create --description "Domain" example

2、創(chuàng)建項目Service Project

openstack project create --domain default --description "Service Project" service

3、創(chuàng)建平臺demo項目

openstack project create --domain default --description "Demo Project" demo

4、創(chuàng)建demo用戶

openstack user create --domain default --password-prompt demo
#輸入密碼:123456

5、創(chuàng)建用戶角色

openstack role create user

OpenStack架構(gòu)----keystone組件(一)

6、添加用戶角色到demo項目和用戶

openstack role add --project demo --user demo user

十、驗證keystone的操作

1、取消環(huán)境變量

unset OS_AUTH_URL OS_PASSWORD

2、admin用戶返回的認(rèn)證token

openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name admin --os-username admin token issue
#密碼:123456

OpenStack架構(gòu)----keystone組件(一)
3、demo用戶返回的認(rèn)證token

openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name demo --os-username demo token issue
#密碼:123456

4、創(chuàng)建admin-openrc腳本

vim admin-openrc

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

5、創(chuàng)建demo-openrc腳本

vim demo-openrc

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=123456
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

6、使用腳本,返回認(rèn)證token

source ~/admin-openrc
openstack token issue

OpenStack架構(gòu)----keystone組件(一)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI