本文由LinuxProbe.Com团队成员岳国帅整理发布,原文来自:Linux就该这么学

导读 CoreOS是一个基于Docker的轻量级容器化Linux发行版,为Docker而生,CoreOS作为Docker生态圈中的重要一员,日益得到各大云服务商的重视,发展风头正劲。
CoreOS宣称最小化的定制版linux系统
  1.  Linux内核

    Linux运行所需存在两个ROOT分区,一个被用作启动分区,一个被用作更新分区更新分区在更新完成后,自动重新启动系统,当前机器不需要从负载集群中移除,为了保证其它应用程序不被打断,会通过Linux cgroup限制更新过程中的磁盘、网络等IO使用。

  2. systemd

    作为默认系统和服务管理器,其优秀特性:

    支持并行化任务;
    同时采用 socket 式与 D-Bus 总线式激活服务;
    按需启动守护进程(daemon);
    利用 Linux 的 cgroups 监视进程;
    支持快照和系统恢复;
    维护挂载点和自动挂载点;
    各服务间基于依赖关系进行精密控制。
  3. root分区被设计成只读

    root分区被设计成只读,用以保证数据的一致性和更新可用

  4. CPU、IO等资源隔离

    自然要祭出容器(Container)来,CoreOS很明智使用Docker作为容器管理器用以构建、发布应用,从这个层面来看,一个应用其实就是一个容器。

  5. etcd组件负责服务发现和配置共享

    采用Raft分布式一致性协议算法,承担起,组件之间服务通信使用。很自然的,容器(Container)之间应用、服务的伸缩,就显得很简单了。其基因层面支持集群特性,当然,你也可以解读为云环境的支持。

一:准备SSH公钥/私钥 或 密码

SSH公钥/私钥制作 :在其他linux客户机机上执行 ssh-keygen :

[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d3:b5:fe:05:81:55:4b:6c:be:08:aa:28:7c:0d:e4:9d root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| oo.|
| o.o.|
| o +. |
| . . o . o |
| o . S o o o .|
| o E o . . o |
| . + . . .|
| o o o . . |
| o . |
+-----------------+

中间需要选择的步骤,全部默认回车完成。然后在当前用户的~/.ssh/下面生成了id_rsa id_rsa.pub2个文件,将id_rsa.pub里面的加密串贴在下一步的密钥版 cloud-config.yaml文件 ssh-authorized-keys 对应的值上。

密码制作 :在其他linux客户机机上执行 :


[root@localhost ~]# openssl passwd -1 > 1234.txt
Password: [输入密码]
Verifying - Password: [再次输入密码]
[root@localhost ~]#
[root@localhost ~]# cat 1234.txt
$1$ywWEh18N$JPwtTtm54yxmEDNegE5.Z0

将1234.txt里面的加密串贴在下一步的 密码版 cloud-config.yaml文件 passwd 对应的值上。

二:准备cloud-config.yaml文件

SSH密匙版本:

 

#cloud-config

hostname: myhost

coreos:
etcd:
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
- name: static.network
content: |
[Match]
Name=eno16777736

[Network]
Address=192.168.31.122/24
Gateway=192.168.31.1
DNS=223.5.5.5
DNS=223.6.6.6
users:
- name: core
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8C++zc+hDTWOe5DV+WnEa5/Y+dWN1UDVKX3pBYGHbNCYObpJdYpnaHbe+3NQijt15ZAYqOh6fYJlTx8L08z/bJvmj2n+N0hgO3onB4JsH70bSAL41FPzel7BKFnDlvJ1s3GJahdVzBsrDrCwzM96ofUcImtwji0oWPT3bMApkKa8e2Ty5+WwBuxFKDq/MJVqBK4yJmBnylGzmEyyRnlVpQjsDGdbYjDtHU1ECU+H4oSE7o0cSBQntQeH0ckHMU9cnwnLO8IoHIYad4oY/u+UvLq+58kO85ltioaEmTPkWBIzSB6hP/ghHrQUN/Kf22ECgD5H9CaDDGKHrlwJUZDq1 root@kali

- groups:
- sudo
- docker

 

密码版本:

 

#cloud-config

hostname: myhost

coreos:
etcd:
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
- name: static.network
content: |
[Match]
Name=eno16777736

[Network]
Address=192.168.31.122/24
Gateway=192.168.31.1
DNS=223.5.5.5
DNS=223.6.6.6
users:
- name: core
passwd:$1$ywWEh18N$JPwtTtm54yxmEDNegE5.Z0
- groups:
- sudo
- docker

 

三:下载及安装

现在我们已经编写好 “cloud-config.yaml”,可以下载并安装CoreOS了。

ISO下载链接:http://stable.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso

用ISO盘启动,会自动进入bash命令行,用户为core。注意此时系统只是加载到RAM而已,并未安装。

如果想转到root身份对当前配置、网络等操作,sudo -i 。

下载 制作好的cloud-config.yaml 文件 :


wget http://192.168.220.137:8080/cloud-config.yaml

此刻准备工作已经完成了,如果想要安装到sda这块硬盘上。


[core@server ~]$ sudo coreos-install -d /dev/sda -C stable -c ./cloud-config.yaml

其中:
-d 指定目标设备
-C 指定版本,这里我用stable
-c 指定配置文件,cloud-config.yaml

执行安装命令后,工具会自动到网站下载CoreOS的硬盘镜像,并安装到硬盘上面。
看到这句说明安装成功了:

Success! CoreOS stable 835.13.0 is installed on /dev/sda

如无意外,安装完了就可以重启,并可通过之前配置的SSH客户端机器登录和之前设置的密码直接登录。

[root@localhost ~]# ssh core@192.168.31.122
The authenticity of host '192.168.220.143 (192.168.220.143)' can't be established.
ED25519 key fingerprint is fb:ba:38:e3:bc:14:21:33:0b:0e:46:a3:62:f2:9a:1f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.220.143' (ED25519) to the list of known hosts.
CoreOS stable (835.13.0)
core@myhost ~ $

本文地址:https://www.linuxprobe.com/coreos835-stable-version-install.html编辑:岳国帅,审核员:张宏宇

本文原创地址:https://www.linuxprobe.com/coreos835-stable-version-install.html编辑:清蒸github,审核员:暂无