參考文檔:html
組件前端 |
版本python |
Remarklinux |
centosweb |
7.4vim |
controller: 4c12g (測試環境,親測8g內存不足以支持所有服務;另外並無考慮存儲空間,實際生產環境日誌量較大,對後端存儲有必定要求) 後端
compute: 8c8g (測試環境) centos
yum源已設置爲國內的aliyun:https://opsx.alibaba.com/mirrorapi |
openstack網絡 |
queen |
|
ceph |
v12.2.4 luminous |
管理網絡:含host os管理,api,ceph-public等網絡,若是生產環境容許,建議各邏輯網絡使用獨立的物理網絡,api區分admin/internal/public接口,對客戶端只開放public接口;
外部網絡:主要針對guest os訪問internet/外部的floating ip;
租戶(虛機)隧道網絡(與vlan網絡共存或2選1):guest os之間通信的網絡,採用vxlan/gre等方式;
租戶(虛機)vlan網絡(與隧道網絡共存或2選1):guest os之間通信的網絡,採用vlan方式;
管理網絡:含host os管理,api,ceph-public等網絡;
存儲網絡:存儲集羣內部通信,數據複製同步網絡,與外界沒有直接聯繫;
租戶(虛機)隧道網絡(與vlan網絡共存或2選1):guest os之間通信的網絡,採用vxlan/gre等方式;
租戶(虛機)vlan網絡(與隧道網絡共存或2選1):guest os之間通信的網絡,採用vlan方式;
Host |
IP |
Service |
Remark |
controller01 |
eth0(Management + API + Message + Storage Public Network): 172.30.200.31 eth1(External Network): 172.30.201.31 eth2(Tunnel Tenant Network):10.0.0.31
eth3(Vlan Tenant Network) |
1. keystone |
1.控制節點: keystone, glance, horizon, nova&neutron管理組件; 2.網絡節點:虛機網絡,L2/L3,dhcp,route,nat等; 3.存儲節點:調度,監控(ceph)等組件; 4.openstack基礎服務 |
controller02 |
eth0(Management + API + Message + Storage Public Network): 172.30.200.32 eth1(External Network): 172.30.201.32 eth2(Tunnel Tenant Network):10.0.0.32
eth3(Tenant Network) |
1. keystone |
1.控制節點: keystone, glance, horizon, nova&neutron管理組件; 2.網絡節點:虛機網絡,L2/L3,dhcp,route,nat等; 3.存儲節點:調度,監控(ceph)等組件; 4.openstack基礎服務 |
controller03 |
eth0(Management + API + Message + Storage Public Network): 172.30.200.33 eth1(External Network): 172.30.201.33 eth2(Tunnel Tenant Network):10.0.0.33
eth3(Tenant Network) |
1. keystone |
1.控制節點: keystone, glance, horizon, nova&neutron管理組件; 2.網絡節點:虛機網絡,L2/L3,dhcp,route,nat等; 3.存儲節點:調度,監控(ceph)等組件; 4.openstack基礎服務 |
compute01 |
eth0(Management + Message + Storage Public Network): 172.30.200.41
eth1(Storage Cluster Network):10.0.254.41
eth2(Tunnel Tenant Network):10.0.0.41
eth3(Tenant Network) |
1. nova-compute |
1.計算節點:hypervisor(kvm); 2.網絡節點:虛機網絡等; 3.存儲節點:卷服務等組件 |
compute02 |
eth0(Management + Message + Storage Public Network): 172.30.200.42 eth1(Storage Cluster Network):10.0.254.42
eth2(Tunnel Tenant Network):10.0.0.42
eth3(Tenant Network) |
1. nova-compute |
1.計算節點:hypervisor(kvm); 2.網絡節點:虛機網絡等; 3.存儲節點:卷服務等組件 |
compute03 |
eth0(Management + Message + Storage Public Network): 172.30.200.43 eth1(Storage Cluster Network):10.0.254.43
eth2(Tunnel Tenant Network):10.0.0.43
eth3(Tenant Network) |
1. nova-compute |
1.計算節點:hypervisor(kvm); 2.網絡節點:虛機網絡等; 3.存儲節點:卷服務等組件 |
# 全部節點保持一致的hosts便可,以controller01節點爲例;
[root@controller01 ~]# cat /etc/hosts
# 全部節點保持時鐘同步,以controller01節點爲例
[root@controller01 ~]# yum install chrony -y # 編輯/etc/chrony.conf文件,設置」172.20.0.252」爲時鐘源,同時設置3個控制節點做爲」備用」時鐘源; # 容許」172.30.200.0/24」網段主機從本地同步時鐘
[root@controller01 ~]# egrep -v "^$|^#" /etc/chrony.conf
server 172.20.0.252 iburst server controller01 iburst server controller02 iburst server controller03 iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync allow 172.30.200.0/24 logdir /var/log/chrony # 設置開機啓動,並重啓
[root@controller01 ~]# systemctl enable chronyd.service
[root@controller01 ~]# systemctl restart chronyd.service
# 查看狀態
[root@controller01 ~]# systemctl status chronyd.service
[root@controller01 ~]# chronyc sources -v
# 安裝queen版yum源
[root@controller01 ~]# yum install centos-release-openstack-queens -y
[root@controller01 ~]# yum upgrade -y
# 安裝openstackclient
[root@controller01 ~]# yum install python-openstackclient -y
# selinux開啓時須要安裝openstack-selinux,這裏已將seliux設置爲默認關閉
[root@controller01 ~]# yum install openstack-selinux -y
# 所有節點提早統一設置完成iptables,以controller01節點爲例; # 初始環境已使用iptables替代centos7.x自帶的firewalld,同時關閉selinux;
[root@controller01 ~]# vim /etc/sysconfig/iptables # mariadb # tcp3306:服務監聽端口; # tcp&udp4567:tcp作數據同步複製,多播複製同時採用tcp與udp; # tcp4568:增量狀態傳輸; # tcp4444:其餘狀態快照傳輸; # tcp9200:心跳檢測
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 4444 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 4567:4568 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 4567 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT # rabbitmq # tcp4369:集羣鄰居發現; # tcp5671,5672:用於AMQP 0.9.1 and 1.0 clients使用; # tcp5673:非rabbitmq默認使用端口,這裏用做hapoxy前端監聽端口,避免後端服務與haproxy在1個節點時沒法啓動的問題;若是使用rabbitmq自己的集羣機制,則可不設置此端口; # tcp15672:用於http api與rabbitadmin訪問,後者僅限在management plugin開啓時; # tcp25672:用於erlang分佈式節點/工具通訊
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5671:5673 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 15672:15673 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT # memcached # tcp11211:服務監聽端口;
-A INPUT -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT # pcs # tcp2224:pcs web管理服務監聽端口,可經過web新建,查看,刪除資源等,端口值在/usr/lib/pcsd/ssl.rb文件中設置; # udp5405:中間件corosync服務集羣多播通訊端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2224 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 5404:5405 -j ACCEPT # haproxy # tcp1080:haproxy監聽端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1080 -j ACCEPT # dashboard # tcp80:dashboard監聽端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT # keystone # tcp35357:admin-api端口; # tcp5000:public/internal-api端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 35357 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5000 -j ACCEPT # glance # tcp9191:glance-registry端口; # tcp9292:glance-api端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9191 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 9292 -j ACCEPT # nova # tcp8773:nova-ec2-api端口; # tcp8774:nova-compute-api端口; # tcp8775:nova-metadata-api端口; # tcp8778:placement-api端口; # tcp6080:vncproxy端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8773:8775 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8778 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 6080 -j ACCEPT # cinder # tcp8776:cinder-api端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8776 -j ACCEPT # neutron # tcp9696:neutron-api端口; # udp4789:vxlan目的端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9696 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 4789 -j ACCEPT # ceph # tcp6789:ceph-mon端口; # tcp6800~7300:ceph-osd端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6789 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 6800:7300 -j ACCEPT [root@controller01 ~]# service iptables restart