内容
【实践】CRI-O的源码编译与安装(篇幅过程请耐心看完)
一、环境说明
Widows 11 家庭版
启用Hyper-V ,虚拟机的操作系统及版本为 Centos 7
二、【启航】从开源库https://github.com/cri-o/cri-o/下的install.md文件开始
1、安装依赖
Step1 : 下拉至 Build and install CRI-O from source->Build and Run Dependencies。
Step2:根据虚拟机的系统及版本选择对应的依赖包安装指令(如:centos 7),并执行。
Step3:安装完成后,执行命令 go version查看go 版本(用来确认CRI-O版本!!!
)
2、下载cri-o源码包
Step1:根据go版本找到适合的cri-o版本:根据开源库中的dependencies.yaml文件中的go依赖版本(切换着版本找,直至大版本一致)
Step2:下载选的版本(如:v1.28中最新的小版本)的源码包(方法很多,这里以网页直接下载为例)
3、编译cri-o
Step1:将下载好的文件上传至需要虚拟机上某个路径下,前提得有权限(如:/opt)
Step2: 进入目录执行解压缩指令 tar -zxvf cri-o-1.28.11.tar.gz (指令含义自行baidu)
Step3:解压完再cd 进入,执行make
Step4:执行sudo make install
4、安装common
Step1:根据选定的cri-o版本的dependencies.yaml 确定common版本
Step2:下载common源码包,并安装(步骤差不多,直接上图)
5、安装CNI Network
Step1:根据cri的安装手册,跳转至CNI参考手册
Step2:先行执行指令 ip a 确认IPv6是否可用
Step3:根据要求下载对应文件并放置对应路径下
(说明
:实操时我发现目录中已有文件,只是名字多了.disabled,但内容一致,我直接CP)
6、安装CNI Plugin
Step1:同样的套路确认CNI Plugin版本,下载包,解压缩,cd进入。
Step2:按照官方手册进行编译,安装
7、CRI-O 初次配置
疑惑?
感觉没啥用处,之前CRI-O install时的输出内容已包含此处输出的内容【有知道的可以帮忙解惑一下,先行谢过】
8、【胜利近在眼前】启动CRI
a)启动时日志:
b)问题分析:
- 问题:
注意:
最后一段话 度娘说在 Linux 系统中,fs.may_detach_mounts是一个内核参数,它允许或禁止在不卸载文件系统的情况下从挂载树中分离挂载点。可能是内核不支持
s1:执行sysctl -a | grep may_detach_mounts
看了一下,确实与描述一致
s2:按要求修改一下,执行命令 sudo sysctl -w fs.may_detach_mounts=1
,再确认一下
s3:再次执行启动,发现两条警告
疑惑?
关于第一条警告,配置文件中却有该key
疑问?
关于第二条警告,怀疑是window自带hyper 虚拟技术的BUG
s4:参考官方https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/manage/manage-hyper-v-scheduler-types#virtual-machine-cpu-resource-controls-and-the-root-scheduler中的说明:
s5:而实际在powershell 中执行命令的结果如下,根据官方说明查询得知调度类型为root
友情提醒
使用命令systemctl start crio
却可以起来,虽然也有上面的警告。【谁来帮我】