在Rancheros上安装Rancher服务器

・6 分钟阅读

概述

RancherOS是一个非常轻量级的操作系统(只有大约60 MB),它运行一个"系统级"Docker守护进程作为PID 0来运行系统服务,(网络,控制台访问等),以及一个 "用户级"用于运行非系统容器的Docker守护程序(MySQL,rancher等)。

Rancher是一个容器运行的协调平台,用于管理容器,以及主机、环境等基础设施的更广泛方面,Rancher主服务器控制编排,并且向Rancher主管理的每个主机部署Rancher主代理。

在本文中我们会通过以下步骤来部署Rancher服务器:

  • cloud init script -发布cloud init文件以安装,并且运行Rancher服务器,
  • PXE script编写PXE脚本来检索云初始文件,并首次启动主机,
  • Firewall -创建防火墙组,因为安全性非常重要,
  • start it up -提供主机并安装Rancher

要求

  • 至少安装了Rancher服务器,
  • 块存储-持续存储Rancher服务器的数据、配置、用户等,
  • 1个保留IP地址-为Rancher代理提供一个用于加入Rancher环境的一致IP,

云初始化脚本

通过HTTP/HTTPS将以下脚本保存到主机可访问的位置,这样它就可以从PXE脚本引用它。

用SSH公钥替换ssh-...部件,这样你就可以在主机中使用SSH 。


#cloud-config
ssh_authorized_keys:
 - ssh-...

write_files:
 - path: /cloud-config.yml
 permissions:"0700"
 owner: root
 content: |
 #cloud-config
 ssh_authorized_keys:
 - ssh-...

 mounts:
 - ["/dev/vdb1","/mnt","ext4",""] 

 rancher:
 services:
 rancher-server:
 image: rancher/server:stable
 ports:
 - 8080:8080
 restart: always
 volumes:
 - /mnt/rancher-server-mysql:/var/lib/mysql
 - path: /opt/rancher/bin/start.sh
 permissions:"0700"
 owner: root
 content: |
 #!/bin/bash
 echo y | ros install -f -c /cloud-config.yml -d /dev/vda

请注意,这实际上是在另一个cloud-config.yml中植入cloud-config.yml。当iPXE第一次启动主机时会加载外部的一个它会将Rancher安装到主机的驱动器上,内部配置用于后续启动,实际上会启动Rancher服务器。

MySQL数据存储在块存储上,因此,关键的Rancher服务器数据和配置可以在更换VPS主机后继续存在。

可以将脚本上传到可以公开访问的任何可用位置,也可以通过主机访问。

PXE脚本

将以下命令复制为名为"Rancher Server"的PXE启动脚本,并用cloud-config.yml文件的URL替换CLOUD_CONFIG_URL (类似于,https://example.com/cloud-config.yml )。


#!ipxe

# Location of Kernel/Initrd images
set base-url https://releases.rancher.com/os/latest

kernel ${base-url}/vmlinuz rancher.state.dev=LABEL=RANCHER_STATE -- rancher.cloud_init.datasources=[url:CLOUD_CONFIG_URL]

initrd ${base-url}/initrd

boot

这将提取最新的RancherosISO,并且使用cloud-init脚本将它引导到内存中,然后,你的cloud-init脚本将继续将RancherOS安装到磁盘,第二次启动将运行Rancher服务器容器。

防火墙

当Rancher第一次可用时任何访问端点的人都会立即拥有管理权限。

为防止外人劫持你的Rancher服务器,请使用以下规则创建名为"Rancher Server "的防火墙:

  • TCP 22你的IP,所以,你可以进入主机,
  • tcp 8080 在你的IP上,所以你可以加载Rancher服务器网页,
  • tcp 8080 for any Rancher agent hosts,so they can register with Rancher server,

启动它

在与块存储相同的区域中设置1+GB主机并将它Server type 设置为rancher Server ipxe自定义启动脚本,

一旦启动,一定要将它IP转换为保留的IP这样你的Rancher代理就有了一个端点,他们可以一致地注册。

IPXE下载Rancheros ISO大约需要4分钟,第一次引导安装Rancheros至/dev/vda,第二次引导拉动Rancher/server :stable docker image,并且启动它容器。

一旦出现你就能在http://YOUR_RESERVED_IP:8080上找到它。

恭喜你刚刚在Rancheros上设置了Rancher服务器。

你可以重新启动实例甚至销毁/重新安装它,块存储将保留你的数据和配置,而你的保留IP将允许新的Rancher代理知道在哪里找到你的服务器。

下面是几个步骤:

  • Set up access control -至少,创建一个有安全密码的本地管理员用户,
  • Add hosts -在 Add Hosts -> Custom 部分,复制包含特定于你的Rancher服务器的长令牌的URL,你需要这个来在你的服务器上注册Rancher代理,
  • Explore最新的Rancher服务器文档
Zhoulongfeng profile image