per-host
linkerd作为独立进程运行在每台机器(物理机/虚拟机)上,服务所有运行在该机器的服务实例。
各个服务产生的流量都需要经过Linkerd,然后转发到目标服务
sidecar
linkerd和服务部署在一起,每个服务配套自己的linkerd
一台机器上可能同时存在多个linkerd进程
per-host和sidecar对比
资源
per-host:linkerd服务所有服务,所以需要大量资源进行高并发
sidecar:linkerd按需分配,不同服务使用不同的资源配置
职责单一
per-host:linkerd需要配置不同的配置让不同服务享受不同的配置,单linkerd做多件事
sidecar:一个linkerd服务一个服务,单linkerd做一件事
隔离
per-host:一旦linkerd出现问题/linkerd升级和维护,影响该机器所有服务;所有服务使用相同的TLS端到端加密(前提是linkerd提供该功能供服务使用)。
sidecar:每个服务可以使用独立的证书和加密,服务之间隔离
复杂
sidecar更复杂,需要管理多个linkerd进程
配置模型
不管采用哪种部署,都需要考虑配置模型