容器

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
容器的好处:
1、持续部署与测试 DevOps
2、跨平台支持
3、环境标准化和版本控制
4、高资源利用率与隔离
5、容器跨平台性与镜像、镜像仓库

背景知识说明

云计算是一种资源的服务模式,该模式可以实现随时随地、便捷按需地从可配置计算资源共享池中获取所需的资源(如网络、服务器、存储、应用及服务),资源能够快速供应并释放,大大减少了资源管理工作开销,你甚至可以再也不用理会那些令人头痛的传统服务供应商了。
经典云计算架构包括IaaS(Infrastructure as a Service,基础设施即服务)、PaaS(Platform as a Service,平台即服务)、SaaS(Software as a Service,软件即服务)三层服务。

  1. IaaS层为基础设施运维人员服务,提供计算、存储、网络及其他基础资源,云平台使用者可以在上面部署和运行包括操作系统和应用程序在内的任意软件,无需再为基础设施的管理而分心。
  2. PaaS层为应用开发人员服务,提供支撑应用运行所需的软件运行时环境、相关工具与服务,如数据库服务、日志服务、监控服务等,让应用开发者可以专注于核心业务的开发。
  3. SaaS层为一般用户服务,提供了一套完整可用的软件系统,让一般用户无需关注技术细节,只需通过浏览器、应用客户端等方式就能使用部署在云上的应用服务。

同时,随着计算机技术推陈出新,应用的规模愈发庞大,逻辑愈发复杂,迭代更新愈发频繁,应用开发所需的统一规范和原有开发模式杂乱无章成了追求进步的主要障碍。在尖锐的矛盾中,云时代应用生命周期管理机制(Application Lifecycle Management,ALM)和十二要素应用规范(The Twelve-Factor App) 应运而生。

所有理论设计和预想一定是美好的,只是对于一个新的理论而言,如何经受住实践的考验,并将美好的愿景转化为生产力才是重中之重。
IaaS的发展主要以虚拟机为最小粒度的资源调度单位,出现了资源利用率低、调度分发缓慢、软件栈环境不统一等一系列问题。
PaaS在IaaS基础上发展而来,众多PaaS已经意识到可以利用容器技术解决资源利用率问题,但是PaaS通常在应用架构选择、支持的软件环境服务方面有较大的限制,这带来了应用与平台无法解耦、应用运行时环境局限性强、运维人员控制力下降的问题。

可见不论IaaS还是PaaS都有各自适用的场景,但依旧存在诸多缺陷,人们亟需一个真正可用的解决方案。

摘自《Docker 容器与容器云》第二版 人民邮电出版社

管理工具

  1. Cockpit 系统管理工具

Docker 容器

  1. Docker 容器服务版本介绍
  2. Docker 容器服务基础知识
  3. Docker 命令使用指南
  4. Docker 私有镜像仓库
  5. Docker 容器服务一般操作命令汇总
  6. docker 容器启动后为什么就停止了
  7. Docker 容器服务架构概览
  8. Docker 容器服务守护进程配置说明
  9. Docker 镜像管理和文件系统介绍
  10. Docker 容器服务的存储驱动介绍
  11. Docker 数据卷 Volume 说明和操作
  12. Docker 服务日志驱动说明
  13. Docker 容器网络管理
  14. Dockerfile 文件配置
  15. Docker 容器服务配置和制作Nginx镜像并推送操作记录
  16. docker 服务错误汇总

容器编排工具

容器编排工具的三套解决方案

1、kubernetes
2、mesos+marathon
3、machine+swarn+compose

Kubernetes 架构

架构组件:master, nodes, database(k/v store)
master节点:apiserver, controller-manager, scheduler
nodes节点: kubelet, kube-proxy, container runtime
核心术语:Pod, label, service, ingress
网络插件:flannel, …

  1. kubernetes 容器编排工具基础介绍
  2. Kubernetes 容器编排工具架构和组件介绍
  3. Kubernetes 服务安装
  4. k8s Flannel 网络插件介绍
  5. k8s Flannel 网络插件配置介绍
  6. Etcd 服务介绍和简单配置
  7. Etcd 服务配置文件说明
  8. kubernetes 创建 services 后,服务发现方式
  9. Account:服务账户和普通账户以及账户组件
  10. Kubernetes API 访问控制一:认证概述
  11. Kubernetes 使用 Bootstrap Tokens 认证
  12. kubectl config 命令使用说明