Change CoreOS to Fedora CoreOS(FCOS)

Signed-off-by: Kang HuaiShuai <khs1994@khs1994.com>
This commit is contained in:
Kang HuaiShuai 2020-02-01 10:24:29 +08:00
parent 2f46c5180c
commit 5577c9caa6
No known key found for this signature in database
GPG Key ID: 0A380828B1C243A7
8 changed files with 71 additions and 41 deletions

View File

@ -349,7 +349,7 @@ module.exports = {
children: [ children: [
'coreos/', 'coreos/',
'coreos/intro', 'coreos/intro',
'coreos/intro_tools', 'coreos/install',
], ],
}, },
{ {

View File

@ -2,7 +2,7 @@
[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS)
**v1.1.0** **v1.2.0**
| 语言 | 构建状态 | - | | 语言 | 构建状态 | - |
| :------------- | :------------- | :--- | | :------------- | :------------- | :--- |

View File

@ -114,9 +114,9 @@
* [安装](etcd/install.md) * [安装](etcd/install.md)
* [集群](etcd/cluster.md) * [集群](etcd/cluster.md)
* [使用 etcdctl](etcd/etcdctl.md) * [使用 etcdctl](etcd/etcdctl.md)
* [CoreOS 项目](coreos/README.md) * [Fedora CoreOS](coreos/README.md)
* [简介](coreos/intro.md) * [简介](coreos/intro.md)
* [工具](coreos/intro_tools.md) * [安装](coreos/install.md)
* [Kubernetes - 开源容器编排引擎](kubernetes/README.md) * [Kubernetes - 开源容器编排引擎](kubernetes/README.md)
* [简介](kubernetes/intro.md) * [简介](kubernetes/intro.md)
* [基本概念](kubernetes/concepts.md) * [基本概念](kubernetes/concepts.md)
@ -148,7 +148,7 @@
* [VS Code](IDE/vsCode.md) * [VS Code](IDE/vsCode.md)
* [Docker 开源项目](opensource/README.md) * [Docker 开源项目](opensource/README.md)
* [LinuxKit](opensource/linuxkit.md) * [LinuxKit](opensource/linuxkit.md)
* [podman -- 下一代 Linux 容器工具](podman/README.md) * [podman - 下一代 Linux 容器工具](podman/README.md)
* [附录](appendix/README.md) * [附录](appendix/README.md)
* [附录一常见问题总结](appendix/faq/README.md) * [附录一常见问题总结](appendix/faq/README.md)
* [附录二热门镜像介绍](appendix/repo/README.md) * [附录二热门镜像介绍](appendix/repo/README.md)
@ -162,8 +162,8 @@
* [MongoDB](appendix/repo/mongodb.md) * [MongoDB](appendix/repo/mongodb.md)
* [Redis](appendix/repo/redis.md) * [Redis](appendix/repo/redis.md)
* [附录三Docker 命令查询](appendix/command/README.md) * [附录三Docker 命令查询](appendix/command/README.md)
* [客户端命令 -- docker](appendix/command/docker.md) * [客户端命令 - docker](appendix/command/docker.md)
* [服务端命令 -- dockerd](appendix/command/dockerd.md) * [服务端命令 - dockerd](appendix/command/dockerd.md)
* [附录四Dockerfile 最佳实践](appendix/best_practices.md) * [附录四Dockerfile 最佳实践](appendix/best_practices.md)
* [附录五如何调试 Docker](appendix/debug.md) * [附录五如何调试 Docker](appendix/debug.md)
* [附录六资源链接](appendix/resources.md) * [附录六资源链接](appendix/resources.md)

View File

@ -2,4 +2,4 @@
Docker 目前已经得到了众多公有云平台的支持并成为除虚拟机之外的核心云业务 Docker 目前已经得到了众多公有云平台的支持并成为除虚拟机之外的核心云业务
除了 AWSGoogleAzure 国内的各大公有云厂商基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务有的还推出了 [容器实例服务](https://cloud.tencent.com/act/cps/redirect?redirect=10230&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上快捷、灵活的部署 Docker 容器 除了 AWSGoogleAzure 国内的各大公有云厂商基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务有的还推出了其他服务例如 [容器实例服务](https://cloud.tencent.com/act/cps/redirect?redirect=10230&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上快捷、灵活的部署 Docker 容器。[容器镜像服务](https://cloud.tencent.com/act/cps/redirect?redirect=11588&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上享有安全高效的镜像托管、分发等服务

View File

@ -1,6 +1,6 @@
# CoreOS # Fedora CoreOS
`CoreOS` 的设计是为你提供能够像谷歌一样的大型互联网公司一样的基础设施管理能力来动态扩展和管理的计算能力 `CoreOS` 是一个专门为安全和大规模运行容器化工作负载而构建的新 Fedora 版本它是 Fedora Atomic Host CoreOS Container Linux 的后续项目
`CoreOS` 的安装文件和运行依赖非常小它提供了精简的 Linux 系统它使用 Linux 容器在更高的抽象层来管理你的服务而不是通过常规的包管理工具 `yum` `apt` 来安装包 `CoreOS` 的安装文件和运行依赖非常小它提供了精简的 Linux 系统它使用 Linux 容器在更高的抽象层来管理你的服务而不是通过常规的包管理工具 `yum` `apt` 来安装包

46
coreos/install.md Normal file
View File

@ -0,0 +1,46 @@
# 安装 Fedora CoreOS
## 下载 ISO
[下载页面](https://getfedora.org/coreos/download/) `Bare Metal & Virtualized` 标签页下载 ISO。
## 编写 FCC
FCC Fedora CoreOS Configuration Fedora CoreOS 配置的简称
```yaml
# example.fcc
variant: fcos
version: 1.0.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAA...
```
`ssh-rsa AAAA...` 替换为自己的 SSH 公钥位于 `~/.ssh/id_rsa.pub`
## 转换 FCC Ignition
```bash
$ docker run -i --rm quay.io/coreos/fcct:v0.2.0 -pretty -strict < example.fcc > example.ign
```
## 启动虚拟机并安装
在虚拟机终端执行以下命令安装
```bash
$ sudo coreos-installer install /dev/sda --ignition example.ign
```
安装之后重新启动即可使用
## 使用
```bash
$ ssh core@虚拟机IP
$ docker --version
```

View File

@ -1,31 +1,28 @@
# CoreOS 介绍 # Fedora CoreOS 介绍
[CoreOS](https://coreos.com/) 对 Docker 甚至容器技术的发展都带来了巨大的推动作用。其提供了运行现代基础设施的特性,支持大规模服务部署,使得在基于最小化的现代操作系统上构建规模化的计算仓库成为了可能 [Fedora CoreOS](https://getfedora.org/coreos/) 是一个自动更新的,最小的,整体的,以容器为中心的操作系统,不仅适用于集群,而且可独立运行,并针对运行 Kubernetes 进行了优化。它旨在结合 CoreOS Container Linux 和 Fedora Atomic Host 的优点,将 Container Linux 中的 [Ignition](https://github.com/coreos/ignition) 与 [rpm-ostree](https://github.com/coreos/rpm-ostree) 和 Project Atomic 中的 SELinux 强化等技术相集成。其目标是提供最佳的容器主机,以安全,大规模地运行容器化的工作负载
# CoreOS 特性 ## FCOS 特性
## 一个最小化操作系统 ### 一个最小化操作系统
CoreOS 被设计成一个基于容器的最小化的现代操作系统它比现有的 Linux 安装平均节省 40% RAM大约 114M 并允许从 PXE iPXE 非常快速的启动 FCOS 被设计成一个基于容器的最小化的现代操作系统它比现有的 Linux 安装平均节省 40% RAM大约 114M 并允许从 PXE iPXE 非常快速的启动
## 无痛更新 ### 系统初始化
利用主动和被动双分区方案来更新 OS使用分区作为一个单元而不是一个包一个包的更新这使得每次更新变得快速可靠而且很容易回滚 Ignition 是一种配置实用程序可读取配置文件JSON 格式并根据该配置配置 FCOS 系统可配置的组件包括存储文件系统systemd 和用户
## Docker 容器 Ignition 在系统首次启动期间 initramfs 仅运行一次由于 Ignition 在启动过程中的早期运行因此它可以在用户空间开始启动之前重新对磁盘分区格式化文件系统创建用户并写入文件 systemd 启动时systemd 服务已被写入磁盘从而加快了启动时间
应用作为 Docker 容器运行在 CoreOS 容器以包的形式提供最大得灵活性并且可以在几毫秒启动 ### 自动更新
## 支持集群 FCOS 使用 rpm-ostree 系统进行事务性升级无需像 yum 升级那样升级单个软件包而是 rpm-ostree OS 升级作为一个原子单元进行新的 OS 部署在升级期间进行并在下次重新引导时生效如果升级出现问题则一次回滚和重新启动会使系统返回到先前的状态确保了系统升级对群集容量的影响降到最小
CoreOS 可以在一个机器上很好地运行但是它被设计用来搭建集群 ### 容器工具
可以通过 k8s 很容易得使应用容器部署在多台机器上并且通过服务发现把他们连接在一起 对于诸如构建复制和其他管理容器的任务FCOS 用一组兼容的容器工具代替了 **Docker CLI** 工具**podman CLI** 工具支持许多容器运行时功能例如运行启动停止列出和删除容器和镜像**skopeo CLI** 工具可以复制认证和签名镜像您可以使用 **crictl CLI** 工具来处理 CRI-O 容器引擎中的容器和镜像
## 分布式系统工具 ## 参考文档
内置诸如分布式锁和主选举等原生工具用来构建大规模分布式系统得构建模块 * [官方文档](https://docs.fedoraproject.org/en-US/fedora-coreos/)
* [openshift 官方文档](https://docs.openshift.com/container-platform/4.3/architecture/architecture-rhcos.html)
## 服务发现
很容易定位服务在集群的那里运行并当发生变化时进行通知它是复杂高动态集群必不可少的

View File

@ -1,13 +0,0 @@
# CoreOS 工具介绍
`CoreOS` 内置了 `服务发现``容器管理` 工具
## 服务发现
`CoreOS` 的第一个重要组件就是使用 `etcd` 来实现的服务发现 `CoreOS` `etcd` 默认以 `rkt` 容器方式运行
`etcd` 使用方法请查看 [etcd 章节](../etcd/)
## 容器管理
第二个组件就是 `Docker`它用来运行你的代码和应用`CoreOS` 内置 `Docker`具体使用请参考本书其他章节