docker介绍
docker是什么
Docker是一种工具,旨在通过使用容器更轻松地创建,部署和运行应用程序。
docker 和 虚拟机的区别
docker 解决的问题
- 更少的资源
- 环境配置难得问题(开发环境搭建)
- 启动快
- 体积小
- 一次构建,处处运行 …
docker核心概念-镜像
docker的镜像就像上图这样,分了很多层,每一层都是在下一层的基础上添加内容,而且每层构建之后不在改变,每一层的处理都只对本层生效。
创建一个docker镜像
创建docker镜像,你需要先创建一个dockerfile文件,内容如下:
FROM nginx
RUN echo 'hello docker'
然后执行
docker build -t nginx:test .
命令,就可以构建你自己的镜像了
docker核心概念-容器
容器是镜像的实例,使用下面的命令运行一个容器:
docker run ...
比如运行docker官方提供的hello-word,可以看到输出的信息,docker具体做了哪些工作。
k8s介绍
k8s
k8s的概念,推荐看下这个视频,非常有意思。 www.youtube.com/watch?v=4ht… 当然,你需要正确的访问姿势才行。
k8s特性
- 服务注册与负载均衡
- 自动装箱(使得资源最大化利用)
- 存储编排
- 自愈(自动剔除,重启…)
- 自动部署和回滚(逐步替换pod,有问题回滚)
- 自动伸缩
- …
k8s核心概念-Pod
容器的集合。
k8s最基本的概念应该是pod,一个pod中可以有多个容器,比如上图中的一个pod中,包括了一个nginx容器,以及一个DB容器,还有一个app容器。
k8s核心概念-Volume
Pod中被多个容器访问的共享目录。如果你需要在多个容器中访问一些通用的配置信息,可以将这些信息存储在Volume中。
k8s核心概念-Service
Pod的集合(虚拟概念)。在k8s中,我们可以将一个服务部署多个副本到多个pod中,这样就可以实现负载均衡和高可用,但是我们的多个pod怎么对外提供服务呢?就需要我们使用k8s的Service,一个Service可以映射到多个pod,同时也是因为pod的ip是会变的(也可以设置固定),不好控制,抽象一个Service的概念之后,Service来维护映射关系,这样外部只需要访问Service的地址就可以了。
k8s核心概念-Node
Pod集合。我们知道,pod是k8s里面的一个基本的单元,但是最终还是要部署到实际的虚拟机或者云服务器上去。
这里的Node就相当于是一个集群的一个节点。
k8s核心概念-Master
特殊的Node,集群控制节点。主要提供以下的服务。具体每一个服务是用来干什么的,可以直接看docker的官方文档介绍。
- API Server
- Controller Manager
- Scheduler
k8s核心概念-Label
k8s中的label在很多地方都使用到了,比如我们上面说到的Service是多个pod的集合,那怎么知道一个Service所包括的pod有哪些呢?就是通过label来筛选的。看下图:
这里我们的一个Service有一个label为release:canary,通过这个label,就可以将所有这个label的pod给筛选出来,作为一个Service向外提供服务。
k8s核心概念-More
更多的k8s的概念,可以直接访问k8s的官网。这里大概例举一些上面没有讲到的:
- Relocation Controller(RC)
- Deployment(官方称为下一代的RC:Replica Set)
- Namespace
小结
这篇文章由ppt整理而来,文字内容较少,如果由任何不明白或者错误的地方,欢迎随时联系我,谢谢!