博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
containerd与kubernetes集成部署
阅读量:5040 次
发布时间:2019-06-12

本文共 3472 字,大约阅读时间需要 11 分钟。

概念介绍

cri (Container runtime interface)
cri is a containerd plugin implementation of Kubernetes container runtime interface (CRI).cri是 kubernetes的容器运行时接口的容器插件实现。
containerd
containerd is an industry-standard container runtime with an emphasis on simplicity, robustness and portability.containerd完全支持运行容器的的CRI运行时规范。cri在containerd1.1以上的版本的原生插件。它内置于containerd并默认启用。

containerd与kubernetes集成部署containerd与kubernetes集成部署

cri-o
OCI-based implementation of Kubernetes Container Runtime Interface.kubernetes为了兼容cri和oci孵化了项目cri-o。为了架设在cri和oci之间的一座桥梁。由此cri-o既兼容cri插件实现又兼容oci的容器运行时标准。
oci (Open Container Initiative)
oci是由多家公司成立的项目,并由基金会进行管理,致力于container runtime 的标准的制定和runc的开发等工作。
runc
runc is a CLI tool for spawning and running containers according to the OCI specification.runc,是对于OCI标准的一个参考实现,是一个可以用于创建和运行容器的CLI(command-line interface)工具。

containerd与kubernetes集成部署containerd与kubernetes集成部署

概述

由于docker嵌入了太多自身内容,为了减轻容器负担。此次选用containerd作为kubernetes的容器实现方案。本文将带大家讲述如何搭建一个集成了containerd的k8s集群。

环境准备

下载containerd二进制包。我这里已经编译并打包了好了,内含containerd、runc、crictl、ctr等。

下载链接:https://github.com/cuisongliu/containerd-dist/releases/download/v1.2.4/containerd-v1.2.4.tar.gz

runc版本: 1.0.1-devcontainerd版本: v1.2.4
安装containerd

解压二进制包并生成默认文件

tar -C /usr/local/bin -xzf containerd-v1.2.4.tar.gz  chmod a+x /usr/local/bin/*  containerd config default > /etc/containerd/config.toml

生成的默认配置文件注意 [grpc] 的 address 字段默认为 /run/containerd/containerd.sock

配置文件其他参数含义参照github地址: https://github.com/containerd/containerd/blob/master/docs/man/containerd-config.toml.5.md

在 /etc/systemd/system 目录下编写文件 containerd.service内容如下

[Unit]  Description=containerd container runtime  Documentation=https://containerd.io  After=network.target    [Service]  ExecStartPre=/sbin/modprobe overlay  ExecStart=/usr/local/bin/containerd  Restart=always  RestartSec=5  Delegate=yes  KillMode=process  OOMScoreAdjust=-999  LimitNOFILE=1048576  # Having non-zero Limit*s causes performance problems due to accounting overhead  # in the kernel. We recommend using cgroups to do container-local accounting.  LimitNPROC=infinity  LimitCORE=infinity    [Install]  WantedBy=multi-user.target
启动containerd
systemctl enable containerd  systemctl restart containerd  systemctl status containerd

看containerd启动状态如果是running就没有问题。下面我们测试拉取一下hub的镜像。

测试containerd
ctr images pull docker.io/library/nginx:alpine

看到输出done,说明containerd运行一切正常。

使用crictl连接containerd,下一步我们使用crictl连接containerd。

修改crictl的配置文件,在 /etc/crictl.yaml 写入以下内容:

runtime-endpoint: unix:///run/containerd/containerd.sock  image-endpoint: unix:///run/containerd/containerd.sock  timeout: 10  debug: false

这里注意runtime-endpoint 和image-endpoint 必须与/etc/containerd/config.toml中配置保持一致。

验证一下cri插件是否可用

crictl  pull nginx:alpine  crictl  rmi  nginx:alpine  crictl  images

其中 crictl images 会列出所有的cri容器镜像。

到此我们的cri + containerd已经完成整合了。下一步我们需要修改kubeadm配置进行安装。

导入kubenetes离线镜像包

这里我们就需要导入k8s的离线镜像包了。这里需要注意一下,kubernetes是调用的cri接口,所以导入时也需要从cri插件导入镜像。

cri导入镜像(cri导入镜像):

ctr cri load  images.tar

containerd导入镜像(containerd导入镜像):

ctr images import images.tar
修改kubelet配置和kubeadm安装时配置

在 kubelet配置文件 10-kubeadm.conf 的[Service] 结点加入以下配置:

Environment="KUBELET_EXTRA_ARGS=--container-runtime=remote --runtime-request-timeout=15m --container-runtime-endpoint=unix:///run/containerd/containerd.sock"

在kubeadm配置文件 kubeadm.yaml 中加入

apiVersion: kubeadm.k8s.io/v1beta1  kind: InitConfiguration  nodeRegistration:    criSocket: /run/containerd/containerd.sock    name: containerd

到此containerd和kubernetes的集成就完成了。下面可以直接安装即可。

原文来自:

本文地址:编辑:吴向平,审核员:逄增宝

Linux命令大全:

转载于:https://www.cnblogs.com/linuxprobe-sarah/p/10879540.html

你可能感兴趣的文章
NOIP 2010题解
查看>>
javascript中的each遍历
查看>>
String中各方法多数情况下返回新的String对象
查看>>
浅谈tcp粘包问题
查看>>
UVA11524构造系数数组+高斯消元解异或方程组
查看>>
排序系列之——冒泡排序、插入排序、选择排序
查看>>
爬虫基础
查看>>
jquery.lazyload延迟加载图片第一屏问题
查看>>
HDU 1011 Starship Troopers (树形DP)
查看>>
手把手教你写DI_1_DI框架有什么?
查看>>
.net常见的一些面试题
查看>>
OGRE 源码编译方法
查看>>
上周热点回顾(10.20-10.26)
查看>>
C#正则表达式引发的CPU跑高问题以及解决方法
查看>>
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了...
查看>>
APScheduler调度器
查看>>
设计模式——原型模式
查看>>
【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.1.CSS框架和其他功能
查看>>
如何一个pdf文件拆分为若干个pdf文件
查看>>
web.xml中listener、 filter、servlet 加载顺序及其详解
查看>>