OwnCloud On Kubernetes On OpenStack

背景

研究kubernetes有一段时间了,k8s作为容器编排领域的标准,相比传统架构,在应用发布,运行,维护上具有颠覆性的变革,这场变革以“云原生”为口号,如火如荼的发展起来。可以想象,在不远的将来,大家的应用都以标准的形式,运行在以k8s为代表容器平台上,k8s让devops真正融合在了一起,尤其对运维,k8s定义了对应用的标准运维方式,平台替人做了很多toil的运维工作,通过各种机制保障应用的可用性,这对运维来说,是最激动人心的。在IaaS平台上构建起来的容器平台,还可以通过API的方式消费IaaS平台的网络和存储等资源,真正将IaaS平台的弹性、灵活性利用起来,容器平台将作为最接近应用的基础平台,是一个公司非常重要的IT基础设施,这一如当年的Linux给业界带来的变革。

阅读更多

OpenStack Heat嵌套Stack解析

Stack是Heat里面抽象出来的概念,是一组资源的集合,Stack之间是可以嵌套的,也就是说一个Stack可以有子Stack,子Stack又可以有子Stack,关于Heat Stack的基础知识,见这篇文章:Heat基础知识

阅读更多

TCP长连接中断导致的业务问题

本周处理了客户的一个运维Case,是关于TCP长连接的问题,经过两天的排查,最终找到了问题的原因,觉得这个问题挺经典的,所以记录下来。

阅读更多

OpenStack可靠性验证和故障演练-Gremlin

最近做了一个项目,叫做OpenStack可靠性验证和故障演练,主要是使用Ansible把平台运维过程中遇到的一些经典问题给编排了一下,算是将这些运维经验通过代码的方式给积累下来,当然,该项目不仅仅是一些故障case的累积,它还系统性的对OpenStack云平台的可靠性,可用性进行验证,通过关停一些服务,down一些节点,验证其鲁棒性。

阅读更多

Python单元测试—深入理解unittest

单元测试的重要性就不多说了,可恶的是python中有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover,再加上setuptools, distutils等等这些,先不说如何写单元测试,光是怎么运行单元测试就有N多种方法,再因为它是测试而非功能,是很多人没兴趣触及的东西。但是作为一个优秀的程序员,不仅要写好功能代码,写好测试代码一样的彰显你的实力。如此多的框架和工具,很容易让人困惑,困惑的原因是因为并没有理解它的基本原理,如果一些基本的概念都不清楚,怎么能够写出思路清晰的测试代码?

阅读更多

Heat基础知识

在TripleO中使用到了很多Heat中的语法,需要理解这些基本的语法才能够理解Heat Template。Heat中自定义了一套描述式语言,称为HOT(Heat Orchestration Template),用来描述整个软件栈,包括如何创建资源,如何配置资源等等,HOT中描述的软件栈被抽象成stack,可以定义输入,输出,参数,资源等等,一个stack还可以嵌套其他stack,Heat默认集成了OpenStackh很多组件,可以通过HOT来管理OpenStack资源,此外,还集成了Puppet/Ansible等配置管理工具,形成了一套完整的体系,功能十分强大,这里就主要介绍下部署TripleO过程中用到的Heat一些基础知识。

阅读更多

TripleO 概览

OverCloud部署是要搭建起最终的OpenStack集群,本质上这个部署是利用OpenStack的各个组件,也就是UnderCloud,协调部署出来的,这也是TripleO的核心思想:OpenStack on OpenStack,这种做法其实。OverCloud部署用到的OpenStack组件,主要有以下几个:

  • Mistral
  • Swift
  • Heat
  • Ironic
  • Nova
  • Neutron
  • Zaqar
阅读更多

TripleO-Heat-Templates解析

TripleO的Heat Template是整个TripleO的核心,它定义了一系列复杂的模板,运用了Heat中一些高级的语法,抽象出了一个个嵌套的stack,来完成OverCloud中安装系统,网络配置,服务配置,高可用等一系列部署操作。本节重点解析下这些Template,讲解下TripleO中是如何使用Heat来安装部署OverCloud的,该项目的地址在tripleo-heat-templates。如果对Heat的基本语法不熟悉的,请参考Heat基础知识小节。

阅读更多

TripleO OverCloud部署解析

把物理网络配置好,镜像以及裸机信息录入系统,设置好Metadata,一切准备好之后,就可以开始部署OverCloud了,部署OverCloud非常简单,只需要执行一条命令:

1
2
3
4
openstack overcloud deploy --templates /usr/share/openstack-tripleo-heat-templates/ \
-r /home/stack/templates/roles/roles_data.yaml \
-e /home/stack/templates/environments/low-memory-usage.yaml \
-e /home/stack/templates/environments/environment.yaml
阅读更多

TripleO Introspection 介绍

Introspection是指能够通过程序自动的收集服务器的物理信息,比如CPU型号,网卡个数,Mac地址,磁盘大小以及个数等等,这个功能非常有用,试想一下,在部署几十台或者更多节点时,要手动收集每一台服务器的物理信息,这该是多么痛苦的一件事,而且还很容易出错,如果能将这个过程自动化,不仅可以提高效率,减少错误,还能够实现一些高级功能,比如服务器自动发现,自动注册等等。

阅读更多