Etcd数据迁移

本文讲述从一个正在运行的 etcd 上,将数据迁移到一个包含三台 etcd 服务器组成的集群上,其中包含一些故障恢复和数据迁移的方法以及高可用 etcd 集群搭建方式的介绍。 数据迁移 在 inf-platform53 机器上运行着一个 etcd 服务器,其 data-dir 为 /var/lib/etcd/。我们要以 /var/lib/etcd 中的数据为基础, ...

Kubernetes高可用集群的部署方案

写在前面 这篇文章将介绍如何搭建一个高可用的kubernetes集群,主要参考的文档是:http://kubernetes.io/docs/admin/high-availability/。高可用性是一种需求,有多种选择可以实现这个需求,这里我们采用了最简单的方式搭建了这个集群,即在单个master节点的集群的基础上,部署一个高可用的Etcd集群、创建多个master Pod,并建立了一个对应的Service以实现多个master的负载均衡,最后将所有的Work Node全部注册到Service暴露的端口上。下面是集群的架构部署图: 注:这种高可用部署方案不可行,存在单点问题,查看另一篇文章的解决方案: Kubernetes HA集群搭建详细指南 ...

Etcd集群搭建过程

Etcd集群简介 随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题,etcd为解决这类问题带来了福音。 我们此次在三个主机上搭建了一个包含三个Etcd节点的集群,实现了集群的动态扩展和收缩,并测试和验证了Etcd集群键——值存储的一致性和高可用性。本文主要参考了:https://github.com/coreos/etcd/blob/release-2.3/ ...

[译]Kubernetes之Service

在Kubernetes中Pod是终将消失的,从创建到销毁的过程中,它们是无法自动重启的。而ReplicationController可以用来动态的创建和销毁Pod(比如说在进行滚动升级的时候,可以进行扩展和收缩)。每一个Pod都得到一个属于自己的IP,但这些IP不能一直有效存在,因为这些IP随着Pod的销毁而变得没有了意义。那么这就导致了一个问题,如果一些Pods为集群内部的其他Pods(我们称它们为前端)提供服务,那么这些前端怎么发现、追踪这些后端集合中的服务呢?Service就是做这个事情的。 Service是一个抽象概念,它定义了一些逻辑上的Pods集合,并且定义了访问这些Pods集合的策略,也被称作为micro-service。Service通常通过Label标签选择器来对应相应的Pods集合(也有一些没有标签选择器的,请看下文介绍)。 举个例子,考虑一个运行的镜像,它在集群中有三个副本, ...

浅谈HTTPS认证

在学习kubernetes的过程中,关于监控部署这一部分中涉及到了HTTPS方面的知识。以前曾经在Web安全实践这门课上了解过这方面的知识,如今需要再详细的梳理一下HTTPS的认证过程。 HTTP VS HTTPS 因特网早期的很多东西在设计方面都没有考虑安全方面的因素,HTTP协议就是一个鲜明的例子。HTTP采用的明文传输的,如果我们使用wireshark抓包工具,可以很轻易的嗅探一些信息。 HTTPS在HTTP的基础上增加了安全方面的考虑,主要分为2个过程。 使用RSA加密算法来进行身份认证以及协商加密算法和秘钥 使用协商后的加密算法进行数据传输 HTTPS的身份认证 这里的身份认证分为2类,大多数情况下都是客户端需要验证服务端的身份,在政府以及银行一些领域,服务端也需要验证客户端的身份,这身份认证过程中使用的是RSA加密算法。 RSA加密算法 RSA加密算法是一种非对称加密算法,加密和解密的钥匙是不同的,所以被称为非对称加密算法。 ...

Dockerfile简介

Dockerfile类似于Linux中的Makefile,Docker用它来快速便捷的创建一个镜像。本文介绍一下Dockerfile的编写规则,以及一些常见的Dockerfile样例。 Dockerfile的基本结构 Dockerfile指令是不区分大小写的,为了便于区分建议使用大写,它使用'#'作为注释。Dockerfile由一条条指令构成的,一般来说它由基础镜像信息、维护者信息、镜像操作指令和容器启动指令(可选)构成的。例如: # FROM说明此镜像是来源于centos这个基础镜像的 FROM centos # MAINTAINER指明了这个镜像的维护者的信息 MAINTAINER liuchang liuchang31@baidu.com # RUN代表要在该基础镜像centos上添加一些操作 ...