《OpenShift 4.x HOL教程汇总》

文章目录

  • OpenShift 和 CoreOS
  • 安装环境说明
  • 下载 Fedora CoreOS 相关介质
    • 下载 Fedora CoreOS ISO 文件
    • 下载 FCCT (Fedora CoreOS Config Transpiler) 文件
  • 安装 Fedora CoreOS
    • 准备Ignition文件
    • 安装并访问 Fedora CoreOS
    • 登录访问 CoreOS
  • 参考

OpenShift 和 CoreOS

我们知道 Red Hat Enterprise Linux CoreOS(简称RHCOS)是 OpenShift 4 使用的 Linux 操作系统(虽然在Worker节点中也可以使用红帽的 RHEL 作为底层操作系统,但是大多数用户用的都是 RHCOS)。Fedora CoreOS(简称FCOS)是 RHCOS 的社区版。FCOS/RHCOS 是 Red Hat 在收购 CoreOS 公司后结合 CoreOS Container Linux 和 Fedora Atomic Host 的优点推出的新一代容器操作系统,其目标是提供最佳的容器主机,从而能安全,大规模地运行容器化的工作负载。FCOS/RHCOS 将 Ignition 与 rpm-ostree 等技术相集成,是一个自动更新的、最小的、整体的、对运行容器和 Kubernetes 进行了优化的操作系统。因为它们更符合“不可变架构(Immutable Infrastructure)” 理念,因此成为 RedHat 推荐的 OpenShift 4 底层操作系统。

在 OpenShift 4 安装过程会自动安装 CoreOS 的商业版 Red Hat Enterprise Linux CoreOS(简称 RHCOS)。根据 OpenShift 的文档说明,RHCOS 是无法独立运行安装的,它必须和 OpenShift 4 一起运行(因此 RHCOS 没有单独的订阅)。不过好在 CoreOS 还提供了可以独立运行的社区版 Fedora CoreOS(简称 FCOS)可以完全免费使用。由于 Fedora CoreOS 可以无需 OpenShift 也可以独立安装运行,因此环境搭建过程简单高效,因此本系列使用 Fedora CoreOS 作为研究环境,而相关操作基本都可以适合商业版 RHCOS 环境。

RHCOS/FCOS 的安装/配置过程和一般的 RHEL 稍有差别。我们需要通过 Ignition 配置文件在安装 RHCOS 的时候初始化网络、存储、内核、用户等方面的配置。

安装环境说明

Fedora CoreOS支持运行在多种IaaS环境下运行。本文安装采用基于虚拟化软件模拟BareMetal环境,其他安装环境请查看Fedora CoreOS的文档。另外还要确保虚拟机可以通过DHCP获得IP地址。

下载 Fedora CoreOS 相关介质

安装 Fedora CoreOS 需要下载2个文件:CoreOS ISO和FCCT (Fedora CoreOS Config Transpiler) ,其中Fedora CoreOS ISO文件是用来启动操作系统的,而由FCCT工具生成的Ignition文件是用来提供Fedora CoreOS系统启动参数。
说明:本章节的操作是在任意一台能上网的宿主机上进行,如果是Windows宿主机需要打开其SSH服务。下文使用“192.168.1.201”作为该宿主机的IP,实际操作请j将“192.168.1.201”替换为自己环境的IP地址。

下载 Fedora CoreOS ISO 文件

打开Fedofa网站的https://getfedora.org/en/coreos/download?tab=metal_virtualized&stream=stable网页,然后下载 “Bare Metal” 下的 ISO 文件。本文下载的ISO文件版本是“fedora-coreos-32.20200907.3.0-live.x86_64.iso”。

下载 FCCT (Fedora CoreOS Config Transpiler) 文件

打开https://github.com/coreos/fcct/releases网页,下载“fcct-x86_64-unknown-linux-gnu”文件,另存为fcct。该文件是用来将基于YAML格式的配置文件转换成基于JSON格式的Ignition文件。

安装 Fedora CoreOS

准备Ignition文件

  1. 执行以下命令,然后在“Password:”的提示后面输入密码(本文使用的密码就是“password”)。命令将返回密码加密后的字符串。
$ openssl passwd -1 -salt yoursalt
Password:
$1$yoursalt$7/tmQXmlhL0pYfN/fyBZS1
  1. 执行命令生成密钥对。执行后可以在当前目录下生成公钥id_rsa.pub和私钥id_rsa
$ ssh-keygen -N '' -f ./id_rsa
Generating public/private rsa key pair.
Your identification has been saved in ./ssh-key/id_rsa.
Your public key has been saved in ./ssh-key/id_rsa.pub.
The key fingerprint is:
SHA256:YvrEIpVUwTbJAXZcB+KJEhPPQGIu4XOwWB696Z90sJE root@node1
The key's randomart image is:
+---[RSA 2048]----+
|o+Ooo=*=o..      |
|==oO.=Bo .       |
|o=o.=+oo         |
|. ooo.E          |
|   .o o+S        |
|   ..+o..        |
|  . oooo         |
|   . +o          |
|      .          |
+----[SHA256]-----+
  1. 查看id_rsa.pub公钥。
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIBxVOCdtNHBgbEVQseDdRonC/OlP5qm7MoKeuwYFjvg6UKXl8MTplQ4ErV1r994XnkErRBzlxsPdn/s7/alJ8CJ3Po39QDMlJvvy/nG3Vak/naxc6hXwL4to1oJrMhyp7YsY2EzPke+b1FyWD6NZ27mhJnCmNhw4pND6QxfZulVCnlolg9BeTSuXaIRrgLnjdSU+9ojTz6BMVo5MWY+xXRNrydlI4rx19tnd0c62SwQnvjO8i+hCXzNAkwGb8J5KDLs7jYZhjOW4IyHa95NdgWlRDcVICQSbA0makjJyIFK9KDzaTYM0MvCpSkMXo9uTFKwPiKfhBrKw9n8nBegXN root@node1
  1. 创建内容如下的config.fcc的文件。其中用户名为core,另外需要将“password_hash”和“ssh_authorized_keys”替换前2步生成的密码和公钥字符串。需要注意的是远程登录CoreOS需要使用证书,而直接登录CoreOS才可以直接使用用户名和密码。
variant: fcos
version: 1.1.0
passwd:users:- name: corepassword_hash: "$1$yoursalt$7/tmQXmlhL0pYfN/fyBZS1"ssh_authorized_keys:- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIBxVOCdtNHBgbEVQseDdRonC/OlP5qm7MoKeuwYFjvg6UKXl8MTplQ4ErV1r994XnkErRBzlxsPdn/s7/alJ8CJ3Po39QDMlJvvy/nG3Vak/naxc6hXwL4to1oJrMhyp7YsY2EzPke+b1FyWD6NZ27mhJnCmNhw4pND6QxfZulVCnlolg9BeTSuXaIRrgLnjdSU+9ojTz6BMVo5MWY+xXRNrydlI4rx19tnd0c62SwQnvjO8i+hCXzNAkwGb8J5KDLs7jYZhjOW4IyHa95NdgWlRDcVICQSbA0makjJyIFK9KDzaTYM0MvCpSkMXo9uTFKwPiKfhBrKw9n8nBegXN root@node1"
  1. 执行命令,使用fcct将config.fcc转换成config.ign。
$ fcct config.fcc -o config.ign
$ more config.ign
{"ignition": {"version": "3.1.0"},"passwd": {"users": [{"name": "core","passwordHash": "$1$yoursalt$7/tmQXmlhL0pYfN/fyBZS1","sshAuthorizedKeys": ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIBxVOCdtNHBgbEVQseDdRonC/OlP5qm7MoKeuwYFjvg6UKXl8MTplQ4ErV1r994XnkErRBzlxsPdn/s7/alJ8CJ3Po39QDMlJvvy/nG3Vak/naxc6hXwL4to1oJrMhyp7YsY2EzPke+b1FyWD6NZ27mhJnCmNhw4pND6QxfZulVCnlolg9BeTSuXaIRrgLnjdSU+9ojTz6BMVo5MWY+xXRNrydlI4rx19tnd0c62SwQnvjO8i+hCXzNAkwGb8J5KDLs7jYZhjOW4IyHa95NdgWlRDcVICQSbA0makjJyIFK9KDzaTYM0MvCpSkMXo9uTFKwPiKfhBrKw9n8nBegXN root@node1"]}]}
}

安装并访问 Fedora CoreOS

  1. 创建一个名为Fedora-CoreOS的虚拟机。使用前面下载的Fedora CoreOS ISO文件 - “fedora-coreos-32.20200907.3.0-live.x86_64.iso”- 作为启动盘,然后将系统的启动顺序设为硬盘第一优先,最后使用Bridge类型的网络。
  2. 启动虚拟机,启动完成后虚拟机的控制台会停在以下截图。注意:图上红色提示没有找到Ignition文件。另外根据截图的说明我们可以知道当原始的CoreOS ISO首次启动的时候,它是运行在内存中的。此时我们需要提供给它Ignition文件,CoreOS才可以完成安装。
  3. 在CoreOS虚拟机控制台里执行以下命令,将前面生成的config.ign文件从外部宿主机传入CoreOS虚拟机的当前目录下。
[core@bogon ~]$ scp root@192.168.1.201:/root/config.ign ./
  1. 在CoreOS虚拟机控制台里执行以下命令,根据“config.ign”文件将CoreOS安装到“/dev/sda”硬盘(可以使用“fdisk -l”命令确认有系统中“/dev/sda”)。
[core@bogon ~]$ sudo coreos-installer install /dev/sda --ignition-file config.ign
  1. 完成安装后重启CoreOS虚拟机。

登录访问 CoreOS

  1. 在CoreOS虚拟机完成启动后可以在CoreOS虚拟机控制台里用core/password登录进CoreOS。
  2. 在外部宿主机中执行命令,确认可以使用前面创建的私钥登录CoreOS。
$ ssh core@<COREOS_IP> -i id_rsa
Fedora CoreOS 32.20200907.3.0
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/c/server/coreos/Last login: Tue Oct  6 15:15:50 2020
  1. 确认在外部宿主机中已经无法直接通过用户名/密码登录CoreOS了(这是因为缺省CoreOS只能通过证书登录,后面我们将设置可以使用username/password登录)。
$ ssh core@<COREOS_IP>
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

参考

https://www.amitbondwal.com/fedora-coreos-installation-on-bare-metal/
https://docs.fedoraproject.org/en-US/fedora-coreos/fcct-config/
https://www.vultr.com/docs/ignition

OpenShift 4 - Fedora CoreOS (1) - 最简安装相关推荐

  1. OpenShift 4 - Fedora CoreOS (6) - 用rpm-ostree安装软件、升级回滚CoreOS

    <OpenShift 4.x HOL教程汇总> 文章目录 什么是 rpm-ostree 升级更新CoreOS操作系统 自动更新升级 手动升级更新 比较更新前后差别 回滚系统更新 切换当前的 ...

  2. OpenShift 4 - Fedora CoreOS (4) - 用 Ignition 定制 CoreOS 的网络/存储等配置

    <OpenShift 4.x HOL教程汇总> 文章目录 设置 FCC 配置文件 验证 CoreOS 配置 参考 Fedora CoreOS是通过Ignition定制操作系统的配置的,而I ...

  3. OpenShift 4 - Fedora CoreOS (2) - 准备 Fedora CoreOS 安装环境的三个工具

    <OpenShift 4.x HOL教程汇总> 我们在<OpenShift 4 - Fedora CoreOS (1) - 最简安装>中采用了一种FCOS的安装方式,其中使用到 ...

  4. OpenShift 4 - Fedora CoreOS (3) - 定制 CoreOS ISO

    <OpenShift 4.x HOL教程汇总> 文章目录 定制 CoreOS ISO 文件 获得 coreos_installer 文件 生成定制 CoreOS ISO 文件 安装定制 C ...

  5. OpenShift 4 - Fedora CoreOS (5) - CoreOS的常规操作

    <OpenShift 4.x HOL教程汇总> 文章目录 常规操作 查看CoreOS操作系统信息 查看网络配置 修改IP Docker 环境 podman 使用toolbox 什么是too ...

  6. linux下怎样运行oyrhon,Fedora CoreOS基础操作,包括安装并运行Fedora CoreOS

    如果不知从何处入手Fedora CoreOS,那就看看本文,内容有:Fedora CoreOS的理念.入门.创建配置.安装并运行Fedora CoreOS.zincati,rpm-ostree和自动更 ...

  7. 从Fedora CoreOS(Fedora35)到CentOS-Stream9的重构

    从Fedora CoreOS(Fedora35)到CentOS-Stream9的重构 荣涛 2022-03-16 文档修改日志 日期 修改内容 修改人 备注 2022-03-16 创建 荣涛 2022 ...

  8. Fedora CoreOS to CentOS7 问题汇总1

    ================================================================================ 这在 Fedora CoreOS 上也 ...

  9. win10 平台VS2019最简安装实现C++/C开发

    这两天一直在安装vs2015,总是卡在visual studio 2015 出现安装包丢失或损坏的现象,尽管按照网上很多方法尝试解决,但是一直不行.算了.还是使用最新版的VS 2019安装,没想到很顺 ...

最新文章

  1. 2020 年 6 月编程语言排行榜,C 稳居第一,Rust 首进 Top 20!
  2. android h5可以获取设备的imei 和iccid_Android10 下获取序列号和IMEI号的权限
  3. vim一直以来的切换命令行窗口(term)执行程序的烦恼终于由8.1版本的一个命令解决了
  4. DOS命令大全(转)
  5. python学习网址
  6. 洛谷 P1018乘积最大
  7. 服务器宕机自动dns,有哪些同时支持智能解析和宕机自动切换的DNS服务?
  8. Python机器学习——如何shuffle一个数据集(ndarray类型)
  9. python (元祖\列表\集合\字典)基础用法
  10. ubuntu vmplayer安装vmtool
  11. 猿创征文|从单机百万tpmc到分布式千万tpmc,GaussDB性能提升的3个关键技术剖析
  12. 企业微信好不好,OA软件何去何从?
  13. 清华本科生0人去阿里,交叉信息院硕士没人再深造 | 清华大学2020年毕业生就业质量报告...
  14. 2016 新学++ , 回顾过去展望未来
  15. OpenFOAM常用类
  16. php实现自定义中间logo的微信小程序码
  17. CentOS7 win7 双系统安装
  18. 冷暖自知 by 张楚
  19. 分割网络对结构光图像进行分割
  20. 【北亚数据恢复】infortrend服务器raid6硬盘离线后进行上线操作导致服务器崩溃的数据恢复

热门文章

  1. linux运维故障报告,iis7报为应用程序池“xx”提供服务的进程在启动过程中尝试读取配置时报告故障(503错误)处理方法...
  2. 广西专业技术人员职称个人版_「职称评审」机械工程专业技术人员如何写职称论文?...
  3. 3d打印英语文献_DMD 激光熔覆3D打印机型设计在仿真计算中的经验分享
  4. netbeans 添加gif图片_告别PC 用手机完成各种GIF动画编辑
  5. 设计软件哪里找?图片素材哪里找?
  6. python工厂模式 简书_[Python设计模式] 01 - 简单工厂模式
  7. 时间序列多步预测_使用LSTM深度学习模型进行温度的时间序列单步和多步预测...
  8. 常用函数的连续傅里叶变换对
  9. KVM Tracing, perf_events
  10. Linux内核 eBPF基础:perf(4)perf_event_open系统调用与用户手册详解