本文由LinuxProbe.Com团队成员岳国帅整理发布,原文来自:Linux就该这么学。
导读 | CoreOS是一个基于Docker的轻量级容器化Linux发行版,为Docker而生,CoreOS作为Docker生态圈中的重要一员,日益得到各大云服务商的重视,发展风头正劲。 |
-
Linux内核
Linux运行所需存在两个ROOT分区,一个被用作启动分区,一个被用作更新分区更新分区在更新完成后,自动重新启动系统,当前机器不需要从负载集群中移除,为了保证其它应用程序不被打断,会通过Linux cgroup限制更新过程中的磁盘、网络等IO使用。
-
systemd
作为默认系统和服务管理器,其优秀特性:
支持并行化任务; 同时采用 socket 式与 D-Bus 总线式激活服务; 按需启动守护进程(daemon); 利用 Linux 的 cgroups 监视进程; 支持快照和系统恢复; 维护挂载点和自动挂载点; 各服务间基于依赖关系进行精密控制。
-
root分区被设计成只读
root分区被设计成只读,用以保证数据的一致性和更新可用
-
CPU、IO等资源隔离
自然要祭出容器(Container)来,CoreOS很明智使用Docker作为容器管理器用以构建、发布应用,从这个层面来看,一个应用其实就是一个容器。
-
etcd组件负责服务发现和配置共享
采用Raft分布式一致性协议算法,承担起,组件之间服务通信使用。很自然的,容器(Container)之间应用、服务的伸缩,就显得很简单了。其基因层面支持集群特性,当然,你也可以解读为云环境的支持。
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 对应的值上。
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下载链接://stable.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso
用ISO盘启动,会自动进入bash行,用户为core。注意此时系统只是加载到RAM而已,并未安装。
如果想转到root身份对当前配置、网络等操作,sudo -i 。
下载 制作好的cloud-config.yaml 文件 :
wget //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 ~ $
本文地址://q13zd.cn/coreos835-stable-version-install.html编辑:岳国帅,审核员:张宏宇
本文原创地址://q13zd.cn/coreos835-stable-version-install.html编辑:清蒸github,审核员:暂无