起底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大咖說,轉載請標明版權和出處

Advertisements

你可能會喜歡