共计 3747 个字符,预计需要花费 10 分钟才能阅读完成。
本文由 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 下载链接: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 ~ $
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)