Kubernetes kata-container 介绍
文章目录
- 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 Containers
和 Hyper.sh
的 runV
,能够支持不同平台的硬件,并符合Open Container Initiative
规范,同时还可以兼容k8s的 CRI
(Container Runtime Interface)接口规范。项目包含几个配套组件,即Runtime
,Agent
, Proxy
,Shim
等。项目已于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-shim
和kata-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 介绍相关推荐
- Kata Container — Overview
目录 文章目录 目录 传统容器的安全问题 Kata Container 软件架构 轻量化虚拟机 QEMU Guest Kernel Guest image (rootfs)Root filesyste ...
- Kubernetes(K8s)Events介绍(上)
Kubernetes Events虽不常被提起,却意义非凡.它存储在Etcd里,记录了集群运行所遇到的各种大事件.本系列文章将一步一步地揭开Kubernetes Events的神秘面纱. 师出有名 前 ...
- kata cantainer介绍及Ubuntu安装kata cantainer
kata cantainer介绍 kata cantainer是什么?与docker相比有什么优势? Kata Containers是一种轻量级容器技术,旨在提供与传统虚拟化相当的隔离性和安全性,同时 ...
- kubernetes各组件介绍
文章目录 一. kubernetes 是什么 1. 基础架构图 2. kubernetes 各组件介绍 2.1 master 组件 :one: Kubernetes API Server(kube-a ...
- Kubernetes中StatefulSet介绍
原文链接:Kubernetes中StatefulSet介绍 StatefulSet 是Kubernetes1.9版本中稳定的特性,本文使用的环境为 Kubernetes 1.11.如何搭建环境可以参考 ...
- Kubernetes 探针使用介绍
Kubernetes 探针使用介绍 一.基本介绍 二.K8s 探针使用介绍 一.基本介绍 当我们在 K8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这 ...
- Kubernetes Init Container
Kubernetes Init Container 在很多场景中,应用在启动之前都需要进行如下初始化操作. 等待其他关联组件正确运行(例如数据库或某个后台服务). 基于环境变量或配置模板生成配置文件. ...
- Serverless Kubernetes 容器服务介绍
作者 | 张维 阿里巴巴高级技术专家 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹性.最优成本 ...
- Kubernetes 核心概念介绍
云计算.容器化以及容器编排是 DevOps 中最重要的发展趋势,无论你是数据科学家.软件开发者还是产品经理,了解 Docker 和 Kubernetes 的基本概念总是有好处的,二者可以帮助你与他人协 ...
- Kata Containers介绍
美国东部时间12月5日早上8点,OpenStack基金会于KubeCon峰会正式发布基于Apache 2.0协议的容器技术Kata Containers项目(https://katacontainer ...
最新文章
- 安卓版文字扫描识别软件
- 数据结构 互换二叉树中所有结点的左右子树 C
- TensorFlow自带例子
- Web前端JavaScript笔记(4)节点
- Oracle 在安装时,安装文件的目录不能有汉字。
- ros中web端通过 按钮加载本地静态 pgm 地图显示在canvas画布中
- linux中安装apk软件,Linux下安装软件的几种方式
- Q# 微软量子计算编程语言
- Learn Go with tests 学习笔记(9)——Mocking
- 稳定的服务器主板,高稳定英特尔S2400SC2双路服务器主板
- 下载想看的英文kindle 电子书
- 不同手机型号图文预览_微信编辑器预览一般以多大的手机尺寸为准?
- 计算机网卡更改mac地址,Mac电脑网卡MAC地址修改的具体步骤
- php 文章页面阅读全文,纯代码为WordPress文章内容页增加阅读全文展开功能
- U3D -- 一些知识点和优秀博客收藏
- StrStrI 与 strstr
- 小程序点餐系统——点餐列表页(未讲解完)
- 如何使用origin跨工作簿进行公式计算
- 移动互联网行业中最具潜力的20大酷模式
- moviepy音视频开发:音频文件存取类AudioFileClip属性和方法介绍