云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 20.04/18.04系统上安装和使用CRI-O的方法

在Ubuntu 20.04/18.04系统上安装和使用CRI-O的方法

2020-06-08 16:29:17作者:连一续稿源:云网牛站

本文介绍在Ubuntu 20.04/18.04系统上安装和使用CRI-O Container Runtime的方法,我们将使用预构建的二进制程序包来安装CRI-O。

 

一、更新Ubuntu 20.04/18.04系统

确保您的Ubuntu 20.04/18.04系统已更新,如果您担心这可能会破坏系统,则可以跳过:

sudo apt update && sudo apt upgrade

建议重新引导系统以确保它在更新版本上运行:

sudo systemctl reboot

参考:在Debian/Ubuntu上配置自动安全更新(无人值守升级)的方法

 

二、添加CRI-O Kubic存储库

添加Kubic存储库,该存储库托管基于Debian系统的二进制软件包,如果将CRI-O与Kubernetes一起使用,请安装与您要设置的Kubernetes版本匹配的版本。

如果您的Kubernetes版本是1.17,请安装CRI-O版本1.17,如下:

CRIO_VERSION=1.17

. /etc/os-release

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' >/etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"

将存储库添加到系统后,导入GPG密钥:

wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O- | sudo apt-key add -

 

三、在Ubuntu 20.04、Ubuntu 18.04上安装CRI-O

添加存储库后,更新apt缓存并在Ubuntu 20.04/18.04上安装CRI-O:

sudo apt update

sudo apt install cri-o-${CRIO_VERSION}

使用y键接受安装提示,返回结果如下:

在Ubuntu 20.04/18.04系统上安装和使用CRI-O的方法

启动并启用Crio服务:

sudo systemctl enable crio.service

sudo systemctl start crio.service

可以使用以下命令检查服务状态:

$ systemctl status crio

返回结果如下:

在Ubuntu 20.04/18.04系统上安装和使用CRI-O的方法

 

四、在Ubuntu 20.04/18.04上使用CRI-O

可以通过cri-tools软件包安装命令行工具crioctl:

sudo apt install cri-tools

检查crictl命令是否存在:

$ crictl info

返回结果如下:

在Ubuntu 20.04/18.04系统上安装和使用CRI-O的方法

Pull一个测试image:

# crictl pull nginx

# crictl pull hello-world

# crictl pull busybox

返回结果如下:

在Ubuntu 20.04/18.04系统上安装和使用CRI-O的方法

列出可用的images:

# crictl images

返回结果如下:

在Ubuntu 20.04/18.04系统上安装和使用CRI-O的方法

创建pod沙箱配置文件:

cat >nginx.json<<EOF

{

 "metadata": {

  "name": "nginx-container",

  "attempt": 1

 },

 "image": {

  "image": "nginx"

 },

 "log_path": "nginx.log",

 "linux": {

  "security_context": {

   "namespace_options": {}

  }

 }

}

EOF

cat >net-pod.json<<EOF

{

 "metadata": {

  "name": "networking",

  "uid": "networking-pod-uid",

  "namespace": "default",

  "attempt": 1

 },

 "hostname": "networking",

 "port_mappings": [

  {

   "container_port": 80

  }

 ],

 "log_directory": "/tmp/net-pod",

 "linux": {}

}

EOF

运行pod:

sudo crictl runp net-pod.json

sudo crictl create nginx.json net-pod.json

sudo crictl ps -a

至此,可以在Ubuntu和Kubernetes上深入使用CRI-O了。

 

相关主题

介绍:Docker vs Containerd vs CRI-O的差异

精选文章
热门文章