基准测试
概述
K9s 集成了来自才华横溢的 Jaana Dogan 的 Hey。 Hey
是一个类似 AB bench 的 CLI 工具,用于对 HTTP 端点进行基准测试。该初步功能目前支持对端口转发和服务进行基准测试(这方面的摸索还很新颖!)。
要设置端口转发,您需要导航到 PodView,选择一个公开给定端口的 Pod 和容器。使用 SHIFT-F
,会弹出一个对话框,允许您指定要转发到的本地端口。一旦确认,您可以导航到 PortForward 视图(别名 pf
),列出您的活动端口转发。选择一个端口转发,并使用 CTRL-B
将在该 HTTP 端点上运行基准测试。要查看基准测试运行的结果,请转到 Benchmarks 视图(别名 be
)。现在,您应该能够选择一个基准测试,并通过按下 <ENTER>
查看运行统计详细信息。注意:端口转发仅在 K9s 会话的持续时间内保持,并在退出时终止。
最初,基准测试将使用以下默认值运行:
- 并发级别:1
- 请求数量:200
- HTTP 动词:GET
- 路径:/
PortForward 视图由新的 K9s 配置文件支持,即: $XDG_CONFIG_HOME/k9s/bench-<my_context>.yml
。您连接到的每个集群都有自己的 bench 配置文件。对该文件的更改应自动更新 PortForward 视图,以指示您想要如何运行基准测试。
请记住,随后的版本将很可能更改这个文件!
示例
# $XDG_CONFIG_HOME/k9s/bench-<my_k8s_context>.yml
benchmarks:
# 如果容器或服务规则不匹配,则指示默认并发和请求数量设置。
defaults:
# 一个并发连接
concurrency: 2
# 将发送到端点的请求数量
requests: 1000
containers:
# Containers 部分允许您配置 http 容器的端点和基准测试设置。
# 注意:容器 ID 语法使用 namespace/pod-name:container-name
default/nginx:nginx:
# 对名为 nginx 的容器使用 POST HTTP 动词基准测试,使用 http://localhost:port/bozo URL 和 headers。
concurrency: 1
requests: 10000
http:
path: /bozo
method: POST
body:
{"fred":"blee"}
header:
Accept:
- text/html
Content-Type:
- application/json
services:
# 同样,您可以基准测试通过 NodePort、LoadBalancer 类型公开的 HTTP 服务。
# Service ID 是 ns/svc-name
default/nginx:
# 设置并发级别
concurrency: 5
# 要发送的请求数量
requests: 500
http:
method: GET
# 此设置将取决于服务是 ModePort 还是 LoadBalancer。NodePort 可能需要供应商端口隧道设置。
# 如果是 ModePort 则设置为一个节点,如果适用,则设置为 LB。IP 或 dns 名称。
host: 1.2.3.4
path: /bumblebeetuna
auth:
user: jean-baptiste-emmanuel
password: Zorg!
