起底Kolla:OpenStack容器化項目的實踐
摘要
本次分享主要是講解OpenStack在Docker化項目上的一些實踐、遇到的問題,還有後續會做的事以及遇到的挑戰。
內容來源:2017年2月25日,99cloud軟體工程師朱冰兵在「New version, New vision」進行《OpenStack Docker化項目Kolla實踐》演講分享。IT 大咖說作為獨家視頻合作方,經主辦方和講者審閱授權發布。
閱讀字數:1096 | 4分鐘閱讀
嘉賓演講視頻及PPT:http://t.cn/RTTnPig
OpenStack交付工具
在OpenStack交付工具中,主要有以下一些工具:
紅帽RDO和TripleO (puppet);
UbuntuMaas和juju(juju);
Advertisements
SuseCrowbar (Chef);
MirantisFuel(puppet);
HPHellion (ansible);
Rackspace(chef,salt,ansible);
IBMPowerVC (shell);
Devstack(shell)。
配置管理工具
在配置管理交付工具中,Puppet市場佔有率很高。Chef最早支持OpenStack的工具,但是現在已經很少看到它的身影了。Ansible發展速度最快,在每個OpenStack項目里都包含Ansible部署的腳本。Salt 可能會東山再起。
企業需求
OpenStack主要是面向企業,所以我們也很清楚它的企業需求。主要需求就是成本、安全、可靠、擴展、靈活。
Advertisements
從2010年OpenStack設立之初,至今已有七年了。2012年到2013年,OpenStack發布了它的Folsom & Grizzly版本。2013年3月份,Docker發布了第一個版本。2014年6月,Kubeneters項目開始啟動。2014年9月,Kolla開始成立,成立Kolla項目的初衷就是想讓OpenStack跑在容器里,提供生產環境部署的項目,做到100個節點。2015年,Kolla項目進入Big Tent,同年11月,Docker1.9支持kolla-mesos。2016年,Docker 1.10發布。2016年9月,進行了Kolla的M版本發布,2017年3月發布O版本。
Kolla的目標
簡化部署和運維。提供生產級別的Docker鏡像,提供用於鏡像部署的運維工具。在100台物理節點的規模下做到開箱即用。
特性
支持所有服務的高可用;
支持 ceph 做後端存儲,glance/nova/cinder/gnocchi;
支持多個 Linux 發行版;
CentOS/ OracleLinux / Ubuntu / RHEL;
同時支持源碼安裝和二進位包安裝;
物理機上只依賴 Docker Engine 和 docker-py;
支持原子升級。
實現
使用 Dockerfile + jinja2 構建鏡像。
使用鏡像依賴,構建速度更快,鏡像更小。
使用 Ansible 進行部署。
使用 Ansible 做服務編排,提供 kolla-ansible 腳本,使用 Ansible Inventory 控制服務在哪些機器上啟動。同時支持單機部署和多機部署,支持所有組件的高可用,包括 rabbitmq 和 mariadb。容器內非 root 用戶運行,保證安全。部分容器需要使用 --privileged 許可權,支持 kubernetes。
Commands:
prechecks Do pre-deployment checks for hosts
mariadb_recovery Recover a completely stopped mariadb cluster
bootstrap-servers bootstrap servers with kolla deploy dependencies
destroy DestroyKolla containers, volumes and host configuration
deploy Deployand start all kolla containers
deploy-bifrost Deploy and start bifrost container
deploy-servers Enroll and deploy servers with bifrost
post-deploy Do post deploy on deploy node
pull Pullall images for containers
reconfigure Reconfigure OpenStack service
certificates Generate self-signed certificate for TLS *ForDevelopment Only*
upgrade Upgradesexisting OpenStack Environment
genconfig Generate configuration files for enabledOpenStack services
容器化一切服務,libvirt / openvswitch /neutron,保證一個容器只有一個進程。
模型是使用net host網路模型。
優點
資源隔離,快速部署,容器毫秒級啟動,單機部署在5分鐘內。運行環境具有不變性。便攜性,鏡像總大小小於3GB。升級支持原子升級、單服務升級,還支持失敗回滾。
缺點
OpenStack本身就是一個平台,依賴於Docker。所以是否好用還是依賴於Docker的成熟度。增加了額外的複雜度。
挑戰
日誌的收集;配置文件管理;container 編排;集成測試;鏡像的靈活性;容器化后 docker 本身的問題;數據持久化。
我今天的分享就到這裡,謝謝大家!
編者:IT大咖說,轉載請標明版權和出處