openstack云计算平台 1(认证服务、镜像服务)
目錄
- 一、openstack云計算平臺
- 1.openstack簡介
- 2.openstack的架構
- 3.openstack搭建
- a.實驗環境
- b.控制節點配置
- 二、組件1---認證服務
- 1.創建數據庫
- 2.創建服務實體和API端點
- 3.創建域、項目、用戶和角色
- 4.驗證操作
- 5.創建 OpenStack 客戶端環境腳本
- 三、組件2---鏡像服務
- 1.簡介
- 2.安裝和配置
- 3.驗證操作
一、openstack云計算平臺
1.openstack簡介
- OpenStack是一個云操作系統,它控制整個數據中心的計算、存儲和網絡資源的大型池,所有這些都通過具有通用身份驗證機制的api進行管理和配置。還提供了一個儀表板,允許管理員控制,同時允許用戶通過web界面提供資源。除了標準的基礎設施即服務功能外,其他組件還提供編排、故障管理和服務管理等服務,以確保用戶應用程序的高可用性。
- OpenStack 架構由大量開源項目組成。其中包含 6 個穩定可靠的核心服務,用于處理計算、網絡、存儲、身份和鏡像; 同時,還為用戶提供了十多種開發成熟度各異的可選服務。OpenStack 的 6 個核心服務主要擔綱系統的基礎架構,其余項目則負責管理控制面板、編排、裸機部署、信息傳遞、容器及統籌管理等操作。
- 整個OpenStack是由控制節點,計算節點,網絡節點,存儲節點四大部分組成。
openstack重要集成組件:
1、Nova - 計算服務,是一個完整的 OpenStack 計算資源管理和訪問工具,負責處理規劃、創建和刪除操作。
2、Neutron-網絡服務,是一個完整的 OpenStack 計算資源管理和訪問工具,負責處理規劃、創建和刪除操作。
3、Swift - 對象存儲服務, 是一種高度容錯的對象存儲服務,使用 RESTful API 來存儲和檢索非結構數據對象。
4、Cinder-塊存儲服務,通過自助服務 API 訪問持久塊存儲。
5、Glance - 鏡像服務,Glance 可存儲和檢索多個位置的虛擬機磁盤鏡像。
6、dashboard - web管理界面。
7、Keystone - 認證服務,認證所有 OpenStack 服務并對其進行授權。同時,它也是所有服務的端點目錄。
8、Horizon - UI服務。
9、Ceilometer-監控服務。
10、Heat-集群服務,編排。
2.openstack的架構
- 基本架構
通過消息隊列和數據庫,各個組件可以相互調用,互相通信。每個項目都有各自的特性,大而全的架構并非適合每一個用戶,如Glance在最早的A、B版本中并沒有實際出現應用,Nova可以脫離鏡像服務獨立運行。當用戶的云計算規模大到需要管理多種鏡像時,才需要像Glance這樣的組件。 - 邏輯架構
3.openstack搭建
a.實驗環境
單點部署 all-in-one模式:
rhel7.6虛擬機,至少4G的內存;
雙網卡 eth0: 172.25.36.5 訪問Horizon使用,eth1:激活但不分配ip,neutron使用,云主機訪問外網用;
禁用selinux和firewalld;
虛擬機的cpu需要支持kvm虛擬化,CPU 設為直通模式( host-passthrough 是為了虛擬機里支持 kvm 硬件虛擬化)
可以參考openstack 的官網來看其相關設置以及配置:點擊
選擇語言
選擇版本
b.控制節點配置
一塊網卡eth0給了ip,另一塊網卡eth1(用于云主機通信)可以不給ip,但需要激活
網卡配置文件如下
激活eth1網卡,除此之外,記得做所有節點的域名解析/etc/hosts
openstack要求所有節點的時間必須同步,也就是說:所有節點的時間必須與控制節點的時間相同。真機使用Chrony簡單配置服務器之間的時間同步
保證宿主機與阿里云服務器時間同步
允許以下網段的NTP客戶端訪問(也就是允許該網段的主機通過宿主機同步時間)
真機可以上網
server5安裝時間同步服務器
修改/etc/chrony.conf配置
設定server5與宿主機同步時間
啟動并自啟chrony服務
查看是否成功
在真機的apache 發布目錄中,將openstack軟件包復制到該目錄中
server5配置倉庫文件
在安裝之前,先在server5上升級包
安裝 OpenStack 客戶端
整個openstack 的數據都會持久化保存到 SQL 數據庫中,此處使用mariadb 數據庫;
安裝軟件包
之后,創建并編輯 /etc/my.cnf.d/openstack.cnf,然后在 [mysqld] 部分,設置 bind-address值為控制節點的管理網絡IP地址,以使得其它節點可以通過管理網絡訪問數據庫;
設置如下鍵值來啟用一起有用的選項和 UTF-8 字符集;
啟動數據庫服務,并將其配置為開機自啟。
為了保證數據庫服務的安全性,運行mysql_secure_installation腳本。需要為數據庫的root用戶設置一個適當的密碼(全選yes)
成功登陸數據庫
OpenStack 使用 message queue (消息隊列)協調操作和各服務的狀態信息。消息隊列服務一般運行在控制節點上。OpenStack支持好幾種消息隊列服務包括 RabbitMQ, Qpid, 和 ZeroMQ。不過,大多數發行版本的OpenStack包支持特定的消息隊列服務;
這里安裝 RabbitMQ 消息隊列服務,因為大部分發行版本都支持它。
啟動消息隊列服務并將其配置為隨系統啟動:
添加 openstack 用戶,密碼也設為openstack(用戶名和密碼保持一致,便于記憶),前面是用戶,后面為密碼;
給openstack用戶配置寫和讀權限
查看rabbitmq的插件
激活管理器插件
查看端口,5672為主端口,15672為web端口
登陸頁面,默認用戶名和密碼都是guest
點擊admin,可以看到如下三個星號,分別代表:配置、讀、寫權限(rabbitmq自帶的后臺圖形化管理工具)
認證服務認證緩存使用Memcached緩存令牌。緩存服務memecached運行在控制節點
啟動Memcached服務,并且配置它隨機啟動,端口為11211(可以看到這個端口只監聽本機,那么其他主機將無法連接它),因此需要變更一下
編輯如下全局文件,禁用OPTIONS;
重啟服務,此時,11211可以監聽本機所有接口
我們將server5主機名修改為controller,表示server5為控制節點
修改域名解析文件;
server5為控制節點,server6為計算節點,server7為塊存儲節點
二、組件1—認證服務
1.創建數據庫
接下來在控制節點上安裝和配置OpenStack身份認證服務,代碼名稱keystone。出于性能原因,這個配置部署Fernet令牌和Apache HTTP服務處理請求;
在配置 OpenStack 身份認證服務前,必須創建一個數據庫和管理員令牌。
首先,用數據庫連接客戶端以 root 用戶連接到數據庫服務器;
創建 keystone 數據庫
對keystone數據庫授予恰當的權限,保證keystone用戶可以從本地和遠程登陸數據庫(用戶名和密碼保持一致,便于記憶)
測試登陸
運行以下命令來安裝相應包
生成一個隨機值在初始的配置中作為管理員的令牌;
編輯文件 /etc/keystone/keystone.conf
在[DEFAULT]部分,定義初始管理令牌的值
在[database]部分,配置數據庫訪問;
數據庫驅動為mysql,使用pymysql(python開發的),使用keystone用戶、keystone密碼來連接controller節點,訪問keystone數據庫
在[token]部分,配置Fernet UUID令牌的提供者
初始化身份認證服務的數據庫(以keystone用戶身份來同步數據庫)
登陸數據庫,可以看到數據已經同步到了數據庫中
初始化Fernet keys
編輯Apache主配置文件/etc/httpd/conf/httpd.conf ,配置ServerName 選項為控制節點
用下面的內容創建文件 /etc/httpd/conf.d/wsgi-keystone.conf
激活兩個端口:5000(用于公共連接),35357(用于admin管理員連接)
啟動 Apache HTTP 服務并配置其隨系統啟動
2.創建服務實體和API端點
身份認證服務提供服務的目錄和他們的位置。每個添加到OpenStack環境中的服務在目錄中需要一個 service 實體和一些 API endpoints ;
默認情況下,身份認證服務數據庫不包含支持傳統認證和目錄服務的信息。必須使用為身份認證服務創建的臨時身份驗證令牌,來初始化的服務實體和API端點。
配置認證令牌
配置端點URL(v3版本);
配置認證 API 版本
創建服務實體和身份認證服務
OpenStack使用三個API端點變種代表每種服務:admin,internal和public;
默認情況下,管理API端點允許修改用戶和租戶而公共和內部APIs不允許這些操作。在生產環境中,處于安全原因,變種為了服務不同類型的用戶可能駐留在單獨的網絡上。對實例而言,公共API網絡為了讓顧客管理他們自己的云在互聯網上是可見的。管理API網絡在管理云基礎設施的組織中操作也是有所限制的。內部API網絡可能會被限制在包含OpenStack服務的主機上。此外,OpenStack支持可伸縮性的多區域。
創建認證服務的 API 端點(外部連接)
創建認證服務的 API 端點(內部連接)
創建認證服務的 API 端點(管理員連接的)
查看所創建的endpoint
3.創建域、項目、用戶和角色
身份認證服務為每個OpenStack服務提供認證服務。認證服務使用 T domains, projects (tenants), :term:users<user>和 :term:roles<role>的組合。
創建域default
為進行管理操作,需要創建管理的項目、用戶和角色;
創建 admin 項目:
創建 admin 用戶,使用 --password 直接為admin用戶設置密碼(密碼為admin,便于記憶)
創建 admin 角色(基于RBAC角色的訪問控制)
添加admin 角色到 admin 項目和用戶上,使得admin用戶能夠以admin管理員角色管理admin項目
每個服務包含獨有用戶的service 項目;
創建service項目:
創建demo 項目(非管理員的項目)
創建demo 用戶
創建 user 角色
添加 user角色到demo 項目和用戶(使得demo用戶能夠以demo角色管理demo項目)
4.驗證操作
因為安全性的原因,關閉臨時認證令牌機制(此時已經有兩個用戶–admin和demo);
作為 admin 用戶,請求認證令牌
作為demo 用戶,請求認證令牌
此時無法直接看到user,必須加上連接的URL等等,進行身份認證
5.創建 OpenStack 客戶端環境腳本
之前使用環境變量和命令選項的組合通過openstack客戶端與身份認證服務交互。為了提升客戶端操作的效率,OpenStack支持簡單的客戶端環境變量腳本即OpenRC 文件。這些腳本通常包含客戶端所有常見的選項,當然也支持獨特的選項。
創建 admin 和 demo 項目和用戶創建客戶端環境變量腳本。接下來的部分會引用這些腳本,為客戶端操作加載合適的的憑證;
編輯文件 admin-openrc 并添加如下內容:
編輯文件 demo-openrc 并添加如下內容
加載admin-openrc文件來身份認證服務的環境變量位置和admin項目和用戶證書;
此時,可以列出相應信息(所有的用戶、連接端點)
列出角色、項目、服務
加載demo-openrc文件,普通用戶沒有操作權限,只有admin才能有相應的操作權限
三、組件2—鏡像服務
1.簡介
鏡像服務 (glance) 允許用戶發現、注冊和獲取虛擬機鏡像。它提供了一個 REST API,允許您查詢虛擬機鏡像的 metadata 并獲取一個現存的鏡像。您可以將虛擬機鏡像存儲到各種位置,從簡單的文件系統到對象存儲系統—-例如 OpenStack 對象存儲, 并通過鏡像服務使用。
- OpenStack鏡像服務是IaaS的核心服務,它接受磁盤鏡像或服務器鏡像API請求,和來自終端用戶或OpenStack計算組件的元數據定義。它也支持包括OpenStack對象存儲在內的多種類型倉庫上的磁盤鏡像或服務器鏡像存儲。
- 大量周期性進程運行于OpenStack鏡像服務上以支持緩存。同步復制(Replication)服務保證集群中的一致性和可用性。其它周期性進程包括auditors, updaters, 和 reapers。
- OpenStack鏡像服務包括以下組件:
1、glance-api:接收鏡像API的調用,諸如鏡像發現、恢復、存儲。
2、glance-registry:存儲、處理和恢復鏡像的元數據,元數據包括項諸如大小和類型。注意:glance-registry是私有內部服務,用于服務OpenStack Image服務。不要向用戶暴露該服務。
3、數據庫:存放鏡像元數據,用戶是可以依據個人喜好選擇數據庫的,多數的部署使用MySQL或SQLite。
4、鏡像文件的存儲倉庫:支持多種類型的倉庫,它們有普通文件系統、對象存儲、RADOS塊設備、HTTP、以及亞馬遜S3。記住,其中一些倉庫僅支持只讀方式使用。
5、元數據定義服務:通用的API,是用于為廠商,管理員,服務,以及用戶自定義元數據。這種元數據可用于不同的資源,例如鏡像,工件,卷,配額以及集合。一個定義包括了新屬性的鍵,描述,約束以及可以與之關聯的資源的類型。
2.安裝和配置
接下來我們在控制節點上安裝和配置鏡像服務,即 glance。這個配置將鏡像保存在本地文件系統中。安裝和配置鏡像服務之前,你必須創建創建一個數據庫、服務憑證和API端點。
用數據庫連接客戶端以 root 用戶連接到數據庫服務器;
創建 glance 數據庫;
對glance數據庫授予恰當的權限(使得glance用戶可以通過本地和遠端登陸數據庫)。
創建 glance 用戶(用于keystone認證)
添加 admin 角色到 glance 用戶和 service 項目上;
創建glance服務實體
創建鏡像服務的 API 端點(public),這個組件的端口是9292
創建鏡像服務的 API 端點(內部)
創建鏡像服務的 API 端點(admin)
安裝軟件包
編輯文件 /etc/glance/glance-api.conf
搜索database
在 [database] 部分,配置數據庫訪問
在 [keystone_authtoken] 和 [paste_deploy] 部分,配置認證服務訪問
啟用keystone認證
在 [glance_store] 部分,配置本地文件系統存儲和鏡像文件位置
編輯文件 /etc/glance/glance-registry.conf
在 [database] 部分,配置數據庫訪問
在 [keystone_authtoken] 和 [paste_deploy] 部分,配置認證服務訪問
寫入鏡像服務數據庫(同步數據庫);
可以忽略輸出中任何不推薦使用的信息
進入數據庫查看
啟動鏡像服務、配置他們隨機啟動
3.驗證操作
使用 CirrOS 對鏡像服務進行驗證,CirrOS是一個小型的Linux鏡像可以用來幫助我們進行 OpenStack部署測試;
將宿主機提前下載的鏡像傳給server5
使用 QCOW2 磁盤格式,bare 容器格式上傳鏡像到鏡像服務并設置公共可見,這樣所有的項目都可以訪問它
可以看到鏡像存儲如下;
確認鏡像的上傳并驗證屬性(可以看到,ID和鏡像名是相同的)
總結
以上是生活随笔為你收集整理的openstack云计算平台 1(认证服务、镜像服务)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wps合并所有sheet页_WPS怎么把
- 下一篇: 数字图像(上)