Kubernetes基础篇:主要特性、基本概念与总体架构

本文试图将Kubernetes的基础相关知识描述清楚,让一个从来没有Kubernetes实践的开发人员,能够非常容易地理解Kubernetes是什么,能够做哪些事情,以及使用它能带来的好处是什么。 Kubernetes是什么 Kubernetes是一个开源的容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。我们在完成一个应用程序的开发时,需要冗余部署该应用的多个实例,同时需要支持对应用的请求进行负载均衡,在Kubernetes中,我们可以把这个应用的多个实例分别启动一个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要应用开发和运维人员去进行复杂的手工配置和处理。 Kubernetes是Google基于内部Borg开源的容器编排引擎,关于Borg的设计,可以查看对应的论文《Large-scale cluster management at Google with Borg》。这里,我们先说一说Borg系统,它是Google内部的集群管理系统,使用它能够获得如下好处: 在一个分布式系统中进行资源管理是非常复杂的,构建于Borg系统之上的其他系统,无需关

Docker Swarm 架构、特性与基本实践

Docker 集群管理和编排的特性是通过 SwarmKit 进行构建的, 其中 Swarm mode 是 Docker Engine 内置支持的一种默认实现。Docker 1.12 以及更新的版本,都支持 Swarm mode,我们可以基于 Docker Engine 来构建 Swarm 集群,然后就可以将我们的应用服务(Application Service)部署到 Swarm 集群中。创建 Swarm 集群的方式很简单,先初始化一个 Swarm 集群,然后将其他的 Node 加入到该集群即可。本文主要基于 Docker Swarm 官网文档,学习总结。 基本特性 Docker Swarm 具有如下基本特性: 集群管理集成进 Docker Engine 使用内置的集群管理功能,我们可以直接通过 Docker CLI 命令来创建 Swarm 集群,然后去部署应用服务,而不再需要其它外部的软件来创建和管理一个 Swarm 集群。 去中心化设计 Swarm 集群中包含 Manager 和 Worker 两类 Node,我们可以直接基于 Docker Engine 来部署任何类型的 Node。而且,在 Swarm 集群运行期间,我们既可以对其作出任何改变,实现对集群的扩容和缩容等,如添加 Manager Node,如删除 Worker Node,而做这些操作不需要暂停或

CentOS 7 Docker基本特性入门实践

Docker是一个开源的应用容器引擎,开发人员可以非常容易地打包已经开发好的应用,同时将应用相关的依赖包也打包到这样一个可移植的容器中,然后发布到任意的Linux主机系统上。Docker是基于Linux Container(LXC)技术实现的一个轻量级虚拟化解决方案,用户可以直接使用容器(Container),来构建自己的应用程序,应用开发人员无需将注意力集中在容器的管理上。Docker的目标是“Build, Ship and Run Any App, Anywhere”,这说明了使用Docker能够实现应用运行的可移植性、便捷性,对开发人员非常友好,只要你的应用是基于Docker进行构建和部署的,在任何时候任何支持Docker的Linux发行版操作系统上都可以运行你的应用程序。 Docker是基于Go语言开发的, 代码开源,可以在Github上查看对应的源码:https://github.com/docker/docker.git。 基本构架 Docker基于Client-Server架构,Docker daemon是服务端,Docker client是客户端。Docker的基本架构,如下图所示: 上图中,除了展现了Docker的Client、Server、Containers、Images、Registry之间的关系,我们主要说明Do