Openstack

雲平臺部署與管理
openstack 私有云
docker 彈性雲
公有云

大型架構配置
ansible
ELK
hadoop

雲計算簡介

什麼是雲計算

  • 基於互聯網的相關服務的增加、使用和交付模式
  • 這種模式提供可用的、便捷的、按需的網絡訪問, 進入可配置的計算資源共享池
  • 這些資源能夠被快速提供,只需投入很少的管理工作, 或與服務供應商進行很少的交互
  • 通常涉及通過互聯網來提供動態易擴展且經常是虛擬化的資源

IaaS

  • Iaas( Infrastructure as Service),即基礎設施即服務
  • 提供給消費者的服務是對所有計算基礎設施的利用, 包括處理CPU、內存、存儲、網絡和其它基本的計算資源,用戶能夠部署和運行任意軟件,包括操作系統和應用程序
  • IaaS通常分爲三種用法:公有云、私有云和混合雲

PaaS

  • PaaS( Platform-as-a-Service),意思是平臺即服務
  • 以服務器平臺或者開發環境作爲服務進行提供就成爲了PaaS
  • PaaS運營商所需提供的服務,不僅僅是單純的基礎平臺,還針對該平臺的技術支持服務,甚至針對該平臺而進行的應用系統開發、優化等服務
  • 簡單地說,PaaS平臺是指雲環境中的應用基礎設施 服務,也可以說是中間件即服務

SaaS

  • SaaS(Software-as-a-Service)軟件即服務,是一種通過Internet提供軟件的模式,廠商將應用軟件統一部署在自己的服務器上,客戶可以根據自己實際需求,通過互聯網向廠商定購所需的應用軟件服務
  • 用戶不用再購買軟件,而是向提供商租用基於Web的軟件,來管理企業經營活動,不用對軟件進行維護,提供商會全權管理和維護軟件,同時也提供軟件的離線操作和本地數據存儲

Openstack簡介

  • OpenStack是一個由NASA(美國國家航空航天局) 和Rackspace合作研發併發起的項目
  • OpenStack是一套IaaS解決方案
  • OpenStack是一個開源的雲計算管理平臺
  • 以 Apache許可證爲授權

openstack結構

在這裏插入圖片描述
Openstack主要組件

  • Horizon

    • 用於管理 Openstack各種服務的、基於web的管理接口
    • 通過圖形界面實現創建用戶、管理網絡、啓動實例等操作
  • Glance 管理鏡像

    • 扮演虛擬機鏡像註冊的角色
    • 允許用戶爲直接存儲拷貝服務器鏡像
    • 這些鏡像可以用於新建虛擬機的模板
  • Nova 管理虛擬機

    • 在節點上用於管理虛擬機的服務
    • Nova是一個分佈式的服務,能夠與 Keystone交互實現認證,與 Glance交互實現鏡像管理
    • Nova被設計成在標準硬件上能夠進行水平擴展
    • 啓動實例時,如果有則需要下載鏡像
  • Swift 存儲雲組件,對象存儲

  • Neutron 網絡組件(最複雜)

    • 一種軟件定義網絡服務
    • 用於創建網絡、子網、路由器、管理浮動IP地址
    • 可以實現虛擬交換機、虛擬路由器
    • 可用於在項目中創建VPN
  • Cinder 存儲卷

    • 經常應用在實例存儲環境中,如數據庫文件
    • 爲虛擬機管理存儲卷的服務
    • 爲運行在Nova中的實例提供永久的塊存儲
    • 可以通過快照進行數據備份
  • Keystone 集中式的認證和授權

    • 爲用戶和其他服務提供了SSO認證服務
    • 爲其他服務提供認證和授權的集中身份管理服務
    • 也提供了集中的目錄服務
    • 支持多種身份認證模式,如密碼認證、令牌認證、以及Aws(亞馬遜Web服務)登陸

部署安裝環境

  • 虛擬機配置4臺
角色 主機名 IP地址 內存 CPU核心數 硬盤容量
yum服務器 yum 192.168.1.100 1G 2 20G
openstack管理節點 openstackmgm 192.168.1.10 8G 2 50G
nova01 nova01 192.168.1.11 3G 2 100G
nova02 nova02 192.168.1.12 3G 2 100G
  • 所有虛擬機的firewalld/NetworkManager必須關閉,SELinux設置爲disabled

1)配置yum服務器

yum -y install httpd
cd /var/www/html/
mkdir openstack extras centos-1804
mount -t iso9660 -o ro,loop /iso/CentOS-7-x86_64-DVD-1804.iso centos-1804
mount -t iso9660 -o ro,loop /iso/RHEL7-extras.iso extras
mount -t iso9660 -o ro,loop /iso/RHEL7OSP-10.iso openstack
systemctl start httpd
lftp http://192.168.1.100/extras     # 查看是否成功
> ls

2)配置ntp時間同步

服務器:yum

] yum -y install chrony
] vim /etc/chrony.conf
bindacqaddress 0.0.0.0
allow 0/0
] systemctl restart chronyd

客戶端:openstack_manager/nova01/nova02

] yum -y install chrony
] vim /etc/chrony.conf
server 192.168.1.100 iburst
] rsync -av /etc/chrony.conf 192.168.1.11:/etc/chrony.conf
] rsync -av /etc/chrony.conf 192.168.1.12:/etc/chrony.conf
] systemctl restart chronyd
] chronyc sources -v    # 檢查
^* 192.168.1.100                  2   6   377    51    -37us[  -51us] +/-   10ms   # 出現*表示服務可用

3)配置DNS

所有機器相同配置

] vim /etc/resolv.conf
# 需要虛擬機可以上網
nameserver 8.8.8.8
# 去掉search開頭的行
] vim /etc/hosts    
192.168.1.10 openstackmgm
192.168.1.11 nova01
192.168.1.12 nova02

4)配置yum源

vim /etc/yum.repos.d/openstack.repo
[openstack]
baseurl=http://192.168.1.100/openstack/rhel-7-server-openstack-10-rpms
gpgcheck=0
enabled=1
name=rhel openstack rpm

[openstack-tools]
baseurl=http://192.168.1.100/openstack/rhel-7-server-openstack-10-devtools-rpms
gpgcheck=0
enabled=1
name=rhel openstack devtools

[extrasrpm]
baseurl=http://192.168.1.100/extras/
gpgcheck=0
enabled=1
name=extras rpm

rsync -av /etc/yum.repos.d/openstack.repo nova01:/etc/yum.repos.d/
rsync -av /etc/yum.repos.d/openstack.repo nova02:/etc/yum.repos.d/

yum makecache
yum repolist

部署Openstack

1)依賴軟件包安裝

openstackmgm:
yum -y install python-setuptools openstack-packstack
nova01/nova02:
yum -y install qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
python-setuptools  # python工具包
openstack-packstack # openstack安裝腳本
qemu-kvm # kvm虛擬化模塊,啓動虛擬機的底層硬件仿真工具
libvirt-daemon # 給用戶提供管理虛擬化工具
libvirt-daemon-drive-qemu # 管理驅動
libvirt-client # 客戶端命令行程序

2)檢查基礎環境

  • 是否卸載firewalld和NetworkManager
yum remove -y firewalld-*
systemctl mask NetworkManager # 禁止服務啓動
systemctl unmask xxx # 取消禁止
  • 檢查配置主機網絡參數

不用NetworkManager修改網卡參數

vim /etc/sysconfig/network-scripits/ifcfg-xxxxx
systemctl start network
  • 主機名必須能夠解析 /etc/hosts
  • 檢查配置主機yum源
  • 依賴軟件包是否安裝
  • 檢查NTP服務器是否可用
  • 檢查/etc/resolv.conf不能有search開頭的行
  • 檢查SELinux是否禁用
  • 阿-裏-雲 環境練習,安裝前執行pip uninstall urllib3

3)安裝Openstack

] packstack --gen-answer-file=answer.ini  # 創建應答文件
] vim answer.ini
  42 CONFIG_SWIFT_INSTALL=n		#不安裝swift模塊
  45 CONFIG_CEILOMETER_INSTALL=n 	#計費相關模塊
  49 CONFIG_AODH_INSTALL=n	 #計費相關模塊
  53 CONFIG_GNOCCHI_INSTALL=n 	#計費相關模塊
  75 CONFIG_NTP_SERVERS=192.168.1.100	 #時間服務器的地址
  98 CONFIG_COMPUTE_HOSTS=192.168.1.11	#計算節點
 102 CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11	#網絡節點
 333 CONFIG_KEYSTONE_ADMIN_PW=a 		#修改管理員的密碼
 840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan	 #驅動類型,flat直連連接,vxlan爲可劃分數量極多的vlan
 876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5  #設置組播地址,最後一個隨意不能爲0和255,其他固定
 910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex 	#物理網橋的名稱
 921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 	#br-ex橋與eth0連接,管理eth0,網橋與哪個物理網卡連接
1179 CONFIG_PROVISION_DEMO=n	 #DEMO是否測試

] packstack --answer-file=answer.ini	 #執行應答文件

執行安裝後,如果前期服務準備無誤,等待安裝結束即可,根據主機配置不同,需要等待20分鐘左右,如果出現錯誤,按輸出的日誌文件進行排錯

4)網絡配置

  • 多計算節點的網絡拓撲

在這裏插入圖片描述
在這裏插入圖片描述

  • 查看外部OVS網橋
cat /etc/sysconfig/network-scripts/ifcfg-br-ex
  • 查看外部OVS網橋端口
cat /etc/sysconfig/network-scripts/ifcfg-eth0
  • 驗證OVS配置
ovs-vsctl show

Openstack操作基礎

1)Horizon配置

  • Horizon是一個用以管理、控制 OpenStack服務的Web控制面板,也稱之爲Dashboard儀表盤
  • 可以管理實例、鏡像、創建密鑰對,對實例添加捲、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實例
  • 基於python的django web框架進行開發

功能與特點

實例管理:創建、終止實例,查看終端日誌,VNC連接,添加捲等
訪問與安全管理:創建安全羣組,管理密鑰對,設置浮動IP等
偏好設定:對虛擬硬件模板可以進行不同偏好設定
鏡像管理:編輯或刪除鏡像
用戶管理:創建用戶等
卷管理:創建卷和快照
對象存儲處理:創建、刪除容器和對象

Horizon BUG處理

[root@openstack ~] cd /etc/httpd/conf.d/
[root@openstack conf.d] vim 15-horizon_vhost.conf
36   WSGIApplicationGroup %{GLOBAL}   #添加這一行
[root@openstack conf.d] systemctl restart httpd

2)登錄管理

  • web訪問openstack服務器
firefox 192.168.1.10/dashboard

訪問dashboard報404解決辦法
cd /etc/httpd/conf.d/
mv 15-default.conf 15-default.conf.bak
systemctl restart httpd
  • 命令行接口
[root@openstack ~] ls
answer.ini   keystonerc_admin  #keystonerc_admin生成的文件,裏面有用戶名和密碼
[root@openstack ~] cat keystonerc_admin 
unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin  #用戶名,假如修改了用戶名和密碼,則使用命令行登錄時需要修改此文件
    export OS_PASSWORD=a  #密碼
    export OS_AUTH_URL=http://192.168.1.10:5000/v2.0
    export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne
[root@openstack ~] source keystonerc_admin 
[root@openstack ~(keystone_admin)] openstack    #連接openstack
(openstack) help    #查看幫助
發佈了103 篇原創文章 · 獲贊 7 · 訪問量 5999
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章