How to use this box with Vagrant:

Vagrant.configure("2") do |config|
  config.vm.box = "bytedance/centos-8.2-kde-Plasma"
  config.vm.box_version = "1.0.0"
end
vagrant init bytedance/centos-8.2-kde-Plasma \
  --box-version 1.0.0
vagrant up

This version was created about 1 month ago.

以 Centos 8.2 版本为基准,主要变更如下:

  • 将内核更新到当前最新版本 5.8.12
  • 安装配置 tightvncserver 并开机默认启动,可以用 VNC 客户端连接
  • 配置中文语言环境,并安装 ibus 配置好拼音与五笔输入法
  • 安装Linux 内核学习虚拟化软件 bochs-2.6.11 可以使用 gdb 调试
    • gdb > target remote :1234

此环境面向的用户群:

  • 内核开发学习人员
    • 内置了内核代码 /usr/src/linux-5.8.12 -可以在此编译并测试最新内核功能
    • 内置了早期 linux-0.12 版本的内核学习环境(里面也内置了系统源码)
    • 启用了早期内核 minix 文件系统, 不需要另外编译支持
  • 对 Linux 感兴趣的普通用户
    • 启用了 KDE Plasma图形界面+内置 Chrome浏览器+ VSCODE 编辑器支持+DevTools编译开发工具+默认中文环境+五笔/拼音输入法支持

镜像体积约 8G 左右, 之所以这么巨大的体积,主要原因如下:

  • 包含的内核编译模块文件约 4~5G /lib/modules
  • Linux-5.8.12 内核源码文件 1.1G /usr/src/linux-5.8.12
  • KDE Plasma 图形库+Chrome+vscode+DevTools

本环境可以通过如下的 Vagrantfile 启动

# -*- mode: ruby -*-
# # vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = '2'

boxes = [
  {
    :name => 'master',
    :eth1 => '192.168.20.151',
    :mem => '12288',
    :cpu => '4'
  # },
  # {
  #   :name => 'node1',
  #   :eth1 => '192.168.20.152',
  #   :mem => '1024',
  #   :cpu => '2'
  # },
  # {
  #   :name => 'node2',
  #   :eth1 => '192.168.20.153',
  #   :mem => '1024',
  #   :cpu => '2'
  }
]

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = 'bytedance/centos-8.2-kde-Plasma'
  config.vm.box_version = '1.0.0'
  # Turn off shared folders
  config.vm.synced_folder '.', '/vagrant', id: 'vagrant-root', disabled: true
  #config.vm.synced_folder '~/works/codelab/cka/files', '/files'

  boxes.each do |opts|
    config.vm.define opts[:name] do |config|
      config.vm.hostname = opts[:name]
      config.ssh.insert_key = true
      config.ssh.username = 'vagrant'
      config.ssh.password = 'vagrant'

      config.vm.provider 'virtualbox' do |v|
        # v.gui = true
        v.customize ['modifyvm', :id, '--memory', opts[:mem]]
        v.customize ['modifyvm', :id, '--cpus', opts[:cpu]]
      end
      # config.vm.network :public_network
      config.vm.network 'private_network', ip: opts[:eth1], auto_config: true
    end
  end
end

默认用户与密码如下:

  • root/root
  • vagrant/vagrant

启动之后,就可以使用 VNC Viewer 软件连接到图形系统,以本例的 vagrantfile 文件启动

  • 连接地址:192.168.20.151:5901.
  • VNC 访问密码:websoft

后继会基于此环境写一篇关于最新版本 Kubernetes + Cilium 的部署文章,敬请期待..

BPF 是创新性的网络解决方案

由于在学习 Kubernetes CNI 网络插件 Cilium, 进而了解基于 Linux BPF 的网络方案。 在 InfoQ 看到关于 linux kernel 的相关思考, 于是决定基于此网络方案部署最新版本的 Kubernetes 环境,基于 BPF 对内核要求比较高, 因此制作了此环境。

在此之前我还基于 Ubuntu20.04 环境更新内核至 5.8.11,并完成 xcfe4 图形环境的 box 制作,由于 xcfe4 目前对 ubuntu20.04 支持不好,会丢失 title bar,目前还没有修复,因此这个环境放弃了。但是我制作了几个容器镜像放到了 DockerHub 上面了,有兴趣可以自行下载使用(由于 docker 是共享内核的,所以具体内核取决于你机器的内核版本)。

1 provider for this version.
  • virtualbox Hosted by Vagrant Cloud (7.94 GB)