开箱即用的 Docker 环境:Rancher OS 安装记录

这是一篇个人向折腾日志

最近为了搭建 K8s 集群,在 PVE 虚拟化平台基础上建立多个虚拟机实例作为 K8s 节点.

为什么是 Rancher OS

具体的介绍可以查看官网.

促使我使用 Rancher OS 有几个原因:

  • Rancher OS 仅包含运行 Docker 所需的服务
  • 使用配置文件的形式安装到硬盘,包括但不限于:网络设置、Docker 配置、SSH 配置,对于作为程序猿的我来说不用到处找去哪里配置 XXX 了 :)

从 ISO 镜像引导

Rancher OS 可以直接从 ISO 镜像引导,这种模式下会使用 rancher 账号自动登录控制台,但是所作的修改在重启后丢失.

将镜像挂载到虚拟机的光驱,默认启动一路到控制台即可.

对于不同的虚拟机环境,Rancher OS 提供了不同的预编译二进制镜像,注意区别.

安装到硬盘

Rancher OS 使用 cloud-init 来配置系统,例如你可以通过 sudo ros config set rancher.docker.registry_mirror "https://xxx" 来配置 Docker 的仓库镜像地址. 而它的文件形式是一个 yaml 文件,这个文件也可以被用来作为安装系统的配置文件.

首先需要准备一个模板:

# cloud-config
# 全部配置查看官方文档: https://rancher.com/docs/os/v1.x/en/
ssh_authorized_keys:
# - ssh-rsa AAA...ZZZ example1@rancher
# - ssh-rsa BBB...ZZZ example2@rancher
  - <SSH 公钥内容>
rancher:
# SSHD Port and IP
#  ssh:
#    port: 10022
#    listen_address: 172.22.100.100
# 设置主机名(特别是作为集群节点,主机名不能一样.
#  hostname: myhost
# 切换系统的控制台,控制台与一些持久化选项有关,具体可以翻阅文档,可用的控制台有 default, alpine, centos, debian, fedora, ubuntu
  console: ubuntu
# 设置 Docker 的仓库镜像地址,这里设置了整个系统全部 Docker 都使用镜像加速
  bootstrap_docker:
    registry_mirror: "http://f1361db2.m.daocloud.io"
  docker:
    registry_mirror: "http://f1361db2.m.daocloud.io"
  system_docker:
    registry_mirror: "http://f1361db2.m.daocloud.io"
# 配置网卡,此例子就不配置了.
  network:
#   interfaces:
#     eth0:
#       address: 172.168.1.100/24
#       gateway: 172.68.1.1
#       mtu: 1500
#       dhcp: false
# 配置 DNS
    dns:
      nameservers:
        - 223.5.5.5
        - 223.6.6.6

填写好 SSH 公钥等内容后,保存为 cloud-init.yaml 文件并上传至虚拟机实例.

然后依次执行以下命令:

  1. sudo ros config validate -i cloud-init.yaml

    这个命令只是检查语法是否正确,它并不检查配置项是否合法.
    

    使用命令设置 DNS 时可以使用sudo ros config set rancher.network.dns.nameservers "['<DNS Server>']"
    然而文件中并不能使用这种格式而是需要按照yaml 的数组格式来写,如果文件中使用"['<DNS Server>']" 这种写法此命令却并不会报错;

  2. sudo ros config merge -i cloud-init.yaml
    这个命令将配置文件的内容合并到当前系统的配置,此时才会检查到前面说的配置项不合法的问题;
  3. sudo ros install -c cloud-init.yaml -d <用于安装系统的硬盘>

扩展:

值得一提的是 sudo ros install 命令支持 URL 形式传递 cloud-init.yaml 文件,这意味着,可以写个简单的 WEB 程序,用于统一分配管理集群中节点使用的 IP 地址、统一使用堡垒机上的 SSH 公钥或是统一配置内部 DNS 等等.

例如:

sudo ros install -c http://xxx/cloud-init?type=new -d <device>

然后系统分配一个未被使用的 IP 地址并生成 cloud-init.yaml 内容用于安装.

注意

安装程序会先后询问 是否继续安装是否重启,在 是否重启 时记得将镜像文件从虚拟机的光驱中移除,然后再重启.

重启后 Rancher OS 将不再自动登录 rancher 账号,此时唯一能登录系统的办法就是使用 cloud-init.yaml 中配置的 SSH 公钥对应的密钥进行登录.

ssh -i <密钥文件> rancher@<实例地址>
									

作者:krun

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RancherOS是一个专为Docker而生的精简版Linux操作系统,旨在提供最小、最简单的方式在生产环境中运行Docker。它只包含运行Docker必需的软件,并且具有较小的二进制下载包。在RancherOS中,一切都是由Docker进行容器管理。系统会启动两个Docker实例,一个是系统Docker,负责初始化系统服务,如udev、DHCP和控制台,并将所有的系统服务作为Docker容器进行管理;另一个是用户Docker,主要负责创建容器,所有的用户容器都运行在用户Docker容器中。这种架构使得RancherOS具有快速启动、资源占用小、易于扩展和维护等优点。此外,RancherOS还可以使用容器管理平台(如Rancher)进行管理。 要安装DockerRancherOS上,您可以进行以下步骤: 1. 下载并安装RancherOS,可以使用Vagrant来快速搭建测试环境。 2. 配置远程密钥登录,以便进行远程访问和管理。 3. 通过配置文件来管理系统服务,将它们配置成Docker容器。您可以使用简单的配置文件来管理系统服务,无需复杂的初始化系统。 4. 使用Docker的命令来创建和管理容器RancherOS会启动一个用户Docker容器,您可以在其中创建和运行自己的容器。 总之,RancherOS是一个精简且易于管理的Linux发行版,专为Docker设计,并提供了一套完整的Docker运行环境。通过合理配置和使用Docker命令,您可以快速安装和管理DockerRancherOS上。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [RancherOS:一个运行Docker容器的最小Linux操作系统?](https://blog.csdn.net/weixin_42501270/article/details/116651770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [RancherOS的下载和安装](https://blog.csdn.net/Falling_Asteroid/article/details/129902590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值