
云计算
文章平均质量分 94
styshoo
这个作者很懒,什么都没留下…
展开
-
Docker容器网络代理设置
之前已经讲过如何设置Docker守护进程如何设置网络代理,那么如何设置运行的Docker容器的网络代理呢?设置环境变量设置容器环境变量,这也是最直接的一种方式。启动容器时,通过设置–env的flag,将环境变量传入容器。变量名Dockerfile示例Docker run示例HTTP_PROXYENV HTTP_PROXY “http://127.0.0.1:3001”–env HTTP_PROXY=“http://127.0.0.1:3001”HTTPS_PROXYE原创 2020-05-18 11:21:40 · 42316 阅读 · 1 评论 -
ceph -s集群报错too many PGs per OSD
背景集群状态报错,如下:# ceph -s cluster 1d64ac80-21be-430e-98a8-b4d8aeb18560 health HEALTH_WARN <-- 报错的地方 too many PGs per OSD (912 > max 300) monmap e1: 1 mons at {node1=109.105.11原创 2017-03-17 05:43:46 · 6466 阅读 · 1 评论 -
Docker aufs存储驱动layer、diff、mnt目录的区别
Docker基础信息 首先,先查询Docker使用的后端存储。使用命令docker info,主要关注Storage Driver相关的部分。 $ docker info...Server Version: 1.12.6Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs:原创 2017-04-18 07:00:06 · 8334 阅读 · 0 评论 -
Kubernetes volumes简介
容器中的磁盘文件生命周期比较短暂,在一些比较复杂的容器应用中会产生一些问题。一、容器crash后,kubelet会重启该容器,但这些文件会丢失掉。二、pod中的多个容器经常需要共享文件。因此,Kubernetes的Volume应然而生,用于解决这些问题。 背景 在Docker中,也有volumes这个概念,volume只是磁盘上一个简单的目录,或者其他容器中的volume。生命周期也不受管理,并原创 2017-04-07 06:31:08 · 19941 阅读 · 0 评论 -
Ubuntu上手动安装Kubernetes
背景 两台Ubuntu16.04服务器:ip分别为192.168.56.160和192.168.56.161。。 Kubernetes版本:1.5.5 Docker版本:1.12.6 etcd版本:2.2.1 flannel版本:0.5.6 其中160服务器既做Kubernetes的master节点,又做node节点;161服务器只做node节点。 master原创 2017-04-05 07:18:13 · 9499 阅读 · 3 评论 -
Kubernetes存储之Persistent Volumes简介
注意 以下内容适用于Kubernetes v1.6.0及以下。简介 管理存储和管理计算有着明显的不同。PersistentVolume子系统给用户和管理员提供了一套API,从而抽象出存储是如何提供和消耗的细节。在这里,我们介绍两种新的API资源:PersistentVolume(简称PV)和PersistentVolumeClaim(简称PVC)。 PersistentVolume(持久卷原创 2017-05-16 06:32:00 · 11342 阅读 · 0 评论 -
Kubernetes服务之“运行单实例的有状态服务”
目标 在你的环境中创建一个PV 创建一个MySQl的Deployment 在集群中以DNS名称的方式,将MySQL暴露给其他的pod 开始之前 你需要一个Kubernetes集群,一个可以连接到集群的kubectl命令行工具。如果你没有集群,你可以使用Minikube来创建。 我们会创建一个PV(PersistentVolume)用于数据存储。点击这里来查看PV支持的类型,该原创 2017-07-11 06:57:11 · 2469 阅读 · 0 评论 -
Kubernetes服务之StatefulSets简介
StatefulSets在v1.5时还是个beta特性,它取代了v1.4的PetSets特性。PetSets的用户可以参考v1.5的升级指导,将正在运行的PeetSets升级到StatefulSets。 StatefulSet是一个给Pod提供唯一标志的控制器,它可以保证部署和扩展的顺序。 使用StatefulSet 当应用有以下任意要求时,StatefulSet的价值就体现出来了。原创 2017-06-26 06:25:20 · 16788 阅读 · 0 评论 -
容器中使用iptables报错can't initialize iptables table Permission denied (you must be root)
背景 在docker容器中部署了一微服务,该服务需要docker push镜像到docker registry。因此,docker容器中需要安装docker服务。但在启动容器的时候,却报错: can't initialize iptables table `filter': Permission denied (you must be root)Perhaps iptables or your原创 2017-10-19 07:00:27 · 29862 阅读 · 2 评论 -
制作ssh互信的docker镜像
DockerfileFROM ubuntu:16.04# packageRUN apt-get update; apt-get -y install sshCOPY ssh_config /etc/ssh/ssh_config# sshRUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config && sed -i 's原创 2018-01-12 07:04:09 · 618 阅读 · 0 评论 -
rexray在CentOS上不能创建ceph rbd的docker volume问题定位
背景 我们通过docker的rexray插件来创建ceph rbd设备的docker volume,但总提示创建失败。 # docker volume create --driver=rexray --opt=size=5 --name=cephrbd-bookError response from daemon: create test_cephrbd_volume: Volu原创 2018-01-24 06:49:10 · 1440 阅读 · 0 评论 -
CentOS7.0安装Ceph(jewel)及以上版本
背景 由于docker的Ceph插件rexray对Ceph版本有一定的要求,当Ceph版本为hammer (0.94.10)时,rexray无法成功创建rbd设备。CentOS 7及以上版本,默认安装的就是hammer版本,因此,我们需要安装更高的jewel版本。Ceph的版本可参见。 安装 为了安装速度,我们可以选用国内源。通常大家使用的国内源包括: 网易 ht原创 2018-02-01 06:23:25 · 4718 阅读 · 1 评论 -
使用Rest api管理Ceph网关
背景 开发基于Ceph RadosGW的微服务,需要实现调用方可以通过rest api就能创建用户,获取用户信息等功能。 实现 Ceph的RadosGW自身就有该功能,这些创建用户、获取用户信息、获取使用情况等的功能被称为Admin Operation(管理操作)。我们直接通过RadosGW的URL再加上/admin就可以访问执行管理操作了,比如RadosGW的URL为htt原创 2018-02-05 05:36:32 · 2269 阅读 · 1 评论 -
calicoctl命令简介
背景在calico中,有多种网络资源。以v1.6.1为例,网络资源包含:node,bgpPeer,hostEndpoint,workloadEndpoint,ipPool,policy,profile等。 下面我将讲解如何使用calicoctl命令行工具来控制这些网络资源。 用法create创建一个网络资源。比如说我们要创建一个“profile” 的网络资源,那么...原创 2018-03-01 05:41:36 · 11502 阅读 · 0 评论 -
dcos下rexray服务的配置
在dcos环境下,rexray服务的默认配置文件为/opt/mesosphere/etc/rexray.conf,而其服务文件则是/etc/systemd/system/dcos-rexray.service。 # vim /etc/systemd/system/dcos-rexray.service[Unit]Description=REX-Ray: A vendor agno...原创 2018-03-18 22:35:14 · 699 阅读 · 0 评论 -
docker-maven-plugin插件设置Docker的buildArgs
docker-maven-plugin是spotify出品的一款针对spring boot项目的docker插件,可将spring boot项目打包到docker镜像中。如果在编译docker镜像时需要设置build arg,只需要在maven的配置文件pom.xml中,configuration下增加buildArgs。标签的key和值对应build arg的key和值,如下所示,dock...原创 2018-03-22 21:50:49 · 3779 阅读 · 0 评论 -
calico在docker上的部署及验证
1. 背景以下的部署以五台服务器环境为例:服务器1: hostname为etcdnode1, IP为192.168.56.100服务器2: hostname为etcdnode2, IP为192.168.56.101服务器3: hostname为etcdnode3, IP为192.168.56.102服务器2: hostname为hostnode1, IP为192.168.56....原创 2018-05-07 06:51:41 · 2983 阅读 · 0 评论 -
ceph-deploy出错UnableToResolveError Unable to resolve host
背景 ps:在本文中,假设我系统的hostname为node1。 使用ceph-deploy命令搭建Ceph集群,执行ceph new node1时,出现如下错误: [node1][INFO ] Running command: /bin/ip addr show[node1][DEBUG ] IP addresses found: ['192.168.56.16', '172.17.原创 2017-03-16 06:22:56 · 1549 阅读 · 0 评论 -
Kubernetes DNS 简介
环境$ sudo lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 16.04.2 LTSRelease: 16.04Codename: xenial$ kubectl versionClient Version: version.Info{Major:原创 2017-04-10 07:01:54 · 11688 阅读 · 0 评论 -
Docker存储驱动之总览
简介 本文会介绍Docker存储驱动的特性,别列出现在已经支持的存储驱动,最后,会介绍如果选型适合你的存储驱动。 可插拔的存储驱动架构 Docker的存储驱动架构是可插拔的,可以让你很方便的将适合你环境和用例的存储驱动“插进”Docker。每个Docker存储驱动都建立在一种Linux文件系统或者卷管理系统之上,也可以很自由地按照其自己的方法去实现镜像层和容器层的管理。也就是说一些存储驱动在不原创 2017-03-15 05:51:36 · 3021 阅读 · 0 评论 -
Ceph部署(二)RGW搭建
背景Ceph RGW简介Ceph RGW基于librados,是为应用提供RESTful类型的对象存储接口。RGW提供两种类型的接口: 1) S3:兼容Amazon S3RESTful API; 2) Swift:兼容OpenStack Swift API。 S3和Swift API共享同一个命名空间,所以可以使用两种API访问相同的数据。环境规划如上篇文章《Ceph部署(原创 2017-02-28 06:39:19 · 6161 阅读 · 0 评论 -
Ceph部署(一)集群搭建
背景Ceph简介Ceph是一个分布式存储,可以提供对象存储、块存储和文件存储,其中对象存储和块存储可以很好地和各大云平台集成。一个Ceph集群中有Monitor节点、MDS节点(可选,用于文件存储)、至少两个OSD守护进程。 Ceph OSD:OSD守护进程,用于存储数据、处理数据拷贝、恢复、回滚、均衡,并通过心跳程序向Monitor提供部分监控信息。一个Ceph集群中至少需要两个OSD守护进程。原创 2017-02-17 05:41:45 · 16439 阅读 · 2 评论 -
Docker存储驱动之AUFS简介
简介 AUFS是曾是Docker默认的首选存储驱动。它非常稳定、有很多真实场景的部署、很强的社区支持。它有以下主要优点: 极短的容器启动时间。 有效的存储利用率。 有效的内存利用率。 虽然如此,但由于它没有包含在Linux内核主线中,所有很多Linux发行版并不支持AUFS。 以下章节介绍AUFS的特性,并且它们如何作用于Docker。特性镜像分层和部署 AUFS是原创 2017-03-01 05:34:16 · 2756 阅读 · 0 评论 -
使用国内docker镜像源
在国内,通过Docker的pull和push命令访问hub.docker时,网络十分慢,而且会出现各种各样的网络连接问题。因此这里介绍下如何使用国内的镜像源,这里以DaoCloud为例。 1. 注册DaoCloud用户; 2. 注册完成后,会进入dashboard页面,点击右上方的加速器。该页面提供了Linux、Windows和Mac的加速方案,我这里选择的是Linux; 3. 执行其提示的命原创 2017-02-22 06:19:01 · 12467 阅读 · 0 评论 -
Dockerfile注意事项
准则尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件。 避免安装不必须的包。 每个容器应该只关注一个功能点。 最小化镜像的层数。 多行参数时应该分类。这样更清晰直白,便于阅读和review,另外,在每个换行符\前都增加一个空格。 对构建缓存要有清楚的认识。 指令注意事项FROM Dockerfile referen原创 2017-02-23 06:19:03 · 3818 阅读 · 0 评论 -
OpenStack Horizon创建虚拟机时增加虚拟机OS用户
背景 通过OpenStack的Horizon使用镜像创建虚拟机(以Ubuntu为例),如果不知道镜像的用户名和密码,在创建好虚拟机之后,无法登录虚拟机的OS。因此,我们需要一种方法,创建虚拟机时增加用户。 方法 Horizon创建虚拟机时,在创建页面-“配置Tab”选项-“Customization Script”中,输入以下字符串: #!/bin/shpasswd ubuntu<<EOF原创 2017-03-03 06:10:28 · 991 阅读 · 0 评论 -
Dockerfile中CMD和ENTRYPOINT的区别
当启动一个容器时,CMD和ENTRYPOINT都可以用来执行启动命令。但它们的具体用法还是有一些区别: 1. Dockerfile必须至少指定CMD或者ENTRYPOINT其中的一个。 2. ENTRYPOINT应该用作容器的主执行程序。 3. CMD应该用于定义ENTRYPOINT的默认参数,或者为容器执行一个ad-hoc命令。 4. 当启动容器时使用交互时的参数时,CMD原创 2017-03-04 07:13:33 · 2062 阅读 · 0 评论 -
rdb map出错rbd sysfs write failed
创建了一个rbd镜像$ rbd create --size 4096 docker_test然后,在Ceph client端将该rbd镜像映射为本地设备时出错。$ rbd map docker_test --name client.adminrbd: sysfs write failedRBD image feature set mismatch. You can disable features原创 2017-03-08 07:05:31 · 3853 阅读 · 0 评论 -
Ceph osd启动报错osd init failed (36) File name too long
在Ceph的osd节点上,启动osd进程失败,查看其日志/var/log/ceph/ceph-osd.{osd-index}.log日志,报错如下: 2017-02-14 16:26:13.558535 7fe3883f58c0 0 filestore(/var/lib/ceph/osd/ceph-1) mount: enabling WRITEAHEAD journal mode: check原创 2017-03-09 07:04:58 · 5701 阅读 · 0 评论 -
重启osd服务失败:Start request repeated too quickly
背景 OS:Ubuntu 16.04 修改了osd的一些配置,修改后,需要重启osd服务才能生效。第一次重启后,配置立刻生效。再改了一些配置,重启osd服务后,配置却不再生效了。ps命令查看进程,发现osd进程都没有启动。 分析 osd进程未启动,第一直觉就是配置出错,osd进程启动后又挂掉。于是,进入/var/log/ceph目录,查看ceph-osd.0.log,发现日志末尾只有关闭原创 2017-03-20 06:38:44 · 43957 阅读 · 1 评论 -
Docker存储驱动之OverlayFS简介
简介 OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性: 1) 更简单地设计; 2) 从3.18开始,就进入了Linux内核主线; 3) 可能更快一些。 因此,OverlayFS在Docker社区关注度提高很快,被很多人认为是AUFS的继承者。就像宣称的一样,OverlayFS还很年轻。所以,在生成环境使用它时,还是需要原创 2017-03-07 06:26:34 · 26003 阅读 · 0 评论 -
ceph-deploy install时,远端节点在执行apt-get update命令时失败
环境 OS:Ubuntu 16.04背景 使用ceph-deploy部署Ceph集群,调用ceph-deploy install命令在远端节点安装ceph环境,执行apt-get update命令时失败。 Err:1 http://mirrors.163.com/ubuntu xenial InRelease Temporary failure resolving 'mirrors.163原创 2017-03-10 06:58:18 · 1337 阅读 · 0 评论 -
Docker存储驱动之Device Mapper简介
Device Mapper是一个基于kernel的框架,它增强了很多Linux上的高级卷管理技术。Docker的devicemapper驱动在镜像和容器管理上,利用了该框架的超配和快照功能。为了区别,本文使用Device Mapper指驱动中的框架,而devicemapper指Docker的存储驱动。 注意:商业支持的Docker Engine(CS-Engine)建议在RHEL和CentOS原创 2017-03-13 07:10:41 · 5006 阅读 · 1 评论 -
Docker版本升级至17.03
2017/3/3,Docker官方发表了一篇博客,Docker版本从1.13.*直接跳入17.03,该版本的意思是17年3月。同时,还声明了Docker以后会以CE(Community Edition)和EE(Enterprise Edition)的形式发布。其中,CE版本每个月发布一次,也就是说,随后的版本就是17.03、17.04、17.05等,而EE的版本是没三个月发布一次,对应的就是17.0原创 2017-03-23 07:10:31 · 8997 阅读 · 0 评论 -
Docker存储驱动之Btrfs简介
简介Btrfs是下一代的copy-on-write文件系统,它支持很多高级特性,使其更加适合Docker。Btrfs合并在内核主线中,并且它的on-disk-format也逐渐稳定了。不过,它的很多特性还仍然处于开发中。 Docker的btrfs存储驱动利用了很多Btrfs特性来管理镜像和容器。这些特性中最重要的就是thin provisioning(超配)、copy-on-write和快照。原创 2017-03-02 07:02:54 · 5300 阅读 · 0 评论 -
Docker存储驱动之ZFS简介
ZFS是下一代的文件系统,支持了很多存储高级特性,如卷管理、快照、和校验、压缩和重复删除技术、拷贝等。 ZFS由Sun公司创建,现属于Oracle,ZFS是开源的,并基于CDDL license。因为CDDL和GPL不兼容,ZFS不能加入Linux kernel主线。然而,ZFS On Linux(ZoL)项目提供kernel模块和用户空间程序,这些都可以单独的安装。 ZFS on Li原创 2017-03-14 06:29:27 · 1967 阅读 · 0 评论 -
Docker网络代理设置
背景 在一些实验室环境,服务器没有直接连接外网的权限,需要通过网络代理。我们通常会将网络代理直接配置在/etc/environment、/etc/profile之类的配置文件中,这对于大部分操作都是可行的。然而,docker命令却使用不了这些代理。比如docker pull时需要从外网下载镜像,就会出现如下错误: $ docker pull hello-worldUnable to find i...原创 2017-02-18 12:09:59 · 81527 阅读 · 2 评论