硬盘安装 CoreOS 三节点集群

本例在 VirtualBox 虚拟机,以 ISO 或者 PXE 或者 iPXE 模式启动 CoreOS,然后安装到硬盘。

更新记录

  • 2017/12:默认启用 Docker Daemon TLS 远程连接
  • 2017/8:CoreOS 配置工具使用新的 Ignition 代替 cloud-config,旧的安装方法已经删除,但 GitHub 仍保留该配置文件。

设置网卡模式

VirtualBox 虚拟机网络设置如下

网卡

模式

IP

网卡1

host-only (DHCP)

192.168.57.*

网卡2

桥接 (DHCP)

192.168.199.*

本例中三个节点 IP 分别为:

  • 192.168.57.110
  • 192.168.57.111
  • 192.168.57.112

VirtualBox 可以新建该网段,如果你的节点不是以上 IP 请按照 https://www.khs194.com/docker/dockerd.html 提供的方法,生成证书。

准备文件

进入 http://alpha.release.core-os.net/amd64-usr/ 点击版本号或 current ,下载以下文件:

iso 启动文件 coreos_production_iso_image.iso

镜像文件 coreos_production_image.bin.bz2

签名文件 coreos_production_image.bin.bz2.sig

克隆示例配置文件

GitHub:https://github.com/khs1994-docker/coreos

$ git clone --depth=1 https://github.com/khs1994-docker/coreos

$ cd coreos

修改 .env 文件中的变量值

各项变量含义都已经注明,按实际修改即可

放入文件

coreos_production_image.bin.bz2 coreos_production_image.bin.bz2.sig 放入 current 文件夹中。

启动容器

$ docker-compose up

安装 CoreOS

启动

虚拟机内存最低设置为 2G,否则将不能使用!

新建虚拟机,添加按照文章开头设置两块网卡,选择加载 coreos_production_iso_image.iso ISO 镜像之后启动。

ISO 启动方式不支持 UEFI

# 查看 IP 以便后边登录

$ ip addr

# 需要改密码 虚拟机里输入命令不方便,本机 ssh 登录操作

$ sudo passwd core

SSH 登录并安装

本机登陆

$ ssh core@IP

$ wget http://192.168.57.1:8080/disk/ignition-1.json

# 必须以 root 用户运行,安装脚本通过 `-i` 选项加载配置文件 `ignition.json`

$ sudo coreos-install \
      -d /dev/sda \
      -C alpha \
      # -V 1590.0.0 \
      -i ignition-1.json \
      -b http://192.168.57.1:8080 \
      -v

+ echo 'Success! CoreOS Container Linux alpha 1590.0.0 is installed on /dev/sda'
Success! CoreOS Container Linux alpha 1590.0.0 is installed on /dev/sda

# 执行成功后,关闭虚拟机

$ sudo shutdown now

关闭虚拟机之后移除 ISO,在虚拟机设置 系统 里选择 启用 EFI。稍后启动,接下来在其他两个节点进行安装。

在另外两个节点安装

重复上边两步,注意每次 wget 所下载的文件是不同的,coreos-install 命令 -i 参数后边跟着 wget 所下载的文件。

$ ssh core@IP

$ wget http://192.168.57.1:8080/disk/ignition-2.json

# $ wget http://192.168.57.1:8080/disk/ignition-3.json

$ sudo coreos-install -d /dev/sda -C alpha \
      -i ignition-2.json -v -b http://192.168.57.1:8080

# $ sudo coreos-install -d /dev/sda -C alpha \
#       -i ignition-3.json -v -b http://192.168.57.1:8080

参数说明

$ coreos-install -h

Usage: /usr/bin/coreos-install [-C channel] -d /dev/device
Options:
    -d DEVICE   Install Container Linux to the given device.
    -V VERSION  Version to install (e.g. current) [default: 1590.0.0]
    -B BOARD    Container Linux board to use [default: amd64-usr]
    -C CHANNEL  Release channel to use (e.g. beta) [default: alpha]
    -o OEM      OEM type to install (e.g. ami) [default: (none)]
    -c CLOUD    Insert a cloud-init config to be executed on boot.
    -i IGNITION Insert an Ignition config to be executed on boot.
    -b BASEURL  URL to the image mirror (overrides BOARD)
    -k KEYFILE  Override default GPG key for verifying image signature
    -f IMAGE    Install unverified local image file to disk instead of fetching
    -n          Copy generated network units to the root partition.
    -v          Super verbose, for debugging.
    -h          This ;-)

This tool installs CoreOS Container Linux on a block device. If you PXE booted
Container Linux on a machine then use this tool to make a permanent install.

启动

三个节点全部安装之后,依次启动虚拟机。

SSH 登录

$ ssh core@192.168.57.110

Last login: Wed Nov 29 11:52:26 UTC 2017 from 192.168.57.1 on pts/0
Container Linux by CoreOS alpha (1590.0.0)
core@coreos1 ~ $ docker --version
Docker version 17.10.0-ce, build afdb6d4

网络配置

删除内网路由

根据实际配置网络

$ ip route show
$ sudo ip route del default

相关链接

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android干货

Android studio 下的SDK Manager只显示已安装包的情况

48090
来自专栏.NET技术

基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候,每一步都踩着坑过来的。因此写文档与需要的朋友分享。

10710
来自专栏散尽浮华

SCP和Rsync远程拷贝的几个技巧

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加...

1.6K70
来自专栏python3

gitlab 注册runner

向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。 其中,token是为了确定你这个Runner是所有工程都能够...

20010
来自专栏pangguoming

CentOS7配置Mysql热备份

②.[root@localhostsrc]#wget http://repo.mysql.com/mysql57-community-release-el7-8...

20820
来自专栏假装我会写代码

又一篇 Deployer 的使用攻略

23760
来自专栏Ryan Miao

Linux用户和组管理,添加修改用户,添加修改组,加入组,移除组

26110
来自专栏Aloys的开发之路

如何发布Maven依赖到中央仓库

平时我们都是从Maven中央仓库下载依赖,如果我们想发布我们自己写的Maven依赖到中央仓库供别人下载使用应该怎么办?这里以上传自己写的simian-maven...

39030
来自专栏搜云库

CentOs7.3 ssh 免密登录

环境 三台虚拟机(IP): 192.168.252.121 192.168.252.122 192.168.252.123 1.修改主机名 修改三台主机名,以此...

41650
来自专栏Java学习123

shell获取当前工作目录绝对路径

3.2K70

扫码关注云+社区

领取腾讯云代金券