浅谈容器及容器编排

•虚拟机技术和容器技术

  • 虚拟化技术发展的三个时代

 

浅谈容器及容器编排

 

  • 容器技术

容器技术:有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器技术。

•LXC,就是Linux容器虚拟技术(Linux container)。

•Linux Container是一种内核轻量级的操作系统层虚拟化技术。

•Linux 容器技术能够让您对应用及其整个运行时环境(包括全部所需文件)一起进行打包或隔离。从而让您可以在不同环境(如开发、测试和生产等环境)之间轻松迁移应用,同时还可保留应用的全部功能。

  • 容器解决什么问题?
  1. 保证开发、测试与生产环境的一致性
  2. 快速搭建各类基础服务,例如Gitlab,Nexus、Jenkins等,极大降低学习成本!
  3. 搭建一次性测试执行环境,例如我们运行自动化测试的环境,随用随建,不用即扔
  • 容器的优点

1. 敏捷环境
2. 提高生产力
3. 版本控制
4. 计算环境可移植性
5. 标准化
6. 安全

  • 虚拟机技术与容器技术对比

 

浅谈容器及容器编排

 

浅谈容器及容器编排

 

  • 容器技术的代表-Docker

Docker两句口号:

•Build, Ship and Run

搭建、发送、运行

•Build once,Run anywhere

搭建一次,到处能用

Docker技术的三大核心概念:

·Image

镜像

·Container

容器

·Repository

仓库

IT 软件中所说的 “Docker” ,是指容器化技术,用于支持创建和使用LXC。Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。

•容器编排工具

  • 什么是容器编排?

容器编排是指自动化容器的部署、管理、扩展和联网。容器编排可以为需要部署和管理成百上千个 Linxu容器和主机的企业提供便利。

  • 容器编排具有哪些用途?

•集群管理

•部署

•可伸缩性

•健康

•服务可用性

•隔离

  • 容器编排工具

通过抽象主机基础结构,允许用户将整个集群视为单个部署目标。

一些常见的方案包括:Kubernetes、Docker Swarm 和 Apache Mesos。

Docker Swarm

 

浅谈容器及容器编排

 

Apache Mesos

 

浅谈容器及容器编排

 

 

•Kubernetes介绍

  • Kubernetes是什么?K8s?

•Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。

•Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

通过Kubernetes你可以:

•快速部署应用

•快速扩展应用

•无缝对接新的应用功能

•节省资源,优化硬件资源的使用

Kubernetes 特点:

•可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)

•可扩展: 模块化, 插件化, 可挂载, 可组合

•自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

  • Kubernetes集群

Master:

•API Server

•Scheduler

•Controller manager

•Etcd

Node:

•Kubelet

•Kube-proxy

•Docker

 

浅谈容器及容器编排

 

  • Pod

 

浅谈容器及容器编排

 

Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。

Pod(上图绿色方框)安排在节点上,包含一组容器和卷。同一个Pod里的容器共享同一个网络命名空间,可以使用localhost互相通信。Pod是短暂的,不是持续性实体。

  • Lable
浅谈容器及容器编排

 

Labels其实就一对附加到Pod上的 key/value对 ,被关联到对象上,标签的使用我们倾向于能够标示对象的特殊特点,并且对用户而言是有意义的(比如app=mysql),但是标签对内核系统是没有直接意义的。

  • ReplicaSet( Replication Controller升级版 )

ReplicaSet 确保任意时间都有指定数量的Pod“副本”在运行。如果为某个Pod创建了ReplicaSet并且指定3个副本,它会创建3个Pod,并且持续监控它们。如果某个Pod不响应,那么ReplicaSet会替换它。

健康检测:

1.LivenessProbe(存活探针)

2.ReadinessProbe(就绪探针)

 

浅谈容器及容器编排

 

  • Service

Service是定义一系列Pod以及访问这些Pod的策略的一层抽象。Service通过Label找到Pod组。

 

浅谈容器及容器编排

 

 

浅谈容器及容器编排

 

注:在 1.8 以上的版本中,kube-proxy 组件增加了 ipvs 模式

  • 关于CI/CD流水线架构图:

 

浅谈容器及容器编排
上一篇:Kubernetes的Pod进阶(十一)


下一篇:hdu1710 二叉树