AICon上海「Agent与多模态解决方案专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

手把手教你安装第一个 LAIN 应用(上)

  • 2020-02-10
  • 本文字数:2943 字

    阅读完需:约 10 分钟

手把手教你安装第一个LAIN应用(上)

一、安装 LAIN 集群

本节包含三种场景下安装 LAIN 集群


  • 本地启动虚拟机安装 LAIN 集群,可供本地测试开发

  • 物理服务器/虚拟机安装 LAIN 集群

  • 云服务器安装 LAIN 集群


三者都需要从 GitHub 获取已经发布的 LAIN 版本源代码: https://github.com/laincloud/lain/releases


下载源码后在目标机器上解压即可。


tar xf lain-VERSION.tar.gz
复制代码

1、本地安装 LAIN 集群

1)环境依赖


  • Linux / MacOS

  • 能够连接到互联网

  • VirtualBox 5.1.22 r115126 (Qt5.6.2)

  • Vagrant 1.9.4

  • 最少 2G 剩余内存(如果需要拉起多个节点,最少 3G)


2)初始化


启动并初始化第一个节点


cd lain-VERSIONvagrant up --provision
复制代码


启动耗时取决于 vagrant box 下载时间, 启动完成后 vagrant 会自动 执行 bootstrap 进行初始化, 初始化需要至少 20 分钟,取决于网络速度。 初始化过程为集群默认配置 vip=192.168.77.201


如果出现以下错误:


Vagrant was unable to mount VirtualBox shared folders. This is usuallybecause the filesystem "vboxsf" is not available. This filesystem ismade available via the VirtualBox Guest Additions and kernel module.Please verify that these guest additions are properly installed in theguest. This is not a bug in Vagrant and is usually caused by a faultyVagrant box. For context, the command attempted was:
mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
The error output from the command was:
/sbin/mount.vboxsf: mounting failed with the error: No such device
复制代码


这个错误是因为宿主机的 Virtual Box 的 Guest Additions 与 laincloud/centos-lain box 已安装的 Guest Additions 版本不一致引起的,导致无法创建 /vagrant 这个同步 目录。请修改工程根目录下的 Vagrantfile,禁止宿主机强行安装新版本的 Guest Additions, 即添加如下配置:


config.vbguest.auto_update = false
复制代码


3)添加更多节点


vagrant up node2
# 待 node2 启动后[vagrant@node1 ~]$ cd /vagrant[vagrant@node1 ~]$ sudo lainctl node add -p playbooks node2:192.168.77.22# root 密码为 vagrant
复制代码


4)同理可以如此添加 node3

2、物理服务器/虚拟机安装 LAIN 集群

1)环境依赖


  • CentOS 7.2

  • NTP 服务保证节点间时间一致

  • 需要能访问到可用的 yum 源(包括 epel)

  • 能够连接到互联网

  • 各节点之间能够互相 ssh

  • 各节点 hostname 不同

  • 各个节点位于同一个路由器之内


2)初始化


第一个节点


cd lain-VERSION# 选择一个同网段的未被使用的 IP 地址作为 VIPsudo ./bootstrap -r docker.io/laincloud --vip={{ vip }}
复制代码


国内用户建议通过 -m 参数使用 aliyun 的加速器下载镜像,使用方式为


sudo ./bootstrap -m https://l2ohopf9.mirror.aliyuncs.com \-r docker.io/laincloud --vip=192.168.77.201
复制代码


添加更多节点


# 需要输入 root 密码sudo lainctl node add -p playbooks {{ hostname }}:{{ ip }}
复制代码

3、云服务器安装 LAIN 集群

1)环境依赖


  • CentOS 7.2

  • NTP 服务保证节点间时间一致

  • 需要能访问到可用的 yum 源(包括 epel)

  • 能够连接到互联网

  • 各节点之间能够互相 ssh

  • 各节点 hostname 不同

  • 各个节点位于同一个 VPC (或虚拟路由器)之内


3) 初始化


第一个节点


cd lain-VERSION
# 如果 VPC 不对数据包进行来源 IP 限制(如青云)sudo ./bootstrap -r docker.io/laincloud
# 如果 VPC 限制了数据包的来源 IP(如阿里云)sudo ./bootstrap -r docker.io/laincloud --ipip
复制代码


添加更多节点


# 需要输入 root 密码sudo lainctl node add -p playbooks {{ hostname }}:{{ ip }}
复制代码

4、配置 LAIN Console 的域名解析

LAIN Console 组件是 LAIN 集群的控制台,配置域名解析后即可在浏览器访问 http://console.lain.local


echo "IP/VIP  console.lain.local" >> /etc/hosts
复制代码

5、常见问题

add-node ssh-copy-id 失败


如果出现 ssh-copy-id 失败,可能需要把 node1:/root/.ssh/lain.pub 内容放到 node2:/root/.ssh/authorized_keys里,新增一行。当然原因可能是多样的,最有可能就是 lain-02 的 /root/.ssh 目录或者目录中的文件权限不对

二、安装 LAIN 客户端

开发 LAIN 应用时,需要安装 LAIN 客户端。LAIN 客户端依赖于: - docker - python


只要支持 docker 和 python 的系统,就可以使用 LAIN 客户端,比如 Linux 和 macOS。


以下均假设 LAIN 集群的 domain 为 lain.local,对于其他 domain,将下文中的 lain.local 替换即可。

1、安装与配置 docker

1)安装


请参考 https://docs.docker.com/engine/installation/ 安装 docker >= 1.12。


2)配置


Insecure Registries


安装好之后,请参考 https://docs.docker.com/registry/insecure/registry.lain.local 添加进 docker daemon 的 insecure-registries 选项。


例如,在 Linux 上,如下的 /etc/docker/daemon.json 表示将 registry.lain.local 加入了 insecure-registries


{  "insecure-registries" : ["registry.lain.local"]}
复制代码


macOS 上的 insecure registries 配置如下图所示:


1559274816295067665.jpeg



配置 insecure-registries 是因为 LAIN 集群的镜像仓库只提供了 HTTP 服务,没有提供 HTTPS 服务。

2、安装与配置 lain-cli

pip install lain-cli
复制代码


推荐使用 virtualenv 安装这个 python 包,即:


pip install virtualenv  # 安装 virtualenvvirtualenv lain  # lain 是虚拟环境的名字,也可以取其他名字source lain/bin/activate  # 激活 lain 虚拟环境pip install lain-clideactivate  # 退出 lain 虚拟环境
复制代码


以后需要使用 lain-cli 的时候,用 source ${lain-virtualenv-path}/bin/activate 激活 lain 虚拟环境; 不使用 lain-cli 的时候,用 deactivate 退出 lain 虚拟环境


安装好之后,需要配置 lain-cli,让 lain-cli 知道 LAIN 集群的 Domain 等信息:


lain config show  # 显示当前配置lain config save-global private_docker_registry registry.lain.local # 配置 docker 私有仓库lain config save local domain lain.local  # 保存 lain.local 集群,并取名为 local
复制代码


假如 LAIN 集群开启了 sso 验证(默认未开启),请配置 sso:


lain config save local sso_url https://sso.lain.local
复制代码

3、配置 LAIN 组件的域名解析

如果 LAIN 集群不能在公网上解析(比如本地启动的集群),请配置 /etc/hosts。


如果启动集群时,使用了 vip 模式,即使用了 /vagrant/bootstrap -r docker.io/laincloud --vip=192.168.77.201启动,请执行:


echo "192.168.77.201  registry.lain.local console.lain.local entry.lain.local lvault.lain.local ipaddr-client.lain.local ipaddr-service.lain.local ipaddr-client.ipaddr-resource.resource.lain.local" >> /etc/hosts
复制代码


192.168.77.201 是启动集群时的 vip 参数


如果启动集群时,没有使用 vip 模式,即使用了 /vagrant/bootstrap -r docker.io/laincloud 启动,请执行:


echo "192.168.77.21  registry.lain.local console.lain.local entry.lain.local lvault.lain.local ipaddr-client.lain.local ipaddr-service.lain.local ipaddr-client.ipaddr-resource.resource.lain.local" >> /etc/hosts
复制代码


192.168.77.21 是集群的主节点的 IP,即启动集群的节点的 IP。


本文转载自宜信技术学院网站。


原文链接:http://college.creditease.cn/detail/254


2020-02-10 21:04838

评论

发布
暂无评论
发现更多内容

【Docker 那些事儿】容器监控系统,来自Docker的暴击

Albert Edison

Docker 云计算 Kubernetes 云原生 7月月更

文档协同工具推荐

Baklib

Docker 搭建 MySQL 主从复制

宁在春

MySQL Docker 主从复制 7月月更

50个名额限量开放|带着OceanBase年度发布会的消息走来了!

OceanBase 数据库

STEPN链游系统开发模式详解(运动赚钱模式)

开发微hkkf5566

力扣第三题——无重复字符的最长子串

为自己带盐

力扣

Paper Time 回顾|MB2:为自治数据库建立行为模型

OceanBase 数据库

C2B模式下优惠券架构演进

转转技术团队

Java 架构 Elastic Search

Python网页解析库:用requests-html爬取网页

和牛

测试

网易游戏 Flink SQL 平台化实践

Apache Flink

大数据 flink 编程 流计算 实时计算

Baklib:分享一些关于建设企业知识管理(KM)的方法

Baklib

论文领读|面向机器翻译的多语言预训练技术哪家强?最新进展一睹为快!

澜舟孟子开源社区

人工智能 自然语言处理 机器学习 后端 机器翻译

2022年移动应用运营增长洞察白皮书:流量红利消退时代的“破局”之道

科技汇

物联网技术在物联网产业格局的分布与应用

AIRIOT

低代码 物联网 低代码,项目开发

云服务器ECS老用户专享,10余款实例新购低至3.6折

阿里云弹性计算

阿里云 云服务器 ECS

连续最大和与判断回文

未见花闻

7月月更

Seata 多语言体系建设

SOFAStack

开源项目 seata 开源软件 多编程语言 项目共建

我有 7种 实现web实时消息推送的方案,7种!

程序员小富

Java springboot websocket 消息系统

开源轻量级 IM 框架 MobileIMSDK v6.2 发布

JackJiang

网络编程 Netty 即时通讯 im开发 开源im

数据治理新动态:欧盟发布数据治理研究报告,对国内有何影响

雨果

数据治理

百度、阿里、腾讯,谁最先倒下?

雨果

数据中台 数据服务

基于 SPICE 协议的硬编推流整合方案在云游戏中的应用

字节跳动视频云技术团队

视频编解码 云游戏

深度遍历:统计最高分的节点数目 🐟

空城机

算法题 7月月更

教你使用CANN将照片一键转换成卡通风格

华为云开发者联盟

人工智能 CANN 昇腾 卡通

Ceph在手天下我有!

穿过生命散发芬芳

Ceph 7月月更

BigQuery和Snowflake谁更适合你?两大数据仓库8个角度逐一对比

雨果

数据中台 数据仓库 DaaS DaaS数据即服务 数据即服务

你的技术leader不懂这个?没有它就是没有设计的完成思考过程

田晓亮

方法论 架构设计

接口调试还能这么玩?

Liam

前后端分离 Postman API 接口开发 前后端

融云推出实时社区解决方案,垂直兴趣社交「高级玩家」上线

融云 RongCloud

社交网络 即时通讯IM

关于研发效能(41/100)

hackstoic

团队管理

手把手教你安装第一个LAIN应用(上)_安全_LAIN团队_InfoQ精选文章