Conduit-面向Kubernetes的轻量化服务网格

article/2025/10/2 4:10:07
【编者的话】作为Linkerd面向Kubernetes的独立版本,Conduit拥有着其独特的理念,本文就为大家解析了Conduit的主体设计以及未来的发展路线,希望供感兴趣的朋友们参考。

在本周 KubeCon + CloudNativeCon 2017 大会上所有关于服务网络的讨论中, Linkerd 项目母公司推出的一款名为 Conduit 的面向Kubernetes的Linkerd版本引发了多方关注。

开源项目 Linkerd 旨在创建一个独立的通讯层,以透明方式处理诸如服务发现,负载均衡,故障处理,测量以及面向云本地应用的服务路由等任务。这是一个面向云原生计算基金会( Cloud Native Computing Foundation )的项目,而Kubernetes正是该基金会的首选编排工具选项。

Linkerd立足于诸如Finagle,Netty,Scala以及JVM之类的组件之上,主司向上扩展(Scale up)工作,但对于资源受限的环境进行规模收缩(Scale down)则非其所长——这类场景常见于基于sidecar的Kubernetes部署, William Morgan ——赞助商 Buoyant 公司CEO解释道。

Linkerd 在2015年发布时,编排市场正呈现碎片化的状态,客户们各自分散于Nomad、Mesos、Kubernetes及其它平台之上,切一时无法作出最终决策。

“通过Linkerd,我们明确表达了尽可能多地实现环境集成的愿望,”他解释道。近两年,Kubernetes统治了编排领域。虽然Linkerd有很多客户使用其替代品,但是面对Kubernetes的快速增长,公司想要对此作出响应。

他称公司倾听了顾客的意见,而Conduit正是由此而来。

“现在,大家已经了解了服务网络,并且认识到其提供的价值,他们想要通过单独一套精简的轻量化软件包获得Linkerd的全部优势,及其经过重新设计的安全原语,”他说道。

Conduit服务网络作为数据面 部署 于Kubernetes集群之上,其由轻量化代理组成,负责充当服务代码的侧挂容器,并由一组控制面进程协调和管理这些代理。

单一Conduit代理拥有次微秒级的p99延迟,且所运行的RSS小于10mb。

数据面传输服务实例间的应用请求流量。代理以透明方式截断来自或通往pod的通讯,并添加一些特性,如重试与超时,度量(instrumentation),加密(TLS),以及按照相应策略允许/禁止请求。

控制面也正是聚合指标源之一。


数据面利用 Rust 编写,控制面则使用 Go 编写。

Morgan说,“Rust赋予我们编写本地代码的能力,因此它能够让软件获得尽可能快的运行速度,且能够保证内存的安全性。这意味着我们跨过了一大堆关于缓冲区溢出,CVE和云泄露的问题——这些对于数据面而言甚至已经不算是个问题。这对于我们而言真的很重要,因为数据面深深植根于堆栈当中,且有可能暴露PII(个人身份信息)、HIPAA数据以及信用卡信息。”

正因为Go在Kubernetes社区中是如此的普遍,它也就成为了一个比较自然的选择。一款容易上手的语言能够降低社区贡献的壁垒。

控制面API的设计目标在于尽可能通用,从而允许其它工具基于其进行构建。目前的初始版本尚不支持定制化功能,但未来gRPC插件将可以作为控制面的一部分运行,且无需重新编译Conduit。

用户可以通过命令行(CLI)实现与服务网络的交互,或者通过Web应用控制集群。

Morgan称,Kubernetes提供了一种自然的方式来使用侧挂方法,这对于确保某些类型的高级安全策略是必不可少的。

“为了实现侧挂,你会希望它变得尽可能小。例如保证仅需要处理一个单独实例的流量,但同时确保这部分流量既可靠又体积小巧。”

本次通告仅涵盖0.1版本。Morgan解释称,“该项目尚处于alpha阶段,甚至连HTTP1都不支持,而仅支持 HTTP2 ”。

他概述了一系列特性,以作为支持生产环境的先决条件,具体包括:
  • 可靠语义,例如重试,超时以及断路。
  • 请求路由,流量流经方式可编程控制。
  • 安全策略——“我们已经有适当的原语,只不过现在尚未完成”,他说道。

这份发展路线图包括了代理的透明性,处理所有服务间通讯(不仅仅是HTTP)的能力;默认提供服务间验证以及加密,扩展Kubernetes API以提供真实世界的运维策略支持,并支持特定于环境的策略插件。

Conduit的出现对于Linkerd项目的原有部署、支持以及维护工作而言影响不大,因为前者的核心定位在于尽可能多地集成环境并提升环境跨越能力。

原文链接:Conduit: A Lightweight Service Mesh for Kubernetes(翻译:孙科)

转自:http://dockone.io/article/2956

中文文档:http://conduit.doczh.cn

官网: https://github.com/runconduit/conduit



http://chatgpt.dhexx.cn/article/o5cd5XE6.shtml

相关文章

我的世界服务器物品管道,物品导管 (Item Conduit)

物品导管是一个传导物品的管道,并且可以应用多种升级。 它会自动连接相邻的带有物品存储的方块(如果一个机器的IO模式被设为“禁用”,仍会连接),并在所连接的方块的表面形成一个导管接口,导管接口是方块进入物品导管网络的标志。如果这个被连接的方块被移除,相应的,连接会…

Authorization loop detected on Conduit with realm “WSMAN“

报错 Authorization loop detected on Conduit “{http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd}WinRmPort.http-conduit” on URL “http://172.20.2.21:5985/wsman” with realm “WSMAN” 原因 发生这个原因有2种几种可能, 服务端未开启专用网络WinRM 配…

Service Mesh框架选型对比分析:Linkerd、Envoy、Istio、Conduit

当前,业界主要有以下主要几种Service Mesh框架,下面进行详细的说明及对比。 1、Linkerd Linkerd是Buoyant公司2016年率先开源的高性能网络代理,是业界的第一款Service Mesh框架。其主要用于解决分布式环境中服务之间通信面临的一些问题&…

ue4 中动画控制,利用conduit节点

Actor的动画状态可能有几种idle,run,walk,skill,而skill中由又有几种不同的技能动作,要做进步一控制,这里只是提供一种思路,利用动画蓝图里的 conduit 节点,减少大量重复性的 state&…

PIX中Conduit命令用法

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /> conduit命令用来允许数据流从具有较低安全级别的接口流向具有较高安全级别的接口&#xff0c;例如允许从外部到DMZ或内部接口的入方向的会话。对于向内部接口的连接&#xff0c;…

Service Mesh-Conduit概览

2019独角兽企业重金招聘Python工程师标准>>> Service Mesh-Conduit概览 Conduit是一款针对Kubernetes的超轻量级的service mesh。它可以透明得管理服务运行时之间的通信&#xff0c;使得在Kubernetes上运行服务更加安全和可靠&#xff1b;它还具有不用修改任何应用程…

WebApp开发实践

网上购物网站&#xff08;以出售软件为例&#xff09; webApp开发由Java实现&#xff0c;运用了 jdbc&#xff0c;jsp&#xff0c;servlet&#xff0c;jQueryFlot图表 等技术&#xff0c;数据库为SqlServer2008&#xff0c;仅供参考学习&#xff0c;转载文章需注明: 一、后台…

Qt+QtWebApp开发笔记(五):http服务器html中使用json触发ajax与后台交互实现数据更新传递

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131122772 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

webapp开发框架选择注意点

webapp开发框架选择需要注意&#xff1a; 第一步&#xff1a;开发支持的语言类型 根据前端开发人员的能力&#xff0c;来选择webapp开发框架。 例如&#xff1a;前端人员只会写react 就要求webapp开发框架支持react。 第二步&#xff1a;查看webapp开发框架文档是否齐全 例…

Qt+QtWebApp开发笔记(二):http服务器日志系统介绍、添加日志系统至Demo测试

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/130762721 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

WebApp开发----数字角标

数字角标--有底色和无底色 数字角标一般和其它控件&#xff08;列表、9宫格、选项卡等&#xff09;配合使用&#xff0c;用于进行数量提示。 角标的核心类是.mui-badge&#xff0c;默认为实心灰色背景&#xff1b;同时&#xff0c;mui还内置了蓝色&#xff08;blue&#xff09…

WebApp开发学习

1.折叠面板 <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width,initial-scale1,minimum-scale1,maximum-scale1,user-scalableno" /><title></title…

webApp开发心得

从事单页相关的开发一年有余&#xff0c;期间无比的推崇webapp的网站模式&#xff0c;也整理了很多移动开发的知识点&#xff0c;但是现在回过头来看&#xff0c;webapp究竟是好还是不好真是一言难尽哟&#xff01; webapp使用JavaScript修改页面&#xff1b;紧接着再从服务器…

Qt+QtWebApp开发笔记(一):QtWebApp介绍、下载和搭建基础封装http轻量级服务器Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/130631547 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

安卓WebApp开发-项目MiliSetu

文章目录 目录 文章目录 前言 WebAPP开发 一、WebAPP是什么&#xff1f; 二、安装HBuilder X 1.HBuilder X 官网 2.创建一个app项目 3.项目文件 ​编辑 index 总结 前言 WebAPP开发 WebApp开发&#xff0c;是移动端程序的实现方式之一&#xff0c;是一种简单&#…

关于webapp开发

最近想搞一个自用的手机app&#xff0c;但是Android开发给我的感觉是麻烦&#xff0c;想着web也可以制作手机app&#xff0c;于是去网上搜索了一番&#xff0c;最后下载了HBuilderX&#xff0c;然后开始搞&#xff0c;对于原生web&#xff0c;选择5App&#xff0c;默认模板就行…

Web App 开发

0. jQuery Mobile 介绍 jQM是为触控优化的移动web框架&#xff0c;用来设计响应式网站和跨平台移动开发的&#xff1b; &#xff08;这里的跨平台指的是可以运行在iOS、Android、BlackBerry、WindowsPhone各种平台上&#xff09; jQM的资料多而且详细、容易上手&#xff0c;对…

【WebApp】webApp开发总结(集合转贴)

为什么80%的码农都做不了架构师&#xff1f;>>> 【来源地址】 http://www.cnblogs.com/pifoo/archive/2011/05/28/webkit-webapp.htmlhttp://classjs.com/tag/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%BC%80%E5%8F%91/http://java-mans.iteye.com/blog/1639503http://www.z…

iOS开发入门——项目创建

iOS开发入门——项目创建 1、新建项目 2、项目模版 3、项目配置 配置好之后点下一步就好。。。。 4、确定存储位置 5、启动模拟器 这就是第一个空白项目的创建过程&#xff0c;后面将持续更新iOS开发学习经历。

ios开发基础教程

博客专栏 斯坦福iOS公开课笔记 文章&#xff1a;8篇 阅读&#xff1a;11187 IOS开发进阶 文章&#xff1a;9篇 阅读&#xff1a;34499 深入浅出Objective-C 文章&#xff1a;17篇 阅读&#xff1a;56719 IOS开发入门实例 文章&#xff1a;30篇 阅读&#xff1a;134894