从零开始学Docker,Kubernetes,Helm

虽然不是DevOp,但还是想了解一下容器和部署的技术,这样会显得比较厉害。因为大神是了解开发的全部流程的,哈哈。

(docker也用了一段时间,仅仅是熟练使用docker-compose up,docker-compose down这些命令而已,至于image、container这些概念大脑一片模糊。有一次架构师说到kubernetes,那时候稍有耳闻,但是没有听清他说的单词,就问了那是什么,结果被嘲笑啦。呜,更加坚定作为一个程序员不能不了解这些基础概念。于是就毅然选了一个小task,借此机会学习一下。

突然想起来有一次周会上我说做了一个deployment的task,manager问“xx写了kube chart和helm files吗?”,一种有点惊喜的语气。但是那个时候做的是很简单的任务,并没有写helm files。现在如果学会一些kubernetes的话,manager也会比较欣慰吧(*¯︶¯*) )

因为原先一点都不了解容器啊、集群啊这些概念,甚至连runtime都一知半解,所以这个从无到有的学习过程很值得记录下来。

首先说一下Docker、Kubernetes、Helm都是什么,和三者的关系

- Docker是用来打包程序的配置文件和程序本身的容器(container)技术。docker生成的container,可以在任何环境(无论你是windows电脑,还是linux)里运行,不需要再做任何配置。

- kubernetes用来部署docker的containers。

- helm是kubernetes的包管理软件。

想要使用kubernetes必须了解docker的基本概念

Docker最重要的三个概念:image, container,repository。

container和image的关系就像面向对象编程中实例和类的关系一样。

写kubernetes yaml文件之前,先看docker-compose文件中用到了什么数据库和框架,有的api没有用到django(让我大吃一惊,居然可以不用框架写api吗,是因为比较简单吗?),仅仅用到solr。

最痛的一点是开始居然不知道kubernetes和helm是两个东西,看kubernetes文档时还非常奇怪一些概念找不到,比如release object。后来问了同事才知道helm是kubernetes的package manager。其实小白的学习过程真的很值得记录,因为一切概念都是陌生的,你根本没法靠自己发现你把两个相关但是不同的东西混在一起了。

你可能感兴趣的:(从零开始学Docker,Kubernetes,Helm)