好久沒寫隨筆了,6月份趁着在公司沒有太忙的事兒,把公司的服務器進行了虛擬化,采用的openstack當前的容器化方案kolla。
整體安裝完的感受時,小白感覺自己是個大牛!哈哈,開玩笑,由於以前是開發虛擬化軟件的,所以對虛擬化相關概念比較熟悉,安裝起來比普通的開發人員要順手一下。下面記錄一下安裝的流程。
首先,感謝openstack基金會推出的kolla解決方案,基於容器化的解決方案,讓我們更加便捷的實現服務器資源的虛擬化,不過我並不能確保節點過多(具體數量我也不確認,不過有安裝50節點的介紹,說也沒太大問題)的話,是否會有意想不到的問題,只能大家自己去測試。我的安裝環境當前是3個節點。
==================================================
其次,特別的感謝九州雲的陳沙克老師的文章,地址如下:
http://www.chenshake.com/kolla-installation/
陳老師的文章簡明扼要的指出了安裝kolla時,需要注意的點以及安裝的流程與相關包,大家如果安裝單節點測試,可以根據陳老師的文字進行。
==================================================
其實多節點的安裝,跟單節點的安裝沒有太大區別,最終我得到的經驗是網絡的規划是至關重要的,kolla當前能夠支持節點的拓展,要規划好網絡。
安裝環境介紹:
1)三台物理機均使用三塊網卡,一塊網卡虛擬機內部網絡使用(配置ip),一塊網卡做浮動ip(不要配置ip,要記得啟用),一塊網卡單獨給api服務使用。
2)三台物理機,一台做控制節點與網絡節點,另外兩台做計算與存儲。注意:控制節點需要為奇數個,否則容易出現腦裂。
剩下的為軟件包的安裝,下面摘錄自陳老師的文章:
各節點均做一下的配置:
- 關閉Selinux
- 關閉Firewalld
- 關閉NetworkManager
- 設置hostname FQDN,讓機器可以通過hostname進行互相訪問,統一 /etc/hosts文件
- 同步時間,先確保時間是基本一致,和硬件也統一時間
- 設置docker registry 服務器位置,設置不安全的訪問。
- 檢查機器是否支持KVM
- 設置docker源,安裝docker 1.12.5
- 設置訪問私有的registry 源
- 打開Docker 的 shared mount 功能
- 設置網卡,網絡,符合部署需求。如果需要bonding,需要把bonding做好。
- 對於要部署Ceph的節點的磁盤,進行打標簽
- 檢查網絡,重點,確保裝好后,網絡功能正常。
在控制節點,我們需要做的工作,
- 關閉Selinux
- 關閉Firewalld
- 關閉NetworkManager
- 設置hostname FQDN,讓機器可以通過hostname進行互相訪問,統一 /etc/hosts文件
- 同步時間,先確保時間是基本一致,和硬件也統一時間
- 設置docker源,安裝docker 1.12.5
全面6條,都是相同的,不同的是需要在控制節點做如下操作:
- 搭建私有的registry服務器,存放build好的OpenStack Docker鏡像
- 安裝ansible
- 部署kolla-ansible
- 如果你願意,可以把docker服務安裝在單獨的節點,kolla安裝節點配置服務地址即可。
安裝完畢后有幾個問題可能會碰到:
1、如果邏輯卷創建失敗,可能是iscsi服務未找到,這時cinder_conf中添加如下配置:
iscsi_ip_prefix=192.168.1
iscsi_ip_address=192.168.1.1
根據實際環境配置。
2、出現了tgtd容器占用空間較大的情況,具體原因我扔在分析。 前期預留足夠的空間給docker使用。
問題原因已經找到, 解決方式如下:
1)docker inspect tgtd 查看容器詳細信息, 查找參數LOGPATH
2) 進入到logpath目錄,du -sh *查看日志大小
3) cat /dev/null > LOGPATH 清理日志,釋放空間。
不過這也是暫時的解決方案,這個地方應該是kolla啟動docker容器時,--log-driver參數沒有置為none,導致日志輸出量如此大。我會再找時間研究一下。
3、docker安裝后,建議對相關配置進行優化,包括docker最大占用空間值等,防止docker占用太多空間。
目前服務已經運行了19個多月,相對比較穩定。