了解 Linkerd Service Mesh 架构
2021-12-09 14:56
876 查看
从较高的层次上看,
Linkerd由一个控制平面(control plane) 和一个 数据平面(data plane) 组成。
控制平面是一组服务,提供对
Linkerd整体的控制。
数据平面由在每个服务实例
“旁边”运行的透明微代理(micro-proxies)组成,作为
Pod中的
sidecar。 这些代理会自动处理进出服务的所有
TCP流量,并与控制平面进行通信以进行配置。
Linkerd还提供了一个 CLI,可用于与
控制平面和
数据平面进行交互。
系列
中文手册(https://hacker-linner.com</small>)
CLI
Linkerd CLI通常在集群外部运行(例如在您的本地机器上),用于与
Linkerd交互。
控制平面(control plane)
Linkerd
控制平面是一组在专用
Kubernetes命名空间(默认为
linkerd)中运行的服务。 控制平面有几个组件,列举如下。
目标服务(destination)
数据平面代理使用
destination服务来确定其行为的各个方面。 它用于获取服务发现信息(即发送特定请求的位置和另一端预期的
TLS身份); 获取有关允许哪些类型的请求的
策略信息; 获取用于通知
每条路由指标、
重试和
超时的服务配置文件信息;和更多其它有用信息。
身份服务(identity)
identity服务充当 TLS 证书颁发机构, 接受来自代理的 CSR 并返回签名证书。 这些证书在代理初始化时颁发,用于代理到代理连接以实现
mTLS。
代理注入器(proxy injector)
proxy injector是一个 Kubernetes
admission controller,它在每次创建
pod时接收一个
webhook请求。 此
injector检查特定于
Linkerd的
annotation(
linkerd.io/inject: enabled)的资源。 当该
annotation存在时,
injector会改变
pod的规范, 并将
proxy-init和
linkerd-proxy容器以及相关的启动时间配置添加到
pod中。
数据平面(data plane)
Linkerd 数据平面包含超轻型
微代理,这些
微代理部署为应用程序
Pod内的
sidecar容器。 由于由
linkerd-init(或者,由
Linkerd的
CNI插件)制定的
iptables规则, 这些代理透明地拦截
进出每个
pod的
TCP连接。
代理(Linkerd2-proxy)
Linkerd2-proxy是一个用 Rust 编写的超轻、透明的
微代理。
Linkerd2-proxy专为
service mesh用例而设计,并非设计为通用代理。
代理的功能包括:
HTTP
、HTTP/2
和任意TCP
协议的透明、零配置代理。HTTP
和TCP
流量的自动Prometheus
指标导出。- 透明、零配置的
WebSocket
代理。 - 自动、延迟感知、第
7
层负载平衡。 - 非
HTTP
流量的自动第4
层负载平衡。 - 自动
TLS
。 - 按需诊断
Tap API
。 - 还有更多。
代理支持通过
DNS和目标 gRPC API 进行服务发现。
您可以在此处阅读有关这些微代理的更多信息:
Linkerd init 容器
linkerd-init容器作为 Kubernetes init 容器 添加到每个网格
pod中,该容器在任何其他容器启动之前运行。 它使用
iptables通过代理将所有
TCP流量,进出
Pod的所有流量。
公众号:黑客下午茶
相关文章推荐
- 下一代微服务!微博Service Mesh高可用架构实战
- 微服务架构基础之Service Mesh
- 下一代微服务!微博Service Mesh高可用架构实战
- 入门了解Service Mesh + Istio?从本文开始
- 入门了解Service Mesh + Istio?从本文开始
- Android 系统中 gps Location Service 的实现与架构,本文可以帮助他们更好的了解 Android 系统架构
- 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代
- Service Mesh 现在如此火热,你了解多少?
- service mesh的linkerd的postman测试问题
- 微服务架构基础之Service Mesh
- 架构高性能网站秘笈(一)——了解衡量网站性能的指标
- 架构师不得不了解的理论知识 -- 基础设施架构
- 冲出迷途:你真的了解分层架构吗?
- 服务导向架构(Service Oriented Architecture SOA)
- android 的service一点了解
- 互联网架构为什么要做服务化(Service)
- Kubernets的初步了解,整体架构的学习
- SOA(Service Oriented Architecture) 面向服务的架构
- 要了解CommunityServer的架构不得不看的文章
- 02 Infrastructure as a Service基础架构即服务