Harbor命令行工具介绍

1 什么是Harbor? Harbor是由VMware中国研发团队负责开发的开源企业级Registry项目,项目地址为https://github.com/vmware/harbor,该项目发布5个多月以来,深受用户喜爱,在GitHub获得了1000多个点赞星星和200多个Forks。 ...

September 09, 2016 · 9 min · 4064 words · Ringi Lee

OpenStack使用ISO镜像启动云主机

1. 基础知识 大多数OpenStack新手都很疑惑一个问题,为什么OpenStack只能上传qcow2、raw格式镜像,而不是我们装系统的ISO格式镜像。其实OpenStack原生支持ISO镜像格式,只是使用方法和直接使用qcow2、raw等格式会有点不同。 ...

August 01, 2016 · 10 min · 4552 words · Ringi Lee

sparse文件处理与传输

0. 什么是sparse文件 当用户申请一块很大的存储空间时,最开始并没有写入数据(全是空),此时文件系统为了节省存储资源,提高资源利用率,不会分配实际存储空间,只有当真正写入数据时,操作系统才真正一点一点地分配空间,比如一次分64KB。于是这个文件看起来很大,而占用空间很小,实际占用空间只与用户填的数据量有关。该文件看起来像一个大盒子,开始装的东西不多,空洞很大,因此称为稀疏文件(Sparse file)。Sparse文件是Linux文件系统的一个高级特性,能够实现磁盘的超负载使用(overload),比如20GB的磁盘空间,可以创建超过20GB的文件。它最经典的应用就是为虚拟机创建虚拟磁盘以及数据库快照,比如我们使用qemu-img创建一个大小为20GB的raw文件(注意qcow2格式不是sparse文件): ...

June 01, 2016 · 8 min · 3510 words · Ringi Lee

如何构建OpenStack镜像

本文以制作CentOS7.2镜像为例,详细介绍手动制作OpenStack镜像详细步骤,解释每一步这么做的原因。镜像上传到OpenStack glance,支持以下几个功能: ...

May 28, 2016 · 13 min · 6251 words · Ringi Lee

Ceph Pool操作总结

Ceph Pool操作总结 一个ceph集群可以有多个pool,每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,比如Replica Size(副本数)、Placement Groups、CRUSH Rules、快照、所属者等。 ...

May 19, 2016 · 3 min · 1058 words · Ringi Lee

Docker跨主机通信实现与分析

前言 docker目前支持以下5种网络模式: bridge:此时docker引擎会创建一个veth对,一端连接到容器实例并命名为eth0,另一端连接到指定的网桥中(比如docker0),因此同在一个主机的容器实例由于连接在同一个网桥中,它们能够互相通信。容器创建时还会自动创建一条SNAT规则,用于容器与外部通信时。如果用户使用了-p或者-Pe端口端口,还会创建对应的端口映射规则。 host:与宿主机共享网络,此时容器没有使用网络的namespace,宿主机的所有设备,如Dbus会暴露到容器中,因此存在安全隐患。 none:不设置网络,相当于容器内没有配置网卡,用户可以手动配置。 container:指定与某个容器实例共享网络 network:使用自定义网络,可以使用docker network create创建,并且默认支持多种网络驱动,用户可以自由创建桥接网络或者overlay网络。 默认是桥接模式,网络地址为172.16.0.0/16,同一主机的容器实例能够通信,但不能跨主机通信。本文下面将介绍如何使用gre隧道技术实现跨主机通信。 ...

May 10, 2016 · 6 min · 2837 words · Ringi Lee

Linux常用网络工具总结

本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof、ip、tcpdump、iptables等。本文不会深入研究这些命令的强大用法,因为每个命令都足以写一篇文章,本文只是简单地介绍并辅以几个简单demo实例,旨在大脑中留个印象,平时遇到问题时能够快速搜索出这些工具,利用强大的man工具,提供一定的思路解决问题。 ...

May 04, 2016 · 20 min · 9922 words · Ringi Lee

使用Harbor构建私有Docker镜像仓库

简介 Harbor是VMware公司最近开源的企业级Docker Registry项目, 项目地址为https://github.com/vmware/harbor 其目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为基础,提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署。用于部署Harbor的Docker Compose模板位于 /Deployer/docker-compose.yml,由5个容器组成: ...

April 18, 2016 · 8 min · 3840 words · Ringi Lee

谈谈Docker数据容器

翻译自: Data-only container madness 什么是数据容器? 数据容器就是本身只创建一个volume供其他容器共享,创建完后即退出,不执行任何任务。比如通过以下方式创建一个postgres容器。 ...

April 14, 2016 · 4 min · 1931 words · Ringi Lee

虚拟机、Docker和Hyper技术比较

操作系统 我们知道: 1 完整的操作系统=内核+apps 内核负责管理底层硬件资源,包括CPU、内存、磁盘等等,并向上为apps提供系统调用接口,上层apps应用必须通过系统调用方式使用硬件资源,通常并不能直接访问资源。apps就是用户直接接触的应用,比如命令行工具、图形界面工具等(linux的图形界面也是作为可选应用之一,而不像windows是集成到内核中的)。同一个内核加上不同的apps,就构成了不同的操作系统发行版,比如ubuntu、rethat、android(当然内核通常针对不同的发行版会有修改)等等。因此我们可以认为,不同的操作系统发行版本其实就是由应用apps构成的环境的差别(比如默认安装的软件以及链接库、软件包管理、图形界面应用等等)。我们把所有这些apps环境打成一个包,就可以称之为镜像。问题来了,假如我们同时有多个apps环境,能否在同一个内核上运行呢?因为操作系统只负责提供服务,而并不管为谁服务,因此同一个内核之上可以同时运行多个apps环境。比如假设我们现在有ubuntu和fedora的apps环境,即两个发行版镜像,分别位于/home/int32bit/ubuntu和/home/int32bit/fedora,我们最简单的方式,采用chroot工具即可快速切换到指定的应用环境中,相当于同时有多个apps环境在运行。 ...

March 20, 2016 · 10 min · 4531 words · Ringi Lee