rktlet初长成,rkt CRI带你飞
来源:互联网 发布:淘宝咸鱼是什么意思 编辑:程序博客网 时间:2024/04/28 01:13
我们很高兴地宣布rktlet[1]的最初版本——rkt实现了Kubernetes容器运行时接口[2]。这是一个预览版本,不适用于生产工作环境。
rkt容器运行时在容器运行时间中是唯一的,一旦rkt完成设置Pod容器并启动应用程序,就不再有rkt代码运行了。rkt也采取安全第一的方法,除非用户明确禁用安全功能,否则rkt不允许使用不安全的功能。rkt是原生的Pod,能够完美的与Kubernetes的Pods概念相匹配。此外,rkt倾向于将改进集成到现有工具中,而不是重塑事物。最后,rkt允许在各种隔离环境(容器,虚拟机或物理机)中运行应用程序。
rktlet的这个最初版本目前有两个Kubernetes实现。在Kubernetes 1.3版本中引入了对Kubernetes的原生rkt支持。这个实现——美其名曰rktnetes[3]——其实就像Kubernetes核心的高仿版。正如rkt自己开始尝试容器标准一样,这个原始的rkt集成也促使Kubernetes引入了一个标准的接口来为其他容器运行时添加支持。这个接口被称为Kubernetes容器运行时接口(CRI)。
目标是使rktlet成为在Kubernetes中运行工作环境的首选方法。但是像Blablacar这样的公司依靠Kubernetes内部的rkt实现[4]来运行他们的基础架构。因此,我们不能仅仅在没有可行的替代方案的情况下移除这个实现。
rktlet目前通过了145个Kubernetes端到端一致性测试中的129个测试。我们的目标是完全合规。在本文的后面,我们将看看还有什么需要去实现。
rktlet是一个通过gRPC与kubelet通信的守护进程。CRI是kubelet和rktlet通信的接口。CRI主要的方法:
RunPodSandbox()
PodSandboxStatus()
CreateContainer()
StartContainer()
StopPodSandbox()
ListContainers()
等等[5]
这些方法可以帮助我们管理生命周期和收集状态。
要创建Pod,rktlet使用systemd-run + rkt命令行调用创建一个临时systemd服务。随后的操作,例如分别向容器添加和移除容器,都是通过调用rkt命令行工具完成的。
以下组件图提供了我们所描述的内容的可视化流程。
rktlet的工作推动了rkt内部的一些新功能开发,我们将花点时间来强调一下。
Pod操作
rkt一直是原生的,但pods本身是不可改变的。原始设计不允许进行诸如启动、停止或向应用程序添加应用程序的操作。而为了符合CRI,这些功能才被添加到rkt。这项工作在应用程序级API文档[7]中进行了详细的描述。
日志和附件
从历史上看,rkt的应用程序已经将日志记录转移到了轻量服务——默认情况下是systemd-journald——将其输出复用到外部世界。轻量服务处理日志记录和交互式应用程序重用父TTY。
但是,CRI定义了明文记录格式,而systemd-journald的输出格式是二进制格式。而且,Kubernetes还有一个附件功能[8],在旧设计中是无法做到的。
为了解决这些问题,实现了一个叫做iottymux的组件。启用时,它将完全替换systemd-journald;提供格式化为CRI兼容的应用程序日志以及附件功能所需的逻辑。
有关此设计的更详细说明,请查看日志附件设计文档[9]。
在准备正式进入生产工作环境之前,rktlet仍然还有很多任务要做,并且需要100%符合CRI标准。一些仍然需要完成的工作是:
kubectl附件[10]
CRI容器统计[11]
性能改进[12]
更多的与Kubernetes v1.8.x相关的测试[13]
文档改进[14]
相关链接:
https://github.com/kubernetes-incubator/rktlet
http://blog.kubernetes.io/2016/12/container-runtime-interface-cri-in-kubernetes.html
http://blog.kubernetes.io/2016/07/rktnetes-brings-rkt-container-engine-to-Kubernetes.html
https://kubernetes.io/case-studies/blablacar/
https://github.com/kubernetes/kubernetes/blob/release-1.8/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto#L17
https://github.com/kubernetes-incubator/rktlet/blob/master/docs/getting-started-guide.md
https://github.com/rkt/rkt/blob/master/Documentation/proposals/app-level-api.md
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#attach
https://github.com/rkt/rkt/blob/master/Documentation/devel/log-attach-design.md
https://github.com/kubernetes-incubator/rktlet/issues/8
https://github.com/kubernetes-incubator/rktlet/issues/150
https://github.com/kubernetes-incubator/rktlet/issues/160
https://github.com/kubernetes-incubator/rktlet/issues/169
https://github.com/kubernetes-incubator/rktlet/issues/170
原文链接:https://kinvolk.io/blog/2017/11/announcing-the-initial-release-of-rktlet-the-rkt-cri-implementation/
基于Kubernetes的DevOps实践培训
本次培训内容包含:Kubernetes架构、安装、深入了解Kubernetes、Kubernetes高阶——设计与实现、Kubernetes落地实践、微服务、Cloud Native等,点击识别下方二维码加微信好友了解具体培训内容。
- rktlet初长成,rkt CRI带你飞
- rktlet初长成,rkt CRI带你飞
- 前端初长成
- 菜鸟初长成
- 菜鸟初长成
- vm58 初长成
- CRI Vs CRI-Containerd
- 带你**带你飞
- 菜鸟初长成1.1.2
- JNI之初长成(一)
- 带你学C带你飞
- 项目经理初长成1------软件开发
- spring-mvc框架学习初长成
- 长成大树,长成灌木
- 如果你的心灵是一棵树的种子,你早晚有一天会长成参天大树……
- 正确使用优惠券,才能带你赚钱带你飞
- Runtime带你装X,带你飞
- 【零基础】带你学C带你飞
- 策略模式与Spring结合使用
- 通过先序、中序和后序数组两两结合重构二叉树
- logback 常用配置详解(序)logback 简介
- newGUI 中如何判断鼠标在某个控件范围内?
- ActiveMQ消息过滤
- rktlet初长成,rkt CRI带你飞
- [BZOJ3697]采药人的路径(点分治)
- 分分钟带你搞定Android开发圆形头像
- spring-shiro 实现权限管理,单点登录
- sublimeText3编辑器使用大全
- 虫虫的java之旅(集合篇)1---Collection
- 探究HashMap的实现原理
- Suse防火墙设置
- springmvc传值方式