基于 Docker 环境及 Calico 网络的 Consul + Consul Template + Registrator + nginx 容器服务注册和发现

前言

由于公司的基础环境为 Docker,有项目需要做 ZooKeeper 或者 Spring Cloud 的服务注册,服务注册的 IP 及端口均为 Docker 内部提供,所以需要搭建 Calico 网路来实现宿主机访问。
另测试环境的服务均为 IP + 端口的方式访问,一旦更换宿主机则导致无法调用的情况,所以需要配置域名来访问,而测试环境发布频繁,所以需要服务能自动注册及发现来生成域名。

Calico 搭建配置

介绍

Calico 是一个纯三层的协议,为 OpenStack 虚机和 Docker 容器提供多主机间通信。Calico 不使用重叠网络比如 flannel 和 libnetwork 重叠网络驱动,

Docker 1.12 配置 direct-lvm

一、概念

Device Mapper

Docker 最先是跑在 Ubuntu 和 Debian 上的,使用 aufs 存储器。由于 Docker 越来越流行,许多公司希望在 RHEL 上使用,但是上游内核中没有包括 aufs,所以 RHEL 不能使用 aufs。最终开发者们开发了一个新的后端存储引擎 Device Mapper,基于已有的 Device Mapper 技术,并且使 Docker 支持可插拔,现在全世界有很多真实案例在生产环境使用 Device Mapper。

搭建 etcd 集群

介绍

etcd 是一个分布式一致性 K-V 存储系统,可用于服务注册发现与共享配置,具有以下优点:

  1. 简单:相比于晦涩难懂的 Paxos 算法,etcd 基于相对简单且易实现的 Raft 算法实现一致性,并通过 gRPC 提供接口调用
  2. 安全:支持 TLS 通信,并可以针对不同的用户进行对 key 的读写控制
  3. 高性能:10,000/秒的写性能

.htaccess 文件使用手册

什么是 .htaccess 文件?

概述来说,htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。
通过 htaccess 文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

——站长百科