CoreOS

最近一直在尝试Docker,于是注意到这个CoreOS

1.安装

安装方式比较特别,首先到这里下载镜像文件,在虚拟机里用这个镜像启动,启动后就是一个完整的系统,不过是只读的,我们要先把它安装在硬盘里。

先根据这个指南创建一个cloud-config.yaml文件,内容如下:

#cloud-config
hostname: core4

coreos:
  etcd:
    discovery: https://discovery.etcd.io/<mytoken>
    addr: 192.168.10.9:4001
    peer-addr: 192.168.10.9:7001
  fleet:
    public-ip: 192.168.10.9
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start
    - name: static.network
      content: |
        [Match]
        Name=enp0s3

        [Network]
        Address=192.168.10.9/24
        Gateway=192.168.10.1
        DNS=192.168.10.1
users: 
    - name: core
      ssh-authorized-keys:
        - ssh-rsa 

    - groups:
        - sudo
        - docker

然后执行coreos-install -d /dev/sda -c ./cloud-config.yaml,安装过程中会联网下载最新版的镜像文件,若干分钟后装好重启就能用了。

2.集群

CoreOS默认安装了etcd和fleet,组集群的方式有多种:

  • 每台机的配置文件配置相同的discovery: https://discovery.etcd.io/<mytoken>,这个token值可以到这个地址获取新的。

  • 主机上只需配置address和peer-address,其他的机器上增加一个peers指向主机的peer-address。

  • 另外还有其他的方式比较复杂,我也没有尝试。

配置好集群后,在任意一台机可以启动容器,集群会自动安排容器运行在哪里,如果那台机被关闭了会自动在另一台启动相同的容器。