文章目录

  • 1. 为什么用kata-container
  • 2. 什么是kata-container
  • 3. kata container组件
    • 3.1 Agent
    • 3.2 Runtime
    • 3.3 Proxy
    • 3.4 Shim

参考链接:
https://blog.csdn.net/zhonglinzhang/article/details/86489695

1. 为什么用kata-container

弥补了传统容器技术安全性的缺点,Kata Containers通过使用硬件虚拟化来达到容器隔离的目的。每一个container/pod 都是基于一个独立的kernel实例来作为一个轻量级的虚拟机。自从每一个container/pod运行与独立的虚拟机上,他们不再从宿主机内核上获取相应所有的权限。

2. 什么是kata-container

kata containers是由OpenStack基金会管理的容器项目。kata containers整合了Intel的 Clear ContainersHyper.shrunV,能够支持不同平台的硬件,并符合Open Container Initiative规范,同时还可以兼容k8s的 CRI(Container Runtime Interface)接口规范。项目包含几个配套组件,即RuntimeAgentProxyShim等。项目已于6月份release了1.0版本。
从docker架构上看,kata-container和原来的runc是平级的。大家知道docker只是管理容器生命周期的框架,真正启动容器最早用的是LXC,然后是runc,现在也可以换成kata了。所以说kata-container可以当做docker的一个插件,启动kata-container可以通过docker命令。

3. kata container组件

3.1 Agent

Kata-agent运行在guest负责管理容器。Kata-agent的执行单元是定义了一系列命名空间的沙盒。每个VM可以运行多个容器,支持k8s一个pod运行多个容器的需求。不过目前docker中,kata-runtime只能一个pod一个容器。Kata-agent通过gRPC和其他kata组件通信。Kata-agent使用libcontainer管理容器的生命周期

3.2 Runtime

kata-runtime是一个OCI兼容的容器运行时,负责处理OCI运行时规范指定的所有命令并启动kata-shim实例

配置文件是/usr/share/defaults/kata-containers/configuration.toml

# XXX: WARNING: this file is auto-generated.
# XXX:
# XXX: Source file: "cli/config/configuration.toml.in"
# XXX: Project:
# XXX:   Name: Kata Containers
# XXX:   Type: kata[hypervisor.qemu]
path = "/usr/bin/qemu-lite-system-x86_64"
kernel = "/usr/share/kata-containers/vmlinuz.container"
image = "/usr/share/kata-containers/kata-containers.img"
machine_type = "pc"# Optional space-separated list of options to pass to the guest kernel.
# For example, use `kernel_params = "vsyscall=emulate"` if you are having
# trouble running pre-2.15 glibc.
#
# WARNING: - any parameter specified here will take priority over the default
# parameter value of the same name used to start the virtual machine.
# Do not set values here unless you understand the impact of doing so as you
# may stop the virtual machine from booting.
# To see the list of default parameters, enable hypervisor debug, create a
# container and look for 'default-kernel-parameters' log entries.
kernel_params = ""# Path to the firmware.
# If you want that qemu uses the default firmware leave this option empty
firmware = ""

3.3 Proxy

默认使用virtio-serial和VM通信。VM可以运行多个容器进程。在使用virtio-serial的情况下,与每个进程相关联的I/O流需要在主机上多路复用和解复用。
Kata-proxy给多个kata-shimkata-runtime客户端提供对kata-agent提供访问,它的主要作用是在每个kata-shim和kata-agent之间路由I/O流和信号。Kata-proxy连接到kata-agent的unix域套接字上,这个套接字是kata-proxy启动时kata-runtime提供的

3.4 Shim

runtime运行在宿主机上,不能直接监控运行在虚拟机里的进程,最多只能看到QEMU进程。kata-shim监控容器进程,处理容器的所有I/O流,包括stdout、stdin和stderr,以及转发所有的要发送出去的信号。
Kata-shim还有其他功能:

通过一个UNIX域套接字连接到kata-proxy。这个套接字在kata-runtime启动kata-shim的时候,由kata-runtime传给kata-shim,同时带上了containerID和execID,两个ID用来识别shim管理的是哪个容器。
读取VM内部容器进程的输出流和错误流
使用SignalProcessRequest API转发从reaper到kata-proxy的信号
监控终端修改,并使用grpc TtyWinResize API转发到kata-proxy

kata-runtime kata-env

[Meta]Version = "1.0.18"[Runtime]Debug = falsePath = "/usr/bin/kata-runtime"[Runtime.Version]Semver = "1.3.1"Commit = "258eae0"OCI = "1.0.1"[Runtime.Config]Path = "/etc/kata-containers/configuration.toml"[Hypervisor]MachineType = "pc"Version = "QEMU emulator version 2.11.0\nCopyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers"Path = "/usr/bin/qemu-lite-system-x86_64"BlockDeviceDriver = "virtio-scsi"EntropySource = "/dev/urandom"Msize9p = 8192MemorySlots = 10Debug = falseUseVSock = false[Image]Path = "/usr/share/kata-containers/kata-containers-image_clearlinux_1.3.1_agent_c7fdd324cda.img"[Kernel]Path = "/usr/share/kata-containers/vmlinuz-4.14.67.16-4.4.container"Parameters = ""[Initrd]Path = ""[Proxy]Type = "kataProxy"Version = "kata-proxy version 1.3.1-d364b2e"Path = "/usr/libexec/kata-containers/kata-proxy"Debug = false[Shim]Type = "kataShim"Version = "kata-shim version 1.3.1-58f757d"Path = "/usr/libexec/kata-containers/kata-shim"Debug = false[Agent]Type = "kata"[Host]Kernel = "3.10.0-957.el7.x86_64"Architecture = "amd64"VMContainerCapable = trueSupportVSocks = false[Host.Distro]Name = "CentOS Linux"Version = "7"[Host.CPU]Vendor = "GenuineIntel"Model = "Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz"[Netmon]Version = "kata-netmon version 1.3.1"Path = "/usr/libexec/kata-containers/kata-netmon"Debug = falseEnable = false

Kubernetes kata-container 介绍相关推荐

  1. Kata Container — Overview

    目录 文章目录 目录 传统容器的安全问题 Kata Container 软件架构 轻量化虚拟机 QEMU Guest Kernel Guest image (rootfs)Root filesyste ...

  2. Kubernetes(K8s)Events介绍(上)

    Kubernetes Events虽不常被提起,却意义非凡.它存储在Etcd里,记录了集群运行所遇到的各种大事件.本系列文章将一步一步地揭开Kubernetes Events的神秘面纱. 师出有名 前 ...

  3. kata cantainer介绍及Ubuntu安装kata cantainer

    kata cantainer介绍 kata cantainer是什么?与docker相比有什么优势? Kata Containers是一种轻量级容器技术,旨在提供与传统虚拟化相当的隔离性和安全性,同时 ...

  4. kubernetes各组件介绍

    文章目录 一. kubernetes 是什么 1. 基础架构图 2. kubernetes 各组件介绍 2.1 master 组件 :one: Kubernetes API Server(kube-a ...

  5. Kubernetes中StatefulSet介绍

    原文链接:Kubernetes中StatefulSet介绍 StatefulSet 是Kubernetes1.9版本中稳定的特性,本文使用的环境为 Kubernetes 1.11.如何搭建环境可以参考 ...

  6. Kubernetes 探针使用介绍

    Kubernetes 探针使用介绍 一.基本介绍 二.K8s 探针使用介绍 一.基本介绍 当我们在 K8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这 ...

  7. Kubernetes Init Container

    Kubernetes Init Container 在很多场景中,应用在启动之前都需要进行如下初始化操作. 等待其他关联组件正确运行(例如数据库或某个后台服务). 基于环境变量或配置模板生成配置文件. ...

  8. Serverless Kubernetes 容器服务介绍

    作者 | 张维 阿里巴巴高级技术专家 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹性.最优成本 ...

  9. Kubernetes 核心概念介绍

    云计算.容器化以及容器编排是 DevOps 中最重要的发展趋势,无论你是数据科学家.软件开发者还是产品经理,了解 Docker 和 Kubernetes 的基本概念总是有好处的,二者可以帮助你与他人协 ...

  10. Kata Containers介绍

    美国东部时间12月5日早上8点,OpenStack基金会于KubeCon峰会正式发布基于Apache 2.0协议的容器技术Kata Containers项目(https://katacontainer ...

最新文章

  1. 安卓版文字扫描识别软件
  2. 数据结构 互换二叉树中所有结点的左右子树 C
  3. TensorFlow自带例子
  4. Web前端JavaScript笔记(4)节点
  5. Oracle 在安装时,安装文件的目录不能有汉字。
  6. ros中web端通过 按钮加载本地静态 pgm 地图显示在canvas画布中
  7. linux中安装apk软件,Linux下安装软件的几种方式
  8. Q# 微软量子计算编程语言
  9. Learn Go with tests 学习笔记(9)——Mocking
  10. 稳定的服务器主板,高稳定英特尔S2400SC2双路服务器主板
  11. 下载想看的英文kindle 电子书
  12. 不同手机型号图文预览_微信编辑器预览一般以多大的手机尺寸为准?
  13. 计算机网卡更改mac地址,Mac电脑网卡MAC地址修改的具体步骤
  14. php 文章页面阅读全文,纯代码为WordPress文章内容页增加阅读全文展开功能
  15. U3D -- 一些知识点和优秀博客收藏
  16. StrStrI 与 strstr
  17. 小程序点餐系统——点餐列表页(未讲解完)
  18. 如何使用origin跨工作簿进行公式计算
  19. 移动互联网行业中最具潜力的20大酷模式
  20. moviepy音视频开发:音频文件存取类AudioFileClip属性和方法介绍

热门文章

  1. Android应用图标上的小红点Badge实现
  2. Android文件目录及文件访问权限等详解
  3. [转]Magento 2 and 1 Million Products
  4. 管理学定律六:马太效应与鸟笼逻辑
  5. 防抖debounce立即防抖和延时防抖(二)
  6. Office 2007重新输入序列号激活
  7. 职高高一计算机知识点,职高高一上半学期所有数学公式
  8. 从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序
  9. python 美团api接口对接_美团券对接API文档
  10. DSX2-8000如何校准?校准流程?