Linkerd 2.10 系列

Linkerd 2.10 中文手册持续修正更新中:

Service profilesLinkerd 提供

了关于服务以及如何处理服务请求的附加信息。

Linkerd proxy 接收到 HTTP(非 HTTPS)请求时,

会识别该请求的目标服务(destination service)。

如果存在该目标服务的服务配置文件,则该 service profile 用于

提供每个路由指标重试超时

请求的 destination service 是通过选择存在的第一个 header 的值、

l5d-dst-override:authorityHost 来计算的。

端口组件(如果包含并包含冒号)将被剥离。该值映射到完全限定的 DNS 名称。

destination service 与发送方或接收方命名空间中的服务配置文件名称匹配时,

Linkerd 将使用它来提供 per-route metricsretriestimeouts

有时您可能需要为驻留在您无法控制的命名空间中的服务定义服务配置文件。

为此,只需像以前一样创建一个服务配置文件,但将服务配置文件的命名空间编辑为调用该服务的

pod 的命名空间。当 Linkerd

代理对服务的请求时,源命名空间中的服务配置文件将优先于目标命名空间中的服务配置文件。

您的 destination service 可能是ExternalName

service


在这种情况下,请使用 spec.metadata.namespec.metadata.namespace

值来命名您的 ServiceProfile。例如,

apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: prod
spec:
type: ExternalName
externalName: my.database.example.com

使用名称 my-service.prod.svc.cluster.local 作为 ServiceProfile

请注意,目前您无法在 Web 仪表板中查看针对此 ServiceProfile 中的路由收集的统计信息。

您可以使用 CLI 获取统计信息。

如需完整的演示演练,请查看 books demo。

有几种不同的方法可以使用 linkerd profile 来创建服务配置文件。`

与路由关联的请求将有一个 rt_route annotation。

要手动验证请求是否正确关联,请在您自己的部署上运行 tap

linkerd viz tap -o wide <target> | grep req

输出将实时流式传输 deploy/webapp 正在接收的请求。 一个样本是:

req id=0:1 proxy=in  src=10.1.3.76:57152 dst=10.1.3.74:7000 tls=disabled :method=POST :authority=webapp.default:7000 :path=/books/2878/edit src_res=deploy/traffic src_ns=foobar dst_res=deploy/webapp dst_ns=default rt_route=POST /books/{id}/edit

相反,如果 rt_route 不存在,则请求 与任何路由相关联。尝试运行:

linkerd viz tap -o wide <target> | grep req | grep -v rt_route

Swagger

如果您的服务有 OpenAPI (Swagger)

规范,则可以使用 --open-api 标志从 OpenAPI 规范文件生成服务配置文件。

linkerd profile --open-api webapp.swagger webapp

这会从 webapp.swagger OpenAPI 规范文件为 webapp 服务生成一个服务配置文件。

生成的服务配置文件可以直接通过管道传输到 kubectl apply,并将安装到服务的命名空间中。

linkerd profile --open-api webapp.swagger webapp | kubectl apply -f -

Protobuf

如果您的服务具有 protobuf 格式,

则可以使用 --proto 标志生成服务配置文件。

linkerd profile --proto web.proto web-svc

这将从用于 web-svc 服务的 web.proto 格式文件生成服务配置文件。

生成的服务配置文件可以直接通过管道传输到 kubectl apply,并将安装到服务的命名空间中。

自动创建

没有 OpenAPI 规范或 protobuf 格式是很常见的。

您还可以通过观看实时流量生成服务配置文件。

这是基于点击数据,是了解服务配置文件可以为您做什么的好方法。

要开始此生成过程,您可以使用 --tap 标志:

linkerd viz profile -n emojivoto web-svc --tap deploy/web --tap-duration 10s

这将在该命令运行的10秒内从观察到的 deploy/web 流量中生成一个服务配置文件。

产生的服务配置文件可以直接通过管道传输到 kubectl apply,并将被安装到服务的命名空间中。

模板

除了自动创建服务配置文件的所有方法外,您还可以获得一个模板,允许您手动添加路由。要生成模板,请运行:

linkerd profile -n emojivoto web-svc --template

这会生成一个服务配置文件模板,其中包含可以手动更新的示例。

更新服务配置文件后,使用 kubectl apply 将其安装到集群上服务的命名空间中。

Linkerd 2.10(Step by Step)—设置服务配置文件的更多相关文章

  1. Linkerd Service Mesh 服务配置文件规范

    服务配置文件 为 Linkerd 提供有关服务的附加信息. 以下是可以使用服务配置文件完成的所有操作的参考. 系列 中文手册(https://linkerd.hacker-linner.com) Sp ...

  2. Linkerd 2.10(Step by Step)—1. 将您的服务添加到 Linkerd

    为了让您的服务利用 Linkerd,它们还需要通过将 Linkerd 的数据平面代理(data plane proxy)注入到它们服务的 pod 中,从而进行网格化. Linkerd 2.10 中文手 ...

  3. Linkerd 2.10(Step by Step)—2. 自动化的金丝雀发布

    通过结合 Linkerd 和 Flagger 来根据服务指标自动金丝雀(canary)发布,从而降低部署风险. Linkerd 2.10 中文手册持续修正更新中: https://linkerd.ha ...

  4. Linkerd 2.10(Step by Step)—多集群通信

    Linkerd 2.10 系列 快速上手 Linkerd v2.10 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traef ...

  5. Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用

    Linkerd 2.10 系列 快速上手 Linkerd v2.10 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traef ...

  6. Linkerd 2.10(Step by Step)—配置重试

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  7. Linkerd 2.10(Step by Step)—配置代理并发

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  8. Linkerd 2.10(Step by Step)—3. 自动轮换控制平面 TLS &Webhook TLS 凭证

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  9. Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

随机推荐

  1. [bug] IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8

    原因 jdk版本选低了 解决 将以下几处jdk版本修改为1.8 Project Structure(File->Project Structure...)>Sources>Langu ...

  2. [Java] 部署到Linux

    阿里云 控制台->云服务器ECS->实例->创建实例 计费方式 地域 网络 安全组:默认安全组 公网IP地址:分配 实例 公网带宽:1M ECS服务器:公共镜像CentOS 存储 购 ...

  3. 服务器硬件必须支持M2 或PCIE才能支持NVME

    兆芯服务器不支持NVME. 服务器硬件必须支持M2 或PCIE才能支持NVME.1 因为物理接口只有M2 SATA 和PCIE这三中但是NVME只支持M2 和PCIE这2种2所以 NVME不支持SAT ...

  4. 《SystemVerilog验证-测试平台编写指南》学习 - 第3章 过程语句和子程序

    <SystemVerilog验证-测试平台编写指南>学习 - 第3章 过程语句和子程序 3.1 过程语句 3.2 任务.函数以及void函数 3.3 任务和函数概述 3.4 子程序参数 3 ...

  5. IT菜鸟之OSI七层模型

    OSI七层模型从下到上分别是: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 第一层物理层: 物理层是传输媒介(网线.无线.光纤) 在线路中起到的作用:是将0/1转换成电信号或光信号 物 ...

  6. Phoenix 使用教程

    引言 hbase 提供很方便的 shell 脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句 ...

  7. Go语言常用命令

    查看可用命令 直接在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些: ·build: 编译包和依赖 ·clean: 移除对象文件 ·doc: 显示包或者符号 ...

  8. 【Azure 事件中心】azure-spring-cloud-stream-binder-eventhubs客户端组件问题, 实践消息非顺序可达

    问题描述 查阅了Azure的官方文档( 将事件发送到特定分区: https://docs.azure.cn/zh-cn/event-hubs/event-hubs-availability-and-c ...

  9. 微信小程序从开发到上线流程

    一.微信小程序从开发到上线流程 注册小程序 1.登录微信公众平台 https://mp.weixin.qq.com 2.在微信公众平台>立即注册>小程序中注册微信小程序 3.在邮箱中激活并 ...

  10. 『言善信』Fiddler工具 — 4、Fiddler面布局详解【工具栏】

    目录 (一)工具栏详细介绍 1.第一组工具: 2.第二组工具: 3.第三组工具: 4.第四组工具: (二)工具栏使用说明 1.Fiddler修改代理端口: 2.过滤Tunnel to...443请求链 ...