二 集群手动部署
**需求**
a 本地已安装CockroachDB
b 可SSH访问每台机器,用于分发二进制文件和证书
c 端口 26257 用于集群内部通信及客户端访问连接HAProxy
8080 Admin UI

**建议**
上篇提到的有关集群拓扑、同步时钟、文件描述符限制。

**第一步,生成证书**
a CA key pair ca.crt和ca.key
b node key pair ,IP 和 机器名
c client key pair 给root用户

提示,在开始之前收集机器的内部IP外网IP ,servername 等。

1 本机安装cockroachDB,如果没有的情况。
2 创建俩个目录
$ mkdir certs
$ mkdir my-safe-directory

certs 目录: 这里将用于存放你生成的CA证书所有的node和client证书和key。并将用于上传到指定的节点中。
my-safe-directory 目录 : 用来存放生成的ca.key。ca.key在生成node,client的证书和key时需要使用。一定要保存好了不能丢!不能让别人拿到!!

3 创建CA证书

$ cockroach cert create-ca \
--certs-dir=certs \
--ca-key=my-safe-directory/ca.key

4 生成第一个节点的证书
$ cockroach cert create-node <node1 internal IP address> <node1 external IP address> <node1 hostname> <other common names for node1> localhost 127.0.0.1 <haproxy internal IP addresses> <haproxy external IP addresses> <haproxy hostnames> <other common names for haproxy instances> --certs-dir=certs --ca-key=my-safe-directory/ca.key

5 证书上传到第一个节点
# Create the certs directory:
$ ssh <username>@<node1 address> "mkdir certs"
# Upload the CA certificate and node certificate and key:
$ scp certs/ca.crt certs/node.crt certs/node.key <username>@<node1 address>:~/certs

6 如法炮制第二、三 ...个节点证书

7 生成root用户证书
$ cockroach cert create-client root --certs-dir=certs --ca-key=my-safe-directory/ca.key

**第二步,启动第一个节点**

$ cockroach start --background --certs-dir=certs --host=<node1 address>

**第三步,加入新节点**

$ cockroach start --background --certs-dir=certs --host=<node address> --join=<node1 address>:26257
加入第二个,第三个....

**第四步,测试集群**

在其中一个节点创建数据库,在其他任意个节点查看创建结果

登录
$cockroach sql --certs-dir=certs --host=<node1 address>
创建
>CREATE DATABASE securenodetest;
退出
CTRL + D, CTRL + C, or \q
查看
>SHOW DATABASES;

**第五步,设置HAproxy 负载均衡**
虽然集群中的每个节点都能作为SQL网关。但是考虑到性能和可用性问题,引入HAproxy。
提示:在使用单个负载均衡时,虽然解决了节点挂机问题但是负载均衡本身仍然存在单点故障。解决方式可采用多节点负载均衡并结合DNS或浮动IP方式

a 生成ha配置文件 haproxy.cfg
$cockroach gen haproxy --certs-dir=certs --host=<address of any node> --port=26257

b 安装ha
apt-get install haproxy

c 启动
$haproxy -f haproxy.cfg

**第六步,测试HA**

a 登录

cockroach sql \
--certs-dir=certs \
--host=<haproxy address>

b 查看

SHOW DATABASES;
>SELECT node_id FROM crdb_internal.node_build_info LIMIT 1;

Cockroachdb 二、手动部署的更多相关文章

  1. HyperLedger Fabric 1.1 手动部署单机单节点

    手动部署单机单节点 之前发布过官方的e2e部署方案,由于环境或是访问权限等各种问题,还是有相当一部分码友无法成功跑起来,故此,本章将来一次纯手动操作的集群部署. 主要需要的步骤如下: 1:环境整理 2 ...

  2. Tomcat手动部署Web项目详细步骤

    阅读须知:文章基于Tomcat8,其它版本若有差异,请自行辨别.本文为博主原创文章,转载请附原文链接. 不借助任何IDE,这里介绍在Tomcat中手动部署web项目的三种方式: 1.部署解包的weba ...

  3. 手动部署 kubernetes HA 集群

    前言 关于kubernetes HA集群部署的方式有很多种(这里的HA指的是master apiserver的高可用),比如通过keepalived vip漂移的方式.haproxy/nginx负载均 ...

  4. 基于TLS证书手动部署kubernetes集群(下)

    一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已经部署好了etcd集群.flannel网络以及每个节点的docker,接下来部署master节 ...

  5. Activiti进阶(二)——部署流程资源的三种方式

    转自:http://blog.csdn.net/zjx86320/article/details/50234707 流程资源可以是各种类型的文件,在启动流程或流程实例运行过程中会被读取.下面介绍常用的 ...

  6. 2017.2.28 activiti实战--第五章--用户与组及部署管理(二)部署流程资源

    学习资料:<Activiti实战> 第五章 用户与组及部署管理(二)部署流程资源 内容概览:讲解流程资源的读取与部署. 5.2 部署流程资源 5.2.1 流程资源 流程资源常用的有以下几种 ...

  7. 手动部署EJB于WebLogic

    转载自http://blog.sina.com.cn/s/blog_678530f60100hy6c.html 说是转载,其实是我个人几年前在新浪博客上发表的一篇文章 上一篇说道如何使用Eclipse ...

  8. 手动部署LNMP环境(CentOS 7)

    手动部署LNMP环境(CentOS 7) 一.修改 yum 源 [root@localhost ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/e ...

  9. (转)基于TLS证书手动部署kubernetes集群(下)

    转:https://www.cnblogs.com/wdliu/p/9152347.html 一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已 ...

随机推荐

  1. 关于lazyload图片延迟加载简单介绍

    LazyLoad大家再熟悉不过的一个jquery插件了,它可以延迟加载长页面中的图片. 也就是说在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它们所在的位置才会加载并显示出来,这和图片预加载 ...

  2. Oracle DSI系列 01 DSI初识BBED

    DSI是Data Server Internals的缩写,是Oracle公司内部用来培训Oracle售后工程师使用的教材. 1 bbed工具使用BBED工具介绍BBED stands for Bloc ...

  3. 服务器选型:x86 vs 小型机谁更胜一筹?

    市场上关于X86 和小型机的争论从来就没有停止过,在以往的印象当中,x86服务器在中低端形成了统治之势,而小型机则在关键性应用领域(金融.证券.政府等)享有王者地位.但是随着X86服务器的不断发展,这 ...

  4. maven+testng+reportng的pom设置

    在pom.xml 加入: <dependency> <groupId>org.testng</groupId> <artifactId>testng&l ...

  5. Java 目标

    Java 技术 其次掌握的技能树主要有三个方面:第一个是基础,比如对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了解底层的设计.比如一般面试都会问Co ...

  6. 【322】python控制键盘鼠标:pynput

    参考:python实战===python控制键盘鼠标:pynput 参考:[Python Study Notes]pynput实现对鼠标控制 参考:pynput doc 参考:pynput Packa ...

  7. proxmox 去除订阅提示

    去掉登陆时是否订阅通知修改文件   /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js 搜索关键字  “You do not have ...

  8. 如何阅读jdk及开源框架的源码?

    1.熟悉设计模式 可以边读源码 ,边熟悉设计模式,理解编程思想. jdk中对应的设计模式见:http://blog.csdn.net/gtuu0123/article/details/6114197 ...

  9. DropDownList绑定数据的几种方式

    1. 视图中添加可以直接通过单击属性"Items"后的按钮为某一DropDownList控件添加数据项.每添加一项数据就是添加了一个ListItem(列表控件中的数据项).这种方式 ...

  10. iOS7的iBeacon初步使用

    iBeacon是iOS7的新增的功能,通过BLE实现室内定位,精确到厘米级别. 测试使用两台iPhone(支持BLE),一台作为iBeacon基站广播信号,代码使用官方源码AirLocate,另外一台 ...