自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 资源 (5)
  • 论坛 (1)
  • 收藏
  • 关注

原创 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 1407

原创 Kubernetes Krew简介

概念Krew是kubectl插件的包管理工具。借助Krew,可以轻松地使用kubectl plugin:发现插件、安装和管理插件。使用类似apt、dnf或者brew。对于kubectl用户:krew能帮助用户搜索、安装和管理kubectl插件;对于插件开发者:krew可以帮助你在多种平台上打包和发布插件。使用krew的使用:kubectl krew search ...

2019-01-11 11:01:49 1144

原创 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 2580

原创 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 2293

原创 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 523

原创 calicoctl命令简介

背景在calico中,有多种网络资源。以v1.6.1为例,网络资源包含:node,bgpPeer,hostEndpoint,workloadEndpoint,ipPool,policy,profile等。 下面我将讲解如何使用calicoctl命令行工具来控制这些网络资源。 用法create创建一个网络资源。比如说我们要创建一个“profile” 的网络资源,那么...

2018-03-01 05:41:36 5789

原创 使用Rest api管理Ceph网关

背景  开发基于Ceph RadosGW的微服务,需要实现调用方可以通过rest api就能创建用户,获取用户信息等功能。 实现  Ceph的RadosGW自身就有该功能,这些创建用户、获取用户信息、获取使用情况等的功能被称为Admin Operation(管理操作)。我们直接通过RadosGW的URL再加上/admin就可以访问执行管理操作了,比如RadosGW的URL为htt

2018-02-05 05:36:32 1785 1

原创 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 3724 1

原创 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 1027

原创 制作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 425

原创 CI脚本异常退出问题定位

背景  在CI脚本中,使用类似如下脚本进行项目编译的计时,但在执行过程中,有时会出现CI脚本(命名为ci.sh)未完全执行的情况: #!/bin/bash -esleep_time=$1start_time=`date "+%s"`# do sth, this sleep would simulate project compilationsleep $sleep_timeend_time

2017-11-06 23:39:42 499

原创 容器中使用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 17518 2

原创 nohup介绍

背景  我们通常使用&将前台任务变为后台任务执行,但是如果只是使用&,那么在突然断网或者关闭启动该任务的终端(ps:可使用putty来测试,部分软件如mobaxterm做了优化,关闭终端是友好关闭的)时,内核就会给后台任务发送SIGHUP信号,从而导致后台任务停止。这时,我们就需要使用nohup来启动该后台任务。 简介  nohup,顾名思义,就是使得运行的命令可以忽略HANGUP信号。因此,即使

2017-09-05 06:54:43 7475

原创 docker创建ceph集群

背景  Ceph官方现在提供两类镜像来创建集群,一种是常规的,每一种Ceph组件是单独的一个镜像,如ceph/daemon、ceph/radosgw、ceph/mon、ceph/osd等;另外一种是最新的方式,所有的Ceph组件都集成在一个镜像ceph/daemon中,如果要创建对应的Ceph组件容器,只需要指定类型即可。这里,我们使用第一种方式来创建Ceph集群。   另外,这里所有的容器,都

2017-08-17 07:44:24 3127

原创 maven单元测试设置代理

背景  环境需要设置代理才能够访问外部网络,如果只是运行java程序来访问网络,我们可以通过java -jar test.jar -DproxyHost=proxy_ip -DproxyPort=proxy_port,但如果是java的maven项目中,单元测试需要访问网络,只执行mvn test则会导致单元测试的代码无法访问网络。 解决  Maven单元测试,使用的是Surefire Maven

2017-08-02 07:41:30 641

原创 Kubernetes服务之“运行单实例的有状态服务”

目标  在你的环境中创建一个PV   创建一个MySQl的Deployment   在集群中以DNS名称的方式,将MySQL暴露给其他的pod 开始之前  你需要一个Kubernetes集群,一个可以连接到集群的kubectl命令行工具。如果你没有集群,你可以使用Minikube来创建。   我们会创建一个PV(PersistentVolume)用于数据存储。点击这里来查看PV支持的类型,该

2017-07-11 06:57:11 1982

原创 关闭chrome浏览器的developer tools

背景  Chrome使用过程中,很容易启动Chrome developer tools,一些误触如按到F12、CTRL+Shift+C等都会启动developer tools。对于不开发Web的人来说,并不需要这个功能,但是又却很容器启动该功能。然而,Chrome本身并没有提供关闭该功能的设置。下面介绍下网友总结出的经验。 方法打开Chrome  按下F12,打开devloper tools,并通

2017-07-03 06:51:25 4868 1

原创 Kubernetes服务之StatefulSets简介

StatefulSets在v1.5时还是个beta特性,它取代了v1.4的PetSets特性。PetSets的用户可以参考v1.5的升级指导,将正在运行的PeetSets升级到StatefulSets。   StatefulSet是一个给Pod提供唯一标志的控制器,它可以保证部署和扩展的顺序。 使用StatefulSet  当应用有以下任意要求时,StatefulSet的价值就体现出来了。

2017-06-26 06:25:20 15413

原创 Kubernetes存储之Persistent Volumes简介

注意  以下内容适用于Kubernetes v1.6.0及以下。简介  管理存储和管理计算有着明显的不同。PersistentVolume子系统给用户和管理员提供了一套API,从而抽象出存储是如何提供和消耗的细节。在这里,我们介绍两种新的API资源:PersistentVolume(简称PV)和PersistentVolumeClaim(简称PVC)。   PersistentVolume(持久卷

2017-05-16 06:32:00 5996

翻译 Kubernetes v1.6开始支持RBAC

Kubernetes v1.6的一个亮点就是RBAC认证特性成为了beta版本。RBAC,基于角色的访问控制(Role-Based Access Control),是用于管理Kubernetes资源访问权限的认证机制。RBAC支持灵活的认证策略配置,使得集群在不重启的情况下就可以升级权限。   本文重点聚焦在一些有趣的新特性和实践上。 RBAC vs ABAC  当前Kubernetes已经支持

2017-04-20 06:54:29 1389

原创 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 7182

原创 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 10200

原创 Kubernetes volumes简介

容器中的磁盘文件生命周期比较短暂,在一些比较复杂的容器应用中会产生一些问题。一、容器crash后,kubelet会重启该容器,但这些文件会丢失掉。二、pod中的多个容器经常需要共享文件。因此,Kubernetes的Volume应然而生,用于解决这些问题。 背景  在Docker中,也有volumes这个概念,volume只是磁盘上一个简单的目录,或者其他容器中的volume。生命周期也不受管理,并

2017-04-07 06:31:08 15498

原创 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 7135 3

原创 使用Docker容器来源码编译etcd

背景  etcd是CoreOS公司开发的分布式键值对存储库。在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储。   不幸的是,在github的release中,CoreOS将etcd的二进制可执行文件都放在了亚马逊的S3存储上,在国内访问非常慢。因此,我们只能通过源码编译etcd。 过程  1. 下载etcd源码。 $ git clone https://

2017-03-27 07:02:52 1259

原创 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 8567

原创 重启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 25599

原创 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 4450 1

原创 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 1243

原创 Docker存储驱动之总览

简介  本文会介绍Docker存储驱动的特性,别列出现在已经支持的存储驱动,最后,会介绍如果选型适合你的存储驱动。 可插拔的存储驱动架构  Docker的存储驱动架构是可插拔的,可以让你很方便的将适合你环境和用例的存储驱动“插进”Docker。每个Docker存储驱动都建立在一种Linux文件系统或者卷管理系统之上,也可以很自由地按照其自己的方法去实现镜像层和容器层的管理。也就是说一些存储驱动在不

2017-03-15 05:51:36 2746

原创 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 1595

原创 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 2850 1

原创 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 1109

原创 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 4243

原创 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 2931

原创 Docker存储驱动之OverlayFS简介

简介  OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性:    1) 更简单地设计;    2) 从3.18开始,就进入了Linux内核主线;    3) 可能更快一些。   因此,OverlayFS在Docker社区关注度提高很快,被很多人认为是AUFS的继承者。就像宣称的一样,OverlayFS还很年轻。所以,在生成环境使用它时,还是需要

2017-03-07 06:26:34 13421

原创 Dockerfile中CMD和ENTRYPOINT的区别

当启动一个容器时,CMD和ENTRYPOINT都可以用来执行启动命令。但它们的具体用法还是有一些区别:   1. Dockerfile必须至少指定CMD或者ENTRYPOINT其中的一个。   2. ENTRYPOINT应该用作容器的主执行程序。   3. CMD应该用于定义ENTRYPOINT的默认参数,或者为容器执行一个ad-hoc命令。   4. 当启动容器时使用交互时的参数时,CMD

2017-03-04 07:13:33 1827

原创 OpenStack Horizon创建虚拟机时增加虚拟机OS用户

背景  通过OpenStack的Horizon使用镜像创建虚拟机(以Ubuntu为例),如果不知道镜像的用户名和密码,在创建好虚拟机之后,无法登录虚拟机的OS。因此,我们需要一种方法,创建虚拟机时增加用户。 方法  Horizon创建虚拟机时,在创建页面-“配置Tab”选项-“Customization Script”中,输入以下字符串: #!/bin/shpasswd ubuntu<<EOF

2017-03-03 06:10:28 717

原创 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 3801

原创 Docker存储驱动之AUFS简介

简介  AUFS是曾是Docker默认的首选存储驱动。它非常稳定、有很多真实场景的部署、很强的社区支持。它有以下主要优点:   极短的容器启动时间。   有效的存储利用率。   有效的内存利用率。   虽然如此,但由于它没有包含在Linux内核主线中,所有很多Linux发行版并不支持AUFS。   以下章节介绍AUFS的特性,并且它们如何作用于Docker。特性镜像分层和部署  AUFS是

2017-03-01 05:34:16 2301

etcd-v2.2.1-linux-amd64.tar.gz

etcd-v2.2.1-linux-amd64.tar.gz

2017-03-26

重构改善既有代码的设计

重构改善既有代码的设计,代码重构优化。

2015-07-22

STL源码剖析简体中文完整版(清晰扫描带目录)

STL源码剖析简体中文完整版(清晰扫描带目录)

2015-07-20

Introduction To Algorithms,算法导论英文版

Introduction To Algorithms,算法导论英文版

2015-07-20

C#程序设计案例教程(推荐)

基础的C#教程 新东方资源,可信 建议阅读

2009-03-30

styshoo的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除