裸机

Deis集群可以在任何CoreOS能运行的地方开通,包括你自己的硬件。

请在阅读本文时,获取源码并参考contrib/bare-metal中的脚本。

为了让CoreOS运行在基础硬件上,你需要通过PXEiPXE启动——这将完全在内存中启动一台CoreOS机器。然后,你可以将CoreOS安装到硬盘中


重要说明

Deis需要CoreOS 472.0.0或更新版本。

检查系统需求

请在选择运行Deis的机器规格时参考“系统需求”中的资源要求。

生成SSH密钥

deisctl工具使用SSH通道与远程主机进行通讯。如果你没有SSH密钥,以下命令将生成一个名为deis的密钥对:

  1. $ ssh-keygen -q -t rsa -f ~/.ssh/deis -N '' -C deis

自定义user-data

生成新的发现URL

发现URL将节点的地址和元数据保存在一个唯一的标识下,以此协助etcd实例连接在一起。在仓库根目录下运行以下命令来生成一个带有新的发现URL的contrib/coreos/user-data文件:

  1. $ make discovery-url

user-data中包含了必要的脚本,因此不要在未运行make discovery-url前开通Deis集群。

SSH密钥

将第一步生成的SSH密钥里的公钥部分添加到user-data文件中:

  1. ssh_authorized_keys:
  2. - ssh-rsa AAAAB3... deis

更新$private_ipv4

裸机上的CoreOS无法准确的检测$private_ipv4。请使用该节点的(私有)IP地址替换在user-data文件中它出现的所有位置。

添加环境

由于CoreOS无法检测私有和公有IP地址,/etc/environment在启动时未被写入。请将其加入到user-data文件的write_files部分:

  1. - path: /etc/environment
  2. permissions: 0644
  3. content: |
  4. COREOS_PUBLIC_IPV4=<你的公有IP>
  5. COREOS_PRIVATE_IPV4=<你的私有IP>

安装CoreOS到硬盘中

假设你已经启动裸机服务器进入CoreOS,你现在可以进行硬盘安装。

为安装程序提供配置文件

将user-data保存到你的裸机里。本示例假定你将配置保存到/tmp/config文件。

开始安装

  1. coreos-install -C alpha -c /tmp/config -d /dev/sda

这将安装最新的CoreOS Alpha版本到硬盘中。要指定CoreOS版本,请在安装命令后添加-V参数,比如-V 494.0.0。

等安装完成后,重启你的服务器。一旦主机上线,你就可以通过deis的ssh密钥作为核心用户登录。

配置DNS

参考“配置DNS”获取正确设置Deis相关DNS记录的更多信息。

安装Deis平台

现在你已经完成了集群开通,请参考“安装Deis平台”开始平台安装。

已知问题

主机名是localhost

如果在安装到硬盘后后你的主机名是localhost,则请在安装前在user-data中设置hostname:

  1. hostname: your-hostname

hostname千万不要使用域名全称!

名称解析缓慢

有些DNS服务器和防火墙存在glibc并行发送IPv4和IPv6地址请求的问题。解决办法是在/etc/resolv.conf里设置single-request选项。这可在安装CoreOS到硬盘时通过user-data文件完美解决。

  1. - path: /etc/resolv.conf
  2. permissions: 0644
  3. content: |
  4. nameserver 8.8.8.8
  5. nameserver 8.8.4.4
  6. domain your.domain.name
  7. options single-request