2017

Uncategorized

关于RPM的%config和(noreplace)

这篇文章翻译自这里, 是一篇关于制作RPM包中的一个比较难于理解的地方。 不做开发的同学就不要看了。 RPM spec文件有个名为 %config 的宏,它可以标识配置文件, 这样在升级时用户对配置文件做过的修改就不会丢失。 没有它,用户千辛万苦修改过的配置文件会在升级过程中被覆盖。 %config也可以写成%config(noreplace),不过网上关于它的说明却屈指可数。 下面是关于这两者的一些实验,都是在RedHat 9的RPM(rpm-4.2-0.69)上进行的, 其他版本有可能不同。 RPM中的文件的制约条件有三个:1. 该文件在spec中如何标识(默认,%config或者%config(noreplace)); 2. 在rpm升级包中该文件是否被更新;3. 该文件是否被用户编辑过。 下表就是各个条件的组合结果。 文件标识

Uncategorized

使用kubeadm在Red Hat 7/CentOS 7快速部署Kubernetes 1.7集群

前言 kubeadm是Kubernetes官方推出的快速部署Kubernetes集群工具,其思路是将Kubernetes相关服务容器化(Kubernetes静态Pod)以简化部署。kubeadm当前处于beta阶段,不建议生产环境使用(比如etcd单点)。使用kubeadm部署Kubernetes集群非常简单方便,本文记录了在Red Hat 7上用kubeadm部署一个安全的Kubernetes集群的全过程,CentOS 7部署过程与之类似。 如需kubeadm部署一个高可用的集群,可采用如下方式 kubeadm init –api-advertise-addresses=vip –external-etcd-endpoints=http://x.x.x.x:2379,http://x.x.x.x:2379,http://x.x.x.x:2379 –pod-network-cidr 10.244.0.0/16 注:–api-advertise-addresses 本身支持多个api service ip,但操作kubeadm join加入集群节点会失败, 所以对外服务只配置为一个vip。 部署实例 etcd Version: 3.0.17 kubeadm: v1.7.1 kubernetes: v1.7.1 Flannel: v0.8.0 Docker: 17.03.1-ce  

Uncategorized

使用kubeadm安装kubernetes1.7

环境 下载kubernetes和安装 1 方案1使用阿里云yum镜像 2 使用国外服务器下载安装包 下载kubernetes镜像 配置kubelet 启动相关组件 创建集群 配置kubectl的kubeconfig 安装flannel master节点安装验证 node节点安装和加入集群 node节点安装验证 参考 自动化脚本已经上传到github: https://github.com/zhuchuangang/k8s-install-scripts/tree/master/kubeadm 0 环境

Uncategorized

使用docker-maven-plugin插件实现Docker构建并提交到私有仓库

使用Maven插件实现项目打包及Docker构建并提交到私有仓库 以下内容非教程,不适合对Docker及Maven不熟悉者使用 目标:Spring Boot项目打包成可执行的jar文件后,使用docker-maven-plugin(spotify)插件自动构建Docker后上传到阿里云Docker镜像仓库(其他仓库同理) 引用参考: docker-maven-plugin插件:https://github.com/spotify/docker-maven-plugin Maven提交服务密码加密:https://maven.apache.org/guides/mini/guide-encryption.html Maven的settings.xml:http://maven.apache.org/ref/3.3.9/maven-settings/settings.html 准备工作: 本机安装 Docker 1.9 Eclipse环境(本机使用STS) Maven环境 阿里云Docker仓库(其他Docker仓库都可以) 如果需要Maven项目部署,需要Maven私服() SecureCRT (其他终端皆可,仅用于启动Docker测试) 1、 构建Spring

Uncategorized

使用Draft简化容器应用的开发流程

Draft是微软Deis团队开源(见Azure/draft)的容器应用开发辅助工具,它可以帮助开发人员简化容器应用程序的开发流程。 Draft主要由三个命令组成 draft init:初始化docker registry账号,并在Kubernetes集群中部署draftd(负责镜像构建、将镜像推送到docker registry以及部署应用等) draft create:draft根据packs检测应用的开发语言,并自动生成Dockerfile和Kubernetes Helm Charts draft up:根据Dockfile构建镜像,并使用Helm将应用部署到Kubernetes集群(支持本地或远端集群)。同时,还会在本地启动一个draft client,监控代码变化,并将更新过的代码推送给draftd。 Draft安装 由于Draft需要构建镜像并部署应用到Kubernetes集群,因而在安装Draft之前需要 部署一个Kubernetes集群,部署方法可以参考kubernetes部署方法(注意minikube的支持还有问题,暂时不要使用) 安装并初始化helm(需要v2.4.x版本,并且不要忘记运行helm init),具体步骤可以参考helm使用方法 注册docker registry账号,比如Docker

Uncategorized

Harbor的搭建(vmware企业级docker镜像私服)

1、下载harbor,地址https://github.com/vmware/harbor 2、进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息 2.1、hostname =10.10.20.202 (这个是harbor所在服务器的ip,不能写127.0.0.1) 2.2、修改邮箱相关信息 3、执行./prepare命令 4、添加/etc/sysconfig/docker文件,文件内容如下: OPTIONS=”–insecure-registry 10.10.20.202″ 5、修改/usr/lib/systemd/system/docker.service文件 5.1、新增一行,EnvironmentFile=-/etc/sysconfig/docker,该文件只有一行内容,OPTIONS=”–insecure-registry 10.10.20.202″,如果/usr/lib/systemd/system/docker.service文件中不增加EnvironmentFile=-/etc/sysconfig/docker这行,下面对ExecStart的修改是不生效的。 5.2、修改一行,ExecStart=/usr/bin/dockerd $OPTIONS 为什么要修改这个配置文件呢?–insecure-registry代表本地镜像库,修改了以上配置文件后需要重启docker服务,此时docker login时,将连接指定的本地镜像库。 如果不修改这个配置文件,则登录镜像私服时(docker login 10.10.20.202)会抛出如下错误

Scroll to Top