当前位置: 首页 > news >正文

Fedora CoreOS 安装部署详解

《OpenShift 4.x HOL教程汇总》

Fedora CoreOS 的裸机安装方法_fedora coreos 安装-CSDN博客

OpenShift 4 - Fedora CoreOS (1) - 最简安装_fedora core 安装_dawnsky.liu的博客-CSDN博客

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地址。

3.1 下载 Fedora CoreOS ISO 文件

打开Fedofa网站的Fedora CoreOS | The Fedora Project网页,然后下载 “Bare Metal” 下的 ISO 文件。本文下载的ISO文件版本是“fedora-coreos-38.20230819.3.0-live.x86_64.iso”。

3.2 下载 FCCT (Fedora CoreOS Config Transpiler) 文件

打开Releases · coreos/butane · GitHub网页,下载“butane-aarch64-unknown-linux-gnu”文件,另存为fcct。该文件是用来将基于YAML格式的配置文件转换成基于JSON格式的Ignition文件。

安装 Fedora CoreOS

4.1 准备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"]}]}
}

4.2 安装并访问 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才可以完成安装。

  1. 在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虚拟机。

4.3 登录访问 CoreOS

  1. 在CoreOS虚拟机完成启动后可以在CoreOS虚拟机控制台里用core/password登录进CoreOS。

  1. 在外部宿主机中执行命令,确认可以使用前面创建的私钥登录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).

设置coreos可以使用username/password登录

#. 1. 修改core用户密码
$. sudo passwd core#  2. 修改sshd配置
$. sudo vi /etc/ssh/sshd_config
# 修改相应字段为如下内容:PasswordAuthentication yes# 3. 重启sshd服务    
$. sudo systemctl restart sshd.service
$. systemctl status sshd.service # 4. 接下来就可以用xshell等工具远程登录rhcos机器了
  1. CoreOS 添加用户并赋予sudo权限

使用root账号登录CoreOS

username 为你要添加的用户登录名

  1. 添加用户到root组
useradd -g rot username
  1. 添加 sudo 权限
visudo -f /etc/sudoers.d/username
  1. 打开文件输入
user1ALL=(ALL) NOPASSWD: ALL

保存退出

  1. 使用username登录系统,然后执行下面代码检查是否授权成功
username@server ~ $ sudo docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

参考

Fedora CoreOS installation on Bare Metal Server

Content Moved :: Fedora Docs

How to Create an Ignition Configuration File - Vultr.com

相关文章:

Fedora CoreOS 安装部署详解

《OpenShift 4.x HOL教程汇总》 Fedora CoreOS 的裸机安装方法_fedora coreos 安装-CSDN博客 OpenShift 4 - Fedora CoreOS (1) - 最简安装_fedora core 安装_dawnsky.liu的博客-CSDN博客 OpenShift 和 CoreOS 我们知道 Red Hat Enterprise Linux CoreOS&#xff08;简称RHCOS&…...

Web应用开发 - 实训三 B Servlet基础

Web应用开发 - 实训三 B Servlet基础 前言&#xff1a; 零、前期准备准备工具创建项目导入 jar 包配置运行设置 一、实训第一部分第一张图第二张图第三张图 二、实训第二部分第一张图第二张图 前言&#xff1a; eclipse 是不可能用的&#xff0c;并不是说它界面丑&#xff0c;…...

Debian12安装 Docker

Docker中基本概念 镜像(Image) 镜像&#xff0c;从认识上简单的来说&#xff0c;就是面向对象中的类&#xff0c;相当于一个模板。从本质上来说&#xff0c;镜像相当于一个文件系统。Docker 镜像是一个特殊的文件系统&#xff0c;除了提供容器运行时所需的程序、库、资源、配…...

Elasticsearch:为具有许多 and/or 高频术语的 top-k 查询带来加速

作者&#xff1a;Adrien Grand Disjunctive queries&#xff08;term_1 OR term_2 OR ... OR term_n&#xff09;非常常用&#xff0c;因此在提高查询评估效率方面它们受到了广泛关注。 Apache Lucene 对于评估 disjunctive queries 有两个主要优化&#xff1a;一方面用于详尽评…...

【pythonflask-1】简单实现加减乘除输入界面

app.py import flask from flask import Flask, render_template, request # 计算精确的浮点结果&#xff0c;float加法也计算不出来 from decimal import Decimalapp Flask(__name__)app.route(/) def home():return render_template(index.html)app.route(/calculate, meth…...

基于协同过滤算法的旅游推荐系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化?

遇见问题&#xff1a;使用mybaties向数据库中插入数据&#xff0c;idea显示插入成功&#xff0c;但是数据库中并没有数据变化? 可能的原因有几种&#xff1a; 没有提交事务&#xff1a;在使用 MyBatis 进行数据库操作时&#xff0c;需要手动提交事务。你可以在插入数据完成后…...

markdown学习笔记

markdown学习笔记 1.文字&#xff08;依靠HTML&#xff09; 1.1文字缩进-空格转义符 单字符空&#xff1a;&emsp; 半字符空&#xff1a;&ensp;1.2文字对齐 「居中&#xff1a;」<center> 居中 </center> or <p align"center"> 居中 …...

C++项目实战——基于多设计模式下的同步异步日志系统-⑧-日志落地类设计

文章目录 专栏导读抽象基类StdoutSink类设计FileSink类设计RollBySizeSink类设计日志落地工厂类设计日志落地类整理日志落地拓展测试RollByTimeSink类设计测试代码测试完整代码 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领…...

从零开始探索C语言(八)----指针

文章目录 1. 什么是指针&#xff1f;2. 如何使用指针&#xff1f;3. NULL 指针4. 指针的算术运算5. 指针数组6. 指向指针的指针7. 传递指针给函数8. 从函数返回指针 有人说&#xff0c;指针是C语言的灵魂&#xff0c;所以学习C语言&#xff0c;学习指针是很有必要的。 通过指针…...

SpringMVC 的三种异常处理方式详解

目录 1. 什么是异常 2. 为什么要全局异常处理 3. SpringMVC异常分类 4. 异常处理思路 5. 三种异常处理方式示例 ① 配置 SimpleMappingExceptionResolver 处理器 ② 实现 HandlerExceptionResolver 接口 ③ 使用ControllerAdviceExceptionHandler实现全局异常 6. 响应…...

莫比乌斯召回系统介绍

当前召回系统只能召回相关性高的广告&#xff0c;但不能保证该广告变现能力强。莫比乌斯做了如下两点创新&#xff1a; 在召回阶段&#xff0c;引入CPM等业务指标作为召回依据在召回阶段&#xff0c;引入CTR模型&#xff0c;从而召回更多相关性高且变现能力强的广告 参考 百度…...

使用ASM修改组件化 ARouter

工程目录图 1. apt生成的字节码文件 2. asm 生成的代码 请点击下面工程名称&#xff0c;跳转到代码的仓库页面&#xff0c;将工程 下载下来 Demo Code 里有详细的注释 代码&#xff1a;TestCompont...

第21章_瑞萨MCU零基础入门系列教程之事件链接控制器ELC

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…...

(二十八)大数据实战——Flume数据采集之kafka数据生产与消费集成案例

前言 本节内容我们主要介绍一下flume数据采集和kafka消息中间键的整合。通过flume监听nc端口的数据&#xff0c;将数据发送到kafka消息的first主题中&#xff0c;然后在通过flume消费kafka中的主题消息&#xff0c;将消费到的消息打印到控制台上。集成使用flume作为kafka的生产…...

vue3:22、vue-router的使用

import { createRouter, createWebHistory } from vue-router//history模式&#xff1a;createWebHistory //hash模式&#xff1a;createWebHashHistory//vite中的环境变量 import.meta.env.BASE_URL 就是vite.config.js中的base配置项 const router createRouter({history:…...

深入理解JVM虚拟机第五篇:一些常用的JVM虚拟机(二)

文章目录 一&#xff1a;JRockit VM的介绍 二&#xff1a;J9 VM的介绍 三&#xff1a;KVM和CDC/CLDC Hotspot 四&#xff1a;Azul VM的介绍 五&#xff1a;Liquid VM的介绍 六&#xff1a;Apache Harmoney 七&#xff1a;Microsoft JVM 八&#xff1a;Taobao JVM 九&a…...

导数公式及求导法则

目录 基本初等函数的导数公式 求导法则 有理运算法则 复合函数求导法 隐函数求导法 反函数求导法 参数方程求导法 对数求导法 基本初等函数的导数公式 基本初等函数的导数公式包括&#xff1a; C0(x^n)nx^(n-1)(a^x)a^x*lna(e^x)e^x(loga(x))1/(xlna)(lnx)1/x(sinx)cos…...

SpringMVC系列(六)之JSON数据返回以及异常处理机制

目录 前言 一. JSON概述 二. JSON数据返回 1. 导入pom依赖 2. 添加配置文件&#xff08;spring-mvc.xml&#xff09; 3. ResponseBody注解使用 4. 效果展示 5. Jackson介绍 三. 全局异常处理 1. 为什么要全局异常处理 2. 异常处理思路 3. 异常处理方式一 4. 异常处…...

民安智库(北京第三方窗口测评)开展汽车消费者焦点小组座谈会调查

民安智库近日开展了一场汽车消费者焦点小组座谈会&#xff0c;旨在深入了解目标消费者对汽车功能的需求和消费习惯&#xff0c;为汽车企业提供有针对性的解决方案。 在焦点小组座谈会中&#xff0c;民安智库公司&#xff08;第三方市容环境指数测评&#xff09;邀请了一群具有…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...