《求教》虚拟机部署seesaw v2 集群

这篇文章 主要是希望路过的大神指点迷津,并非一篇完整的搭建(希望在大家的帮助下完成)


首先 按照github上的seesaw 的 README.md 搭建环境

当然上面描述不是很清楚,附上自己的搭建方法(参考 http://qiita.com/albatross/items/e38352911b2043531043    和  http://blog.csdn.net/shenshouer/article/details/50637291)


环境

· realserver centos7 64bit

· realserver application nginx

· seesaw node centos7 64bit

· seesaw01 10.10.11.191

· Seesaw02 10.10.11.192

· Backend01 10.10.11.181

· backend02 10.10.11.182

· VIP 10.10.11.223

· client 10.10.11.25

部署

关闭 selinux

# vi /etc/selinux/config

SELINUX=disabled

临时关闭 selinux

# setenforce 0

安装依赖

yum install -y git golang protobuf-compiler libnl3-devel

 

# mkdir go

# export GOPATH=/root/go

export GOROOT=/usr/local/go        // 红色部分忽略,这个是我装Ubuntu系统时,apt-get 的 go版本太低,手动安装了 go1.6.3 用的
export GOBIN=/usr/local/go/bin
export PATH=$PATH:$GOBIN

# go get -u golang.org/x/crypto/ssh

# go get -u github.com/dlintw/goconf

# go get -u github.com/golang/glog

# go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

# go get -u github.com/miekg/dns

在用go 装上面几个依赖时,如果总是失败,可以到对应目录手动git clone 对应项目,然后再执行go get


seesaw v2

# export PATH=$PATH:${GOPATH}/bin

# go get -u github.com/google/seesaw

执行 go get -u github.com/google/seesaw
可能会有错误提示  package github.com/google/seesaw: no buildable Go source files in /root/go/src/github.com/google/seesaw
进入 root/go/src/github.com/google 下  看是否已经下载好 seesaw  如果有忽略

# cd /root/go/src/github.com/google/seesaw/

# make test

# make install

将源码中的etc目录复制到/root/go/bin目录下,

# cp -r etc /root/go/bin/

编写/root/go/bin/install.sh:

SEESAW_BIN="/usr/local/seesaw"
SEESAW_ETC="/etc/seesaw"
SEESAW_LOG="/var/log/seesaw"

INIT=`ps -p 1 -o comm=`

install -d "${SEESAW_BIN}" "${SEESAW_ETC}" "${SEESAW_LOG}"

install "${GOPATH}/bin/seesaw_cli" /usr/bin/seesaw

for component in {ecu,engine,ha,healthcheck,ncc,watchdog}; do
  install "${GOPATH}/bin/seesaw_${component}" "${SEESAW_BIN}"
done

if [ $INIT = "init" ]; then
  install "etc/init/seesaw_watchdog.conf" "/etc/init"
elif [ $INIT = "systemd" ]; then
  install "etc/systemd/system/seesaw_watchdog.service" "/etc/systemd/system"
  systemctl --system daemon-reload
fi
install "etc/seesaw/watchdog.cfg" "${SEESAW_ETC}"

# Enable CAP_NET_RAW for seesaw binaries that require raw sockets.
/sbin/setcap cap_net_raw+ep "${SEESAW_BIN}/seesaw_ha"
/sbin/setcap cap_net_raw+ep "${SEESAW_BIN}/seesaw_healthcheck"

# chmod +x install.sh

# ./install

执行成功以后 

# systemctl status seesaw_watchdog  即可看见有这个服务

# systemctl enable seesaw_watchdog

将seesaw源码中etc/seesaw 下的cluster.pb.example  seesaw.cfg.example文件复制到/etc/seesaw下,改名为cluster.pb  seesaw.cfg

# cp cluster.pb.example  seesaw.cfg.example /etc/seesaw

# mv cluster.pb.example  cluster.pb

# mv seesaw.cfg.example  seesaw.cfg

修改两个配置文件如下:

/etc/seesaw/seesaw.cfg

[cluster]

anycast_enabled = false

name = test

node_ipv4 = 10.10.11.191

peer_ipv4 = 10.10.11.192

vip_ipv4 = 10.10.11.190

[config_server]     这里我不知道怎么使用,后面也会有错误,没有解决

primary = seesaw01

[interface]

node = eth0

lb = eth1

 

/etc/hosts

10.10.11.191       seesaw01

 

/etc/seesaw/cluster.pb

seesaw_vip: <

  fqdn: "seesaw-vip.localdomain."

  ipv4: "10.10.11.190/24"

  status: RODUCTION

>

node: <

  fqdn: "seesaw01."

  ipv4: "10.10.11.191/24"

  status: RODUCTION

>

node: <

  fqdn: "seeaw02."

  ipv4: "10.10.11.192/24"

  status: RODUCTION

>

vserver: <

  name: "test-vserver"

  entry_address: <

    fqdn: "lb-test.localdomain."

    ipv4: "10.10.11.223/24"

    status: RODUCTION

  >

  rp: "admin@localdomain"

  vserver_entry: <

    protocol: TCP

    port: 80

    scheduler: RR

    healthcheck: <

      type: HTTP

      port: 80

      mode: DSR

      proxy: false

      tls_verify: false

    >

  >

  backend: <

    host: <

      fqdn: "backend01.localdomain."

      ipv4: "10.10.11.181/24"

      status: RODUCTION

    >

    weight: 1

  >

  backend: <

    host: <

      fqdn: "backend02.localdomain."

      ipv4: "10.10.11.182/24"

      status: RODUCTION

    >

    weight: 1

  >

>

这样一个节点就算配置完成了,可以启动并成为master提供服务

# systemctl enable seesaw_watchdog

另一个节点的搭建和配置方法一样,将第一个节点上的两个配置文件拷贝过去,修改 seesaw.cfg  文件

node_ipv4 = 10.10.11.192

peer_ipv4 = 10.10.11.191

即可启动

当然启动时会有一些错误,参考  https://github.com/google/seesaw/blob/master/doc/getting_started.md

加载模块

echo ip_vs > /etc/modules-load.d/ipvs.conf

echo nf_conntrack_ipv4 > /etc/modules-load.d/nf_conntrack.conf

systemctl restart systemd-modules-load.service

ip link add ip+net type dummy

如果你的网卡 不是 eth0 和 eth1  参考 http://qiita.com/albatross/items/e38352911b2043531043   修改一点源码重新编译安装即可

如果你是用Openstack 虚拟机   网络问题参考 http://blog.csdn.net/lwei_998/article/details/50450182

现在集群能够正常启动,但依然有错误,提示无法找到 ca.crt  和 seesaw.crt  

我猜测是缺少HTTPS 证书认证  ,于是自己在对应目录  生成了这两个文件

# openssl genrsa -out ca.key 2048

# openssl req -x509 -new -nodes -key ca.key -subj "/CN=seesaw01" -days 5000 -out ca.crt

# openssl genrsa -out seesaw.key 2048

# more /etc/hostname

seesaw01

# openssl req -new -key seesaw.key -subj "/CN=seesaw01" -out seesaw.csr

# openssl x509 -req -in seesaw.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out seesaw.crt -days 5000

当然这个问题解决了(不知道是不是这样解决),两个节点依然有错误信息出来

master   报错无法获取服务器上的配置  ,服务拒绝(就是上面的  config_server 没有理解到位),我理解这个是为了动态修改配置文件,然后动态修改用的,也只有占时跳过了

backup  这个报错是无法获取 peer 上面的配置服务,看了下源码  这个报错是 因为没有实现这个功能吧  显示  #TODO

两台backends 的配置我这里就不描述了,和LVS一样,网上很多资料(一个脚本搞定)

除了上面那个错误  ,基本的seesaw 集群就算搭建完成了,下面是测试,也是我没有解决的问题


1. 启动两个节点,环境正常,一个master  一个backup,  正常提供负载服务

2. 关闭master  以前backup成为master   继续提供服务

3 再将以前的master启动,它成为backup 继续提供服务

现在的问题是   多次关闭当前master,让两台主被相互切换当前充当的角色,就会发现 当关闭的master再次启动时,它虽然成为了backup,但是外面来的请求实际上发送到了它上面,但它又不是master,就导致了请求失败

没明白 它明明是backup  而且网卡也是关闭的,路由也没有,为什么外部请求会发给它了,master上面有VIP,路由也有,反而收不到请求


还有个现象:虽然以前master挂掉了,现在由新的master提供服务,但在我关闭以前master机器时,负载服务会卡一段时间无法连通,感觉现在才开始转移服务,是不是以前那个master被修改了什么,导致它一直存在这个集群中,或者是当前的master记录了以前master的一些信息,导致以前master启动时,数据默认往以前master走


如果有大神能看到这里,我希望您能帮我解决下,或者你们有遇见相同的问题,大家一起讨论或者把你们的解决方法告诉我,也可能是我某些配置或者安装不对,都希望指点,谢谢











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
让学生快速地将任何网站上的作品带入跷跷板,以增加创意思考和反思的层次。 **如果您在教室中使用跷跷板,则此扩展适用于您!如果您没有跷跷板帐户,请访问app.seesaw.me免费开始使用。然后,除了app.seesaw.me之外,还使用此扩展名,使您的学生能够快速捕获他们的屏幕并在Seesaw中进行注释。**只需两次单击,即可将反射的力量带给您的学生。跷跷板Chrome扩展程序为学生提供了一种快速的方法,可以将来自任何网站的工作带入跷跷板,以进行更多的创造性思维和反思。学生使用Seesaw Chrome扩展程序从其浏览器窗口捕获工作并将其直接拖放到Seesaw的创意画布中以进行进一步的注释和反射。跷跷板是一个结合了3个主要内容的平台:学生档案袋,教师活动库和家庭交流。跷跷板的最新版本具有功能强大的新创意工具,这些工具针对使用Chromebook的学生进行了优化。创意工具是跷跷板体验的核心。在最新版本的跷跷板中,我们引入了新功能,这些新功能为所有年级和学科领域的学生创造了更多思考和思考的机会。跷跷板还可以与完整的Google套件完美配合!学生可以将自己的Google云端硬盘中的作品添加到Seesaw中,然后使用Seesaw的创意工具来捕捉他们的想法,从而使教师可以更好地了解学生的优势和成长领域。要了解有关跷跷板,Google和Chromebook如何协同工作的更多信息,请访问https://web.seesaw.me/chromebook-features 支持语言:English (United States)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值