首页 > 系统相关 >CentOS7 安装 cri-o 运行时的 Kubernetes

CentOS7 安装 cri-o 运行时的 Kubernetes

时间:2022-11-30 15:32:59浏览次数:72  
标签:crio libcontainers Kubernetes devel CentOS7 stable cri kubic

1. 环境

系统:CentOS Linux release 7.7.1908 (Core) Kubernetes: 1.25.4 Cri-o: 1.25

2. 安装 crio

根据官方文档:

curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:1.25.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.25/CentOS_7/devel:kubic:libcontainers:stable:cri-o:1.25.repo
yum -y install cri-o

其它注意修改 /etc/crio/crio.conf 中的 pause_image,可使用 "ygqygq2/pause:3.8"

3. 安装 Kubernetes

此步略:(可使用或参考一键安装k8s脚本),脚本已解决 4 中的问题。

4. 无法运行容器

如果没有更新 runc,可能报如下类似错误:

Nov 28 18:48:36 master1 kubelet: E1128 18:48:36.921976    5567 pod_workers.go:965] "Error syncing pod, skipping" err="failed to \"StartContainer\" for \"kube-scheduler\" with CreateContainerError: \"container create failed: time=\\\"2022-11-28T18:48:36+08:00\\\" level=error msg=\\\"container_linux.go:349: starting container process caused \\\\\\\"error adding seccomp filter rule for syscall bdflush: requested action matches default action of filter\\\\\\\"\\\"\\ncontainer_linux.go:349: starting container process caused \\\"error adding seccomp filter rule for syscall bdflush: requested action matches default action of filter\\\"\\n\"" pod="kube-system/kube-scheduler-master1" podUID=ab975606d36a082ab6e36e8ea38bb29d

使用二进制文件 runc 更新下 /usr/bin/runc ,更新前注意备份,然后执行如下命令:

    mkdir -p /etc/crio/crio.conf.d
    cat >/etc/crio/crio.conf.d/cri-o-runc <<EOF
[crio.runtime.runtimes.runc]
runtime_path = ""
runtime_type = "oci"
runtime_root = "/run/runc"
EOF

重启 crio 后,再次 kubeadm init 即可正常初始化。 cri-o 调试不如 containerd,有时候报错都没有,这个 runc 是因为文档描述了安装 ubuntu 上需要更新,才尝试在 CentOS7 这样处理。

标签:crio,libcontainers,Kubernetes,devel,CentOS7,stable,cri,kubic
From: https://blog.51cto.com/ygqygq2/5899837

相关文章

  • [Typescript 4.9] 'in' operator
    Beforeversion4.9,youwillgettypeerrorforthecode:interfaceContext{packageJSON:unknown}functiontryGetPackageName(context:Context){const......
  • Kubernetes(K8S) Controller - StatefulSet、DaemonSet 介绍
    无状态和有状态无状态Deployment认为Pod都是一样的。javademo1-6fb64c4664-dj4dh、javademo1-6fb64c4664-dj54s它们的内容是一样的。没有顺序要求,先启第一个还是启......
  • [JavaScript] 自顶向下学习如何手写promise
    引子去年写了一篇有关promise的手写文章,写到一半发现自己的理解还不是很透彻,写的很烂,今年卷土重来,实现部分采用功能分解,目录跳转的形式呈现,力求最通俗易懂得剖析promise,我......
  • [Typescript] 122. Hard - Mutable Keys
    ImplementtheadvancedutiltypeMutableKeys,whichpicksallthemutable(notreadonly)keysintoaunion.Forexample:typeKeys=MutableKeys<{readonlyfo......
  • Mybatis源码分析(十四) - discriminator 鉴别器映射
    在特定的情况下使用不同的pojo进行关联,鉴别器元素就是被设计来处理这个情况的。鉴别器非常容易理解,因为它的表现很像Java语言中的switch语句discriminator标签常用的......
  • Promise手动实现和Async Await拓展(JavaScript)
    Promise手动实现咱们来看一段Promise的代码:letp1=newPromise((resolve,reject)=>{resolve('成功')reject('失败')![]()})console.log('p1',p1)le......
  • 教你用JavaScript完成轮播图
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个轮播图。图片每3秒自动轮换,也可以点击左右按键轮播图片,当图片......
  • 7种最佳JavaScript日期库
    英文|https://blog.logrocket.com/javascript-date-libraries/从理论上讲,向您的应用程序添加工作日期似乎总是一件容易的事,除非您尝试这样做。总是会遇到麻烦,无论是在尝试......
  • 你必须要知道的JavaScript数据结构与面试题解答
    英文原文|https://dev.to/educative/7-javascript-data-structures-you-must-know-4k0m原文作者|RyanThelin和AmandaFawcett译文翻译|web前端开发(web_qdkf)解决编码......
  • 如何使用函数式编程写更简洁的JavaScript代码
    英文| https://dev.to/r0r71z/javascript-write-cleaner-code-with-functional-programming-279a翻译|web前端开发(ID:web_qdkf)作为一个Web全栈开发人员,我花了很多时间......