雲平臺部署與管理
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 #查看幫助