容器技术

Kubernetes容器云平台实践

浪子不回头ぞ 提交于 2019-11-25 21:39:41
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。伴随着云原生技术的迅速崛起,如今Kubernetes 事实上已经成为应用容器化平台的标准,越来越受到企业的青睐,在生产中也应用的也越来越广泛。 我们的容器平台建设从2016年开始,大致经历了探索预研、体系建设和平台落地这样三个阶段。 下面就从Kubernetes的网络、存储、集群管理和监控与运维几个方面来分享下我们容器云平台建设走过的历程,希望给大家一些思考和启发。 一、 kubernetes网络 容器网络发展到现在,已经是双雄会的格局。双雄会其实指的就是Docker的CNM和Google、CoreOS、Kuberenetes主导的CNI。首先明确一点,CNM和CNI并不是网络实现,他们是网络规范和网络体系,从研发的角度他们就是一堆接口,你底层是用Flannel也好、用Calico也好,他们并不关心,CNM和CNI关心的是网络管理的问题。 网络需求调研发现,业务部门主要关注以下几点:1、容器网络与物理网络打通2、速度越快越好3、改动越少越好4、尽可能少的风险点。 容器的网络方案大体可分为协议栈层级、穿越形态、隔离方式这三种形式 协议栈层级:二层比较好理解,在以前传统的机房或虚拟化场景中比较常见,就是基于桥接的 ARP+MAC 学习,它最大的缺陷是广播。因为二层的广播

使用rancher满足程序猿刚需

假如想象 提交于 2019-11-25 21:13:13
通过将近1个季度的努力,基本上完成了内网开发、测试以及生产环境(借助公有云容器引擎服务)关键服务容器化工作。 在这个过程中,本来是把已经验证过的技术和方案进行落地,只是执行上的问题。但是研发大爷在使用过程中又提出了许多新的需求,见招拆招之后,发现还是有些许收获,因此整理成文,本文介绍rancher server的应用。 一、什么是rancher? Rancher是一个开源的企业级容器管理平台,通过使用rancher,可以快速的构建出kubernetes环境并对其进行可视化管理。 Rancher由以下四个部分组成: 1、基础设施编排 Rancher可以使用任何公有云或者私有云的Linux主机资源。对计算资源进行整合和统一调度使用 2、容器编排与调度 Rancher包含了当前全部主流的编排调度引擎,同一个用户可以创建Swarm或者Kubernetes集群。并且可以使用原生的Swarm或者Kubernetes工具管理集群。 3、应用商店 Rancher的用户可以在应用商店里一键部署由多个容器组成的应用,例如容器的日志集中收集应用套件。 4、企业级权限管理 Rancher支持灵活的插件式的用户认证。支持Active Directory,LDAP, Github等 认证方式。 Rancher支持在环境级别的基于角色的访问控制 (RBAC)

“深入浅出”来解读Docker网络核心原理

放肆的年华 提交于 2019-11-25 20:31:42
前言  之前笔者写了有些关于dokcer的各种相关技术的文章,唯独Docker网络这一块没有具体的来分享。后期笔者会陆续更新Docker集群以及Docker高级实践的文章,所以在此之前必须要和大家一起来解读一下Docker网络原理。  就好比中国武术一样:学招数,会的只是一时的方法;练内功,才是受益终生长久之计。认真看下去你会有收获的,我们一起来把docker的内功修练好。  在深入Docker内部的网络原理之前,我们先从一个用户的角度来直观感受一下Docker的网络架构和基本操作是怎么样的。 Docker网络架构  Docker在1.9版本中(现在都1.17了)引入了一整套docker network子命令和跨主机网络支持。这允许用户可以根据他们应用的拓扑结构创建虚拟网络并将容器接入其所对应的网络。  其实,早在Docker1.7版本中,网络部分代码就已经被抽离并单独成为了Docker的网络库,即libnetwork。在此之后,容器的网络模式也被抽像变成了统一接口的驱动。  为了标准化网络的驱动开发步骤和支持多种网络驱动,Docker公司在libnetwork中使用了CNM(Container Network Model)。CNM定义了构建容器虚拟化网络的模型。同时还提供了可以用于开发多种网络驱动的标准化接口和组件。  libnetwork和Docker

Docker(一):Docker入门教程

雨燕双飞 提交于 2019-11-25 20:31:32
如今Docker的使用已经非常普遍,特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下,微服务+Docker的完美组合,更加方便微服务架构运维部署落地。 本文详细解释介绍Docker入门相关内容,后期重点关注Docker在微服务体系中的使用。在了解Docker之前我们先考虑几个问题:1、Docker是什么?2、为什么要使用Docker,它有什么优势?带着这些问题我们来看看下面的内容。 什么是Docker? Docker 是世界领先的软件容器平台。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了

Docker的核心及安装

南楼画角 提交于 2019-11-25 19:54:52
博文结构 Docker镜像操作 Docker容器操作 Docker资源控制 Docker核心概念 一.Docker是什么? (1)Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机” Logo设计为蓝色鲸鱼,鲸鱼可以看作为宿主机,上面的集装箱可以理解为相互隔离的容器,每个集装箱中包含自己的应用程序。 (2)Docker和虚拟机的区别 作为一种轻量级的虚拟化方式,Docker 与传统虚拟机相比具有显著的优势。 Docker之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的。传统虚拟机需要有额外的虚拟机管理程序和虛拟机操作系统层,而Docker容器是直接在操作系统层面之上实现的虚拟化, 如图: (3)Docker的使用场景 现在开发者需要能方便地创建运行在云平台上的应用,必须要脱离底层的硬件,同时还需要任何时间地点可获取这些资源,这正是Docker所能提供的。Docker 的容器技术可以在一台主机 上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,意味着简化了重新部署、调试这些琐碎的重复工作,极大地提高了工作效率。 二.Docker的核心概念及安装 (1)镜像 Docker的镜像(mage) 是创建容器的基础,类似虚拟机的快照 可以理解为是一一个面向Docker容器引擎的只读模板。比如,一个镜像可以是一个完整的

数据卷中的容器操作,整体来说还是非常简单的

时光毁灭记忆、已成空白 提交于 2019-11-25 18:50:35
关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料。 本文是本系列的第六篇,阅读前面的文章有助于更好的理解本文: Docker 入门及安装[Docker 系列-1] Docker 容器基本操作[Docker 系列-2] Docker 容器高级操作[Docker 系列-3] Docker 镜像基本操作[Docker 系列-4] DockerHub 与容器网络[Docker 系列-5] 数据卷入门 在前面的案例中,如果我们需要将数据从宿主机拷贝到容器中,一般都是使用 Docker 的拷贝命令,这样性能还是稍微有点差,没有办法能够达到让这种拷贝达到本地磁盘 I/O 性能呢?有! 数据卷可以绕过拷贝系统,在多个容器之间、容器和宿主机之间共享目录或者文件,数据卷绕过了拷贝系统,可以达到本地磁盘 I/O 性能。 本文先通过一个简单的案例向读者展示数据卷的基本用法。 以前面使用的 nginx 镜像为例,在运行该容器时,可以指定一个数据卷,命令如下: docker run -itd --name nginx -v /usr/share/nginx/html/ -p 80: 80 bc26f1ed35cf 运行效果如下: 此时,我们创建了一个数据卷并且挂载到容器的 /usr/share/nginx/html/ 目录下,小伙伴们知道,该目录实际上是