国内云主机安装Olares

本文档介绍了云端安装Olares的场景,其中包括使用自己的公网IP/安装集群/使用自己的S3作为JuiceFS挂载源等场景。

以阿里云创建和安装为例,其他云厂商在流程上与之类似,您可以自行尝试,有问题也可以随时与我们联系。

  • 安装前的准备
  1. 硬件要求
    您需要先阅读系统要求并了解硬件要求。
  2. 创建安全组
    入方向:开启80、443、30180给所有的IPv4以及IPv6,22端口您可以基于您的固定IP进行设置。
    出方向:开启所有流量到所有地址
    阿里云:

  • 创建机器并登录
  1. 申请一台4核16G的Ubuntu 22.04/24.04,硬盘选100G(如果后续有更大的硬盘需求可以扩容),安全组选刚创建的安装组。
  2. 带宽建议选按流量计费,带宽值您可以根据需求设置。
  3. 创建密钥对并选择秘钥登录。
  4. 创建成功后您可以通过SSH工具登录到您的机器。
    安装
    单机模式
  5. 在ssh控制台,复制并执行以下shell语句。和正常安装脚本相比,其多了一个设置PUBLICLY_ACCESSIBLE为1的环境变量,代表当前机器有公网IP,要使用公网IP做域名解析。

使用云主机的公网IP

export PUBLICLY_ACCESSIBLE=1 \
  && curl -sSfL https://cn.olares.sh | bash -

或使用下列命令提前注入OlaresID参数,这样就能全自动安装,中间无确认流程

export PUBLICLY_ACCESSIBLE=1 \
  && export TERMINUS_OS_USERNAME=your_OlaresID \
  && curl -sSfL https://cn.olares.sh | bash -
  1. 等待安装完成
    注意,中间OlaresID需要等待您的输入
  2. 输入你的OlaresID
  3. 等待日志提示安装完成,在浏览器访问 http://你的公网ip:30180 进行激活,用生成的密码完成激活。
  4. 激活成功后ping你的域名,能看到它绑定的是刚刚的公网IP。
    集群模式
    前置条件
  5. 当前节点与主节点可通过IP互相连通,即两节点需位于同一局域网中且内网互通。
  6. 主节点已安装了1.11.3 / 1.12.0 以上版本的Olares,且安装时启用了JuiceFS。
  7. 当前节点与主节点的hostname不冲突。
  8. 当前节点能通过SSH访问主节点,如:主节点的root用户(或具有sudo权限的用户)已添加了当前节点的SSH公钥,或可通过密码进行SSH认证。
  9. 仅支持Linux机器加入Olares集群。
    安装方式
  10. 安装Master
  11. 与单机模式类似,但环境变量需要开启JUICEFS

使用云主机的公网IP

export PUBLICLY_ACCESSIBLE=1 \
  JUICEFS="1" \
  && curl -sSfL https://cn.olares.sh | bash -

或使用下列命令提前注入OlaresID参数,这样就能全自动安装,中间无确认流程

export PUBLICLY_ACCESSIBLE=1 \
  JUICEFS="1" \
  TERMINUS_OS_USERNAME=your_OlaresID \
  && curl -sSfL https://cn.olares.sh | bash -
  1. 安装完成后进行激活,激活后才可以添加Worker。
  2. 安装Worker
  3. 生成ssh秘钥对并复制公钥到Master

前往Worker当前用户的.ssh目录

cd .ssh
ssh-keygen -t rsa -b 4096 -C "你的邮箱"

一路回车创建公钥对成功,复制id_rsa.pub的内容。

登录Master,粘贴到.ssh/authorized_keys内

echo ‘Worker的id_rsa.pub内容’ >> .ssh/authorized_keys
2. 尝试通过内网IP登录Master

通过内网IP(从云控制台可以看到)尝试SSH到Master,需要回车确认,登录成功后会看到Welcome to的提示语。

ssh root@172.x.x.x
3. 开始安装Worker
回到Worker控制台,执行下列命令安装集群Worker。注意修改MASTER_HOST和MASTER_SSH_USER为你的真实信息。

export MASTER_HOST=172.x.x.x \
  MASTER_SSH_USER=root \
  MASTER_SSH_PRIVATE_KEY_PATH=~/.ssh/id_rsa \
  JUICEFS="1" \
  && curl -sSfL https://joincluster.joinolares.cn | sh
  1. 确认安装成功
    执行下列命令,确保K8s已经识别到了我们添加的Worker节点
    kubectl get nodes

使用自己的S3作为JuiceFS挂载源
说明:当启用JuiceFS时,默认是MinIO挂载到本地硬盘,你可以挂载到自己远程S3存储桶,目前支持s3(AWS)/oss(阿里云)/cos(腾讯云)。

  1. S3存储桶的创建和准备
  2. 去aliyun申请一个oss bucket
    1. 无特殊要求,选一个离你较近的区域即可。
    2. 创建成功后,记录存储桶的外网接入点(在概述页可见),比如:
    https://olares-s3-test.oss-cn-beijing.aliyuncs.com
  3. 创建一个策略可以访问这个bucket
    1. 通过创建一个如下图的策略,注意,桶名称换成你刚刚创建的。
    [图片]
  4. 创建一个用户,添加策略到权限
    1. 创建一个用户。
    1. 选 AccessKey 访问。
    2. 创建成功后记录AccessKey ID和AccessKey Secret值。
2. 为该用户新增授权(选择刚刚创建的策略)。
  1. 至此,我们得到了所需的几个参数,S3存储桶接入点,AccessKey ID和AccessKey Secret。
  2. 执行安装
    整体流程与安装单机和集群类似,只是多了以下4个参数,执行下列命令时记得都换成你自己的值。
STORAGE: "oss" //s3存储桶类型,s3:aws,oss:阿里云,cos:腾讯云
S3_BUCKET: "https://olares-s3-test.oss-cn-beijing.aliyuncs.com" //接入点地址
AWS_ACCESS_KEY_ID_SETUP: "" //访问存储桶的AK凭证
AWS_SECRET_ACCESS_KEY_SETUP: "" //访问存储桶的SK凭证
  1. 单机模式
export PUBLICLY_ACCESSIBLE=1 \
  JUICEFS="1" \
  STORAGE="" \
  S3_BUCKET="" \
  AWS_ACCESS_KEY_ID_SETUP="" \
  AWS_SECRET_ACCESS_KEY_SETUP="" \
  && curl -sSfL https://cn.olares.sh | bash -
  1. 集群模式
    1. 安装Master
export PUBLICLY_ACCESSIBLE=1 \
  JUICEFS="1" \
  STORAGE="" \
  S3_BUCKET="" \
  AWS_ACCESS_KEY_ID_SETUP="" \
  AWS_SECRET_ACCESS_KEY_SETUP="" \
  && curl -sSfL https://cn.olares.sh | bash -
2. 安装Worker
请先阅读普通集群模式安装的前置条件,以及Worker公钥免密SSH Master的部分。
export MASTER_HOST=172.x.x.x \
  MASTER_SSH_USER=root \
  MASTER_SSH_PRIVATE_KEY_PATH=~/.ssh/id_rsa \
  JUICEFS="1" \
  STORAGE="" \
  S3_BUCKET="" \
  AWS_ACCESS_KEY_ID_SETUP="" \
  AWS_SECRET_ACCESS_KEY_SETUP="" \
  && curl -sSfL https://joincluster.joinolares.cn | sh

常见问题

  1. 使用公网IP有什么优势?
    您可以先了解Olares网络连接的几种方式,简单来说就是不会产生与Olares流量相关费用,并且如果您云主机的带宽足够大,使用体验会更好。
  2. Olares cli安装时候会修改系统的NS值
    默认会把/etc/resolv.conf修改为下列值:
nameserver 1.1.1.1
nameserver 114.114.114.114

如果您在安装时出现域名解析的错误,请更换这两个值的顺序,即改成:

nameserver 114.114.114.114
nameserver 1.1.1.1
  1. 确保安全组设置正确,80/443/30180要对外开放,如果有内部ufw之类的内部防火墙,需要放开这几个端口。