随着容器越来越流行,k8s也成为很多公司标配,Kubernetes 让当前主流的基础架构有一套易用的 API 。利用好 Kubernetes ,我们可以实现更高的、更通用的基础架构自动化管理。基于此, CoreOS 实现了一套能“自动驾驶”的 Kubernetes 。在本次演讲中,来自 CoreOS 的邓洪超将通过自身参与的经验,讲解其中的技术细节。并以主要负责的 etcd operator 为例,讲解在 Kubernetes 搭建 Operator 的通用模式。 邓洪超:今天非常荣幸来到这里。首先介绍一下 Operator ,它是用来自动化应用的运维的。这里的应用指的是你的 code+config、程序、逻辑层和部署层。 一个例子 开始之前我们先讲一个故事,这个故事一般朋友圈比较多,我们是从朋友圈开始的,大家知道pingCAP不仅数据库做得好,周边也做得很好。 图1 卖周边就得做一个网站,那黄东旭是GO的大牛,GO这个语言可以让我们非常快速的做一个网站出来。Golang 可以让我们非常快速地做一个网站出来。于是我们很快的就有了一个原形,给大家欣赏一下底层程序员的设计。 图2 可以说GO是一门非常好的语言,它可以让我们非常简单和方便的实现从想法到程序的转变。然后我们写程序是本地层面的,需要部署到一个服务器层面里面。首先我们要对这个程序进行打包,并且把我们的服务包发布出去。这就需要在服务器集群里面配置储存等资源,把程序部署出去,让它跑起来去服务这些用户请求。 部署无状态的应用 接下来会告诉大家怎么打包这个程序。如图4所示,首先这是一个打包的命令,这是一个容器镜像。我们会把这个进向发布出去,发布出去的时候我们已经有了一个集群,是在跑的。我们现在把这个应用跑起来。首先在本地的这个关口我们是访问不了的,我们会在本地30080端口,相当于我们找到了另外一个方法找这个服务。我们看到这时候的服务已经部署起来,我们可以访问了。