From 3173c5a342ce79e1fc200c4cd568083e4ce22cfd Mon Sep 17 00:00:00 2001 From: ii2day Date: Wed, 26 Jul 2023 17:07:39 +0800 Subject: [PATCH] doc: add zh_CN doc Signed-off-by: ii2day --- charts/values.yaml | 2 +- docs/reference/apphttphealthy-zh_CN.md | 151 ++++++++++++++++++++++ docs/reference/netdns-zh_CN.md | 172 +++++++++++++++++++++++++ docs/reference/netreach-zh_CN.md | 120 +++++++++++++++++ docs/usage/install-zh_CN.md | 63 +++++++++ 5 files changed, 507 insertions(+), 1 deletion(-) create mode 100644 docs/reference/apphttphealthy-zh_CN.md create mode 100644 docs/reference/netdns-zh_CN.md create mode 100644 docs/reference/netreach-zh_CN.md create mode 100644 docs/usage/install-zh_CN.md diff --git a/charts/values.yaml b/charts/values.yaml index 82fc2a3a..8b457f06 100644 --- a/charts/values.yaml +++ b/charts/values.yaml @@ -33,7 +33,7 @@ feature: enableIPv4: true ## @param feature.enableIPv6 enable ipv6 - enableIPv6: false + enableIPv6: true ## @param feature.nethttp_defaultRequest_Qps qps for kind nethttp nethttp_defaultRequest_Qps: 10 diff --git a/docs/reference/apphttphealthy-zh_CN.md b/docs/reference/apphttphealthy-zh_CN.md new file mode 100644 index 00000000..7a1ae86e --- /dev/null +++ b/docs/reference/apphttphealthy-zh_CN.md @@ -0,0 +1,151 @@ +# AppHttpHealthy + +## 基本描述 + +对于这种任务,每个 kdoctor agent都会向指定的目标发送http请求,并获得成功率和平均延迟。它可以指定成功条件来判断结果是否成功。并且,可以通过聚合API获取详细的报告。 + +## AppHttpHealthy 示例 + +```yaml +apiVersion: kdoctor.io/v1beta1 +kind: AppHttpHealthy +metadata: + name: apphttphealth +spec: + expect: + meanAccessDelayInMs: 1500 + successRate: 1 + request: + durationInSecond: 10 + perRequestTimeoutInMS: 2000 + qps: 10 + schedule: + roundNumber: 1 + roundTimeoutMinute: 1 + schedule: 0 0 + target: + enableLatencyMetric: false + host: http://www.baidu.com + http2: false + method: GET +``` + +## AppHttpHealthy 定义 + +### Metadata + +| 字段 | 描述 | 结构 | 验证 | +|-----|---------------|--------|-----| +| name | AppHttpHealthy 资源的名称 | string | 必填 | + +### Spec + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-----------|------------------|------------------------------------------|---------|-------|------| +| schedule | 调度任务执行 | [schedule](./apphttphealthy-zh_CN.md#Schedule) | 可选 | | | +| request | 对目标地址请求配置 | [request](./apphttphealthy-zh_CN.md#Request) | 可选 | | | +| target | 请求目标设置 | [target](./apphttphealthy-zh_CN.md#Target) | 可选 | | | +| expect | 任务成功条件判断 | [expect](./apphttphealthy-zh_CN.md#Expect) | 可选 | | | + + +#### Schedule + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|----------|--------|-----|------------------------------------------------------------------------------------------------------------------|------| +| roundNumber | 任务执行轮数 | int | 可选 | 大于等于-1 且不等于 0,为 -1 时表示永久执行,大于 0 时表示将要执行的轮数 | 1 | +| schedule | 任务执行时间 | string | 可选 | 支持 linux crontab 写法 与 sample 写法
linux crontab : * 1 * * *
sample : 1 1 ,第一位表示多少分钟之后开启任务,第二位表示每一轮任务的间隔多少分钟执行 | "0 60" | +| roundTimeoutMinute | 任务超时时间 | int | 可选 | 大于 1 | 60 | + +#### Request + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-----------------------|----------------------|-----|-----|-------|-----| +| durationInSecond | 每轮任务的请求发压的持续时间 | int | 可选 | 最小值 1 | 2 | +| perRequestTimeoutInMS | 每个请求的超时时间 | int | 可选 | 大于 1 | 500 | +| qps | 每一个 agent 每秒请求数量 | int | 可选 | 大于 1 | 5 | + +> 注意:使用 agent 请求时,所有的 agent 都会向目标地址进行请求,因此实际 server 接收的 qps 等于 agent 数量 * 设置的qps。 + +#### Target + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|------------------------|--------------------------------------------------------------------------------------------------|--------|---------|---------------------------|-------| +| host | http 请求地址 | string | 必填 | | | +| method | http 请求方法 | string | 必填 | GET、POST、PUT、DELETE、CONNECT、OPTIONS、PATCH、HEAD | | +| bodyConfigmapName | http 请求 body 存放的 configmap 名称,[configmap 内容参考](./apphttphealthy-zh_CN.md#Body) | string | 可选 | | | +| bodyConfigmapNamespace | http 请求 body 的 configmap 命名空间 | string | 可选 | | | +| tlsSecretName | https 请求证书存放的 secret 名称,secret类型为 kubernetes.io/tls,[secret 内容参考](./apphttphealthy-zh_CN.md#Tls) | string | 可选 | | | +| tlsSecretNamespace | https 请求证书存放的 secret 命名空间 | string | 可选 | | | +| header | http 请求头,数组形式,示例为 "Content-Type: application/json" | 元素为字符串的数组 | 可选 | | | +| http2 | 使用使用 http2 协议进行请求开关 | bool | 可选 | true,false | false | +| enableLatencyMetric | 统计演示分布,开启后会增加内存使用量 | bool | 可选 | true,false | false | + +#### Expect + +任务成功条件,若任务结果没有达到期望条件,任务失败 + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|-----------|-------|-----|-------|------| +| meanAccessDelayInMs | 平均延时 | int | 可选 | 最小值 1 | 5000 | +| successRate | http请求成功率 | float | 可选 | 0-1 | 1 | +| statusCode | http返回状态码 | int | 可选 | 0-500 | 200 | + + +#### Body + +携带 body 请求,body 写法示例 + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: kdoctor-test-body-5656-89207258 + namespace: kdoctor +data: + test1: test1 + test2: test2 +``` + + +#### Tls + +https 请求使用证书时,若不填写 ca证书 则 不对证书安全进行校验。 + +```yaml +apiVersion: v1 +data: + ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURHRENDQWdDZ0F3SUJBZ0lSQUlLRWdhemhnZjZFcGl0NkN5WVJzcXN3RFFZSktvWklodmNOQVFFTEJRQXcKRlRFVE1CRUdBMVVFQXhNS2EyUnZZM1J2Y2k1cGJ6QWdGdzB5TXpBM01qZ3dPVFExTlRoYUdBOHlNakl6TURZeApNREE1TkRVMU9Gb3dGVEVUTUJFR0ExVUVBeE1LYTJSdlkzUnZjaTVwYnpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCCkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxaaU1QV21xYUdqekh3cUs2Nk94LzlNaEJjZE1mbUwwU0ZKa2k3VEJoSnEKUVZueng3Vmp0QWFpYzJ5STdOaUtUaE1YUFc0Y2hXZ3dENlFkcGhsbG5ONEpEdkhmU1lNcHNwdXowOU9scUY0VgpKK1hTcktLaVMveE5RYS90bXFWQUF6U0t2dFhIdTNlU3Y1YVdSWEVwWjdGa25KaVVMaWx2RnJ1WlJMN0tYZWZTCmorMU90K2NHL3dWYVNHU2xTUnNuQ0Z0OGdKakt3eXdSeHJMdmNVa29HL3RFdDRKb2cwb1B4QmozWnFzNi80MjUKbnZrUys2ZDZwZE93bjEyOGw3UlZQRGh3MU9YNmlWMHJXaHBUNEhLQjliMDRHekErR05KaHJ0cHBxL2psM2ZmRQpGci9jeVJZZ0h3OEtFei9icTE4a2VRa1ZoSTlkSFovWFJRWU1TYTdvR2YwQ0F3RUFBYU5oTUY4d0RnWURWUjBQCkFRSC9CQVFEQWdLa01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFQQmdOVkhSTUIKQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRd1VJVjQyNnNsYjhSSklCVzV5czYzVFlLRDZqQU5CZ2txaGtpRwo5dzBCQVFzRkFBT0NBUUVBcmhaSWZSY0UzVEgzTWVKeDl5WnNLZWwyVWp5M29PNGhHai9xZFN2ajhWcDA4MmJHCnJPSFdhTnFPMHRUVWpFM2RFekFoRnN6OTF0RmhvV0lkZEZybWk2SmQ0K3hqYXZzR1hsNmNyWlU3N3l4a0gyQVMKWkNoai9veEJBWGVWYWg5Uk5Td0htSjJKbWdNZm50R0tFNm45WCtweHJFZ24ycXRVTXBkSThSU2hoWW42SURXcApIVHlSaGlrQ0VoZWFON0JDVjBFS3pUWDlNNDVWZ3pkMUEva2xpVzdqU2JlSTEvN0lUUjY3SHdNV3RxNUkweWdwCkNUL2kvUXVLMy9ZQTlwaW1mbWd5RGZsU1ZPcmVCQWtVNVlsRUZtd2hWSEo4MS9KQzJCVUlRejBYWlpobGpqSlkKakVBT3FDT1RDZGh6M1A4clhHVHg5SDJhRzRlbWRkMHhoOUgzY2c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM5akNDQWQ2Z0F3SUJBZ0lSQU5Yd1VlR3lnMU1lYkk5Y253WThVdGd3RFFZSktvWklodmNOQVFFTEJRQXcKRlRFVE1CRUdBMVVFQXhNS2EyUnZZM1J2Y2k1cGJ6QWdGdzB5TXpBM01qZ3dPVFExTlRsYUdBOHlNakl6TURZeApNREE1TkRVMU9Wb3dGVEVUTUJFR0ExVUVBeE1LYTJSdlkzUnZjaTVwYnpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCCkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU9BcFI2VFlpWXdsdHpVRENFVEtmZm1HUlpsYTgyZEhGR2trZjdwb2F6OUkKNzZYLzRwWVFBS3dmREZIelI0Y05rUy9LUGRuOWkvRjhZcm8veDE0eUQrOS9zTlhxS3U0NWthYWRFRTJudVFJVwo0QVZDY1kzYUp1ZmRBbXdJZzh3eEdYU0lPNDd1eXJCc0pabzBsWmJsajVwRlJOemF1Z1ByR1dhLzU3bDhBTlZJCm0ydUsrVUxhRGhwd0crWFVTdVgzR0UzU2JNU3RFRm9vWGlNMEQxSGxHUEI0Y3AxVHhGRld1YzFlYUREYlQ5azkKcXV2cDlWU250WDJlMmxiNXl5cmFQNzBkbVJVN0lSMlZiejhlTEpEVjlEaFBrQ1F5UUFnRkZnVjZGK1NNc3VGbwpCZWlmT1VJUU1pbHM1NERGTC9rSUN1WmtWemJRcmhKWklVemRiN2cwb0EwQ0F3RUFBYU0vTUQwd0RnWURWUjBQCkFRSC9CQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUIKQWY4RUFqQUFNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUJ1aWQ0K3pGM0RkSng5MHpoS2poUUJ6ekNGZ2ZmVgpSS1dJZUhCWE9vb3R4Q011R1hiS25SNCttdEg1ZUJsWHRYUGhpQXpYUVEyY2p4d0ZpUEFWNTV5RkhXem5Pa3plCnhLd0NnNFN3SXpGZ1JOMzNhOUlVeU5hYzRPcE16c211QXBWYjhUY25LOTgvaDBtQ2taV2plUTlnalRUWUhac3oKWlcvRlZxcDZlTm4zMFJwTmJBalFCd1JoMkVidlF6dW5IWXhFb1l4aTJMUDlQSE9EQ1dpaXZocXB4TStJQTBucgplSG81ZHk1UFVuZ0h1a0ZJUFo0dFFVcXVLemZHaUtYV0o5a1ZKREptVE9md0pPSVJmVnpEcE9LN2N4N3dOVzJaClhkclZhNjdNV3A0WmtGREJzbEFPTFU0TmJrWmpDNURmbjJ6TjVickJyMXhPR3dQRzFpY2gzc0tQCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBNENsSHBOaUpqQ1czTlFNSVJNcDkrWVpGbVZyelowY1VhU1IvdW1oclAwanZwZi9pCmxoQUFyQjhNVWZOSGh3MlJMOG85MmYyTDhYeGl1ai9IWGpJUDczK3cxZW9xN2ptUnBwMFFUYWU1QWhiZ0JVSngKamRvbTU5MENiQWlEekRFWmRJZzdqdTdLc0d3bG1qU1ZsdVdQbWtWRTNOcTZBK3NaWnIvbnVYd0ExVWliYTRyNQpRdG9PR25BYjVkUks1ZmNZVGRKc3hLMFFXaWhlSXpRUFVlVVk4SGh5blZQRVVWYTV6VjVvTU50UDJUMnE2K24xClZLZTFmWjdhVnZuTEt0by92UjJaRlRzaEhaVnZQeDRza05YME9FK1FKREpBQ0FVV0JYb1g1SXl5NFdnRjZKODUKUWhBeUtXem5nTVV2K1FnSzVtUlhOdEN1RWxraFROMXZ1RFNnRFFJREFRQUJBb0lCQVFDNG1lWXhZRTN1QjRWWAo5OVpRYUgzVUJ2cThMMFZ5RVB4REZsYkYyWVl3eU16cTVNN2lDKzJ4MGFQZ3ZUdHpnZjNGNElTTlNCdCtWSlF0Cms2YUk4U3RrYmNEZ2VZYS9SdE9tNVlQdW42aGhpeHNUMmNNUU1jNkdkZUN2dlZka3lpNlBaRDNBR1BEODF5TWsKV2hleSsvd0Y3UE9uK2N6a3V6RGhDRHM1NmwvNVE5YUJxdzk0Zi9XQndPeE04eWhiUGpZQkZ2QVV6a2RTOVJEdApyb3NnczBnSnEwTkdKQ0Q5YVpGVlR0R3RJTFhGaFdHVm5hTVZ2am8vUDdxdTZJSmZEaHVITXl2b2ZzZVFWdnJBCkh6VnF5ajVkZHdyQ25WZE81eFhtNk53aG5nZ1NRbzVibFZXYzR0MEhYYmRYWWw4L091SUx5dkt1NHBnQ2Nqd0MKS1ZYZkcwTzFBb0dCQVBFT3M2d28rUTcrOFZZdGpiZHZRUmxIMlhzOTFSSkl3TjRiRmsxYlJrRkZHeWlBL09nNAo3NUVOZGNiWFBKenRiMzU5emxPbFZvYlVYeFYyZ2cxNmRXc3E5RExWMTEwdUw2NDBLb3h4NE9YRFFabU5FWk1aCitWWE1lYjYyRmw1REVFTWNXdWNxYzc0M0UrY2J2a09ZVmJER0xWZEpyL0dOanN1TXhaeHFXbWozQW9HQkFPNE8KZEp0ZlJxR0Rvd1V4OHNaZ1V4eVhjSnM0Rlo4U3NvWjIvUVU0MXU3ZWVnWk1laDJ4UXlQTmtGek00bjJPMnV4SwptQWtEKzd0ak1oSWREcjRDUjV2akh4LzdiTE9SK3dlWURpRGZiQ29aQnpCU2tWTUFMcStsRjdDY3ZQZ1VrUGkyCjFwSE5rMTE4Y2VqeGZ3TEw0QnJBbHhaRW1QaENuczd5OElJVksySWJBb0dBSmZkYzBSYTY4Mk92K3hTOXAxQjgKZmxEVXJoWjFBcVkyeWtTVjVLVWxrWTRpMHVSTjhQMVdyZy9pcHVpcmdVUGNOWjMyNnpHMVNSTVZ6cm1WamkzbApaSFdsZElROW9VMXU4UThDVEpCN0RYVU5WZlBqK3JreWpoTGdjZXNYNXN6Rk9PeTBYSWhSSm5waVJob1dnMnJ3CnhDRFNiMWNKd1ErOGw4NmFLU0tQRHMwQ2dZRUFsUW1MeTNJOHdBV3YzQ0xIUVpjd3NXZkdZZ2NjMGpoY2VINnEKTGNqR0YwcEZ6d2UyTkR5ME1nZ1NaMmNHTFdGd2docTVVSHVqOEU5TUc3Y0JjY2Z2bVJMNmU0Vm5LbzBzUWpiYQpNWTV2STNRRDRpYnZRSzJPalB5bzlqTkt3MjNzelNsNjhGRnAvMDlYNldTNEJjSXFEZFdoUVptMHcwakNNQUk4CnZOUVFFeDBDZ1lCRGV1M3R2OGRUU1lkU3ByL1V0RE5DYWpheUtPa2lYQk1pSENzS1NpN1JqTFE5RVpnTlVQK3EKZ3IzdVhlaVZRYjNnUXFlRDNSd2I3NWo0WjZ3bjBEbFIrWXhadlg3YnJMRVpoc3ZtNE9rcUs3TlhMeHNsbTJZYworM2o0MmJoSmI2SG5VOVJMVGdoQVlzVUY5NWhCUlZmdHY2bjdiYyt0MFo2OFVUZ0g0dklyM3c9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= +kind: Secret +metadata: + name: kdoctor-client-cert + namespace: kdoctor +type: kubernetes.io/tls +``` + + +### status + +| 字段 | 描述 | 结构 | +|--------------------|----------|---------------------------------------------| +| doneRound | 完成的任务轮数 | int | +| expectedRound | 期望执行的轮数 | string | +| finish | 任务是否完成 | string | +| lastRoundStatus | 最后一轮任务状态 | string | +| history | 任务历史 | 元素为[history](./apphttphealthy-zh_CN.md#History)的数组 | + + +#### History + +| 字段 | 描述 | +|----------------------------------|-----------------| +| roundNumber | 任务轮数 | +| status | 任务状态 | +| startTimeStamp | 本轮任务开始时间 | +| endTimeStamp | 本轮任务结束时间 | +| duration | 本轮任执行时间 | +| deadLineTimeStamp | 本轮任务 deadline | +| failedAgentNodeList | 任务失败的 agent | +| succeedAgentNodeList | 任务成功的 agent | +| notReportAgentNodeList | 没有上传任务报告的 agent | diff --git a/docs/reference/netdns-zh_CN.md b/docs/reference/netdns-zh_CN.md new file mode 100644 index 00000000..2e224edd --- /dev/null +++ b/docs/reference/netdns-zh_CN.md @@ -0,0 +1,172 @@ +# netdns + +## 基本描述 + +对于这种任务,每个 kdoctor 代理都会向指定的目标发送 Dns 请求,并获得成功率和平均延迟。 它可以指定成功条件来告知结果成功或失败。 + +## netdns 示例 + +### 集群 Dns Server 检查 + +```yaml +apiVersion: kdoctor.io/v1beta1 +kind: Netdns +metadata: + name: netdns-e2e-5144-852295818 +spec: + expect: + meanAccessDelayInMs: 1500 + successRate: 1 + request: + domain: kubernetes.default.svc.cluster.local + durationInSecond: 10 + perRequestTimeoutInMS: 1000 + protocol: udp + qps: 10 + schedule: + roundNumber: 1 + roundTimeoutMinute: 1 + schedule: 0 1 + target: + enableLatencyMetric: false + targetDns: + serviceName: kube-dns + serviceNamespace: kube-system + testIPv4: true + testIPv6: true +``` + +### 指定 dns server 检查 + +```Yaml +apiVersion: kdoctor.io/v1beta1 +kind: Netdns +metadata: + name: netdns-e2e-5145-9594432 +spec: + expect: + meanAccessDelayInMs: 1500 + successRate: 1 + request: + domain: netdns-e2e-5145-9594432.kubernetes.default.svc.cluster.local + durationInSecond: 10 + perRequestTimeoutInMS: 1000 + protocol: udp + qps: 10 + schedule: + roundNumber: 1 + roundTimeoutMinute: 1 + schedule: 0 1 + target: + enableLatencyMetric: false + targetUser: + port: 53 + server: 172.41.54.83 +``` + + + +## netdns 定义 + + +### Metadata + +| 字段 | 描述 | 结构 | 验证 | +|-----|---------------|--------|-----| +| name | netdns 资源的名称 | string | 必填 | + +### Spec + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-----------|------------------|------------------------------------------|---------|-------|------| +| schedule | 调度任务执行 | [schedule](./netdns-zh_CN.md#Schedule) | 可选 | | | +| request | 对目标地址请求配置 | [request](./netdns-zh_CN.md#Request) | 可选 | | | +| target | 请求目标设置 | [target](./netdns-zh_CN.md#Target) | 可选 | | | +| expect | 任务成功条件判断 | [expect](./netdns-zh_CN.md#Expect) | 可选 | | | + + +#### Schedule + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|----------|--------|-----|------------------------------------------------------------------------------------------------------------------|------| +| roundNumber | 任务执行轮数 | int | 可选 | 大于等于-1 且不等于 0,为 -1 时表示永久执行,大于 0 时表示将要执行的轮数 | 1 | +| schedule | 任务执行时间 | string | 可选 | 支持 linux crontab 写法 与 sample 写法
linux crontab : * 1 * * *
sample : 1 1 ,第一位表示多少分钟之后开启任务,第二位表示每一轮任务的间隔多少分钟执行 | "0 60" | +| roundTimeoutMinute | 任务超时时间 | int | 可选 | 大于 1 | 60 | + + +#### Request + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|------------------------|---------------------|--------|-----|-------|---------------| +| durationInSecond | 每轮任务的请求发压的持续时间 | int | 可选 | 最小值 1 | 2 | +| perRequestTimeoutInMS | 每个请求的超时时间 | int | 可选 | 大于 1 | 500 | +| qps | 每一个 agent 每秒请求数量 | int | 可选 | 大于 1 | 5 | +| protocol | 请求协议 | string | 可选 | udp、tcp、tcp-tls | udp | +| domain | dns 请求解析的域名 | string | 可选 | | kubernetes.default.svc.cluster.local | + +> 注意:使用 agent 请求时,所有的 agent 都会向目标地址进行请求,因此实际 server 接收的 qps 等于 agent 数量 * 设置的qps。 + +#### Target + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|-------------------------|----------------------------------------------|-----|------------|-------| +| targetUser | 对用户自定义的 dns server 进行 dns 请求| [targetUser](./netdns-zh_CN.md#TargetUser) | 可选 | | true | +| targetDns | 对集群的 dns server(coredns)进行 dns 请求 | [targetDns](./netdns-zh_CN.md#TargetDns) | 可选 | | true | +| enableLatencyMetric | 统计演示分布,开启后会增加内存使用量 | bool | 可选 | true,false | false | + +#### Expect + +任务成功条件,若任务结果没有达到期望条件,任务失败 + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|-----------|-------|-----|-------|------| +| meanAccessDelayInMs | 平均延时 | int | 可选 | 最小值 1 | 5000 | +| successRate | http请求成功率 | float | 可选 | 0-1 | 1 | + + +#### TargetUser + +测试用户自定义 dns server + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-------------|---------------|--------|-----|---------|---| +| server | dns server 地址 | string | 必填 | | | +| port | dns server 端口 | int | 必填 | 1-65535 | | + + +#### TargetDns + +测试集群内 dns server + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|----------|--------------------------|--------|-----|-----------|-------| +| testIPv4 | 测试 ipv4 地址 请求 A 记录 | bool | 可选 | true,false | true | +| testIPv6 | 测试 ipv6 地址 请求 AAAA 记录 | bool | 可选 | true,false | false | +| serviceName | 集群 dns server service 地址 | string | 可选 | | | +| serviceNamespace | 集群 dns server service 端口 | string | 可选 | | | + + +### status + +| 字段 | 描述 | 结构 | +|--------------------|----------|---------------------------------------------| +| doneRound | 完成的任务轮数 | int | +| expectedRound | 期望执行的轮数 | string | +| finish | 任务是否完成 | string | +| lastRoundStatus | 最后一轮任务状态 | string | +| history | 任务历史 | 元素为[history](./netdns-zh_CN.md#History)的数组 | + +#### History + +| 字段 | 描述 | +|----------------------------------|-----------------| +| roundNumber | 任务轮数 | +| status | 任务状态 | +| startTimeStamp | 本轮任务开始时间 | +| endTimeStamp | 本轮任务结束时间 | +| duration | 本轮任执行时间 | +| deadLineTimeStamp | 本轮任务 deadline | +| failedAgentNodeList | 任务失败的 agent | +| succeedAgentNodeList | 任务成功的 agent | +| notReportAgentNodeList | 没有上传任务报告的 agent | + diff --git a/docs/reference/netreach-zh_CN.md b/docs/reference/netreach-zh_CN.md new file mode 100644 index 00000000..c6f2733f --- /dev/null +++ b/docs/reference/netreach-zh_CN.md @@ -0,0 +1,120 @@ +# NetReach + +## 基本描述 + +对于这种任务,每个kdoctor agent都会相互发送http请求,请求地址为每一个 agent 的 pod ip 、service ip、ingress ip 等等,并获得成功率和平均延迟。它可以指定成功条件来判断结果是否成功。并且,可以通过聚合API获取详细的报告。 + +## NetReach 示例 + +```yaml +apiVersion: kdoctor.io/v1beta1 +kind: NetReach +metadata: + name: netreach +spec: + expect: + meanAccessDelayInMs: 1500 + successRate: 1 + request: + durationInSecond: 10 + perRequestTimeoutInMS: 1000 + qps: 10 + schedule: + roundNumber: 1 + roundTimeoutMinute: 1 + schedule: 0 0 + target: + clusterIP: true + enableLatencyMetric: false + endpoint: true + ingress: true + ipv4: true + ipv6: true + loadBalancer: true + multusInterface: false + nodePort: true +``` + +## NetReach 定义 + + +### Metadata + +| 字段 | 描述 | 结构 | 验证 | +|-----|---------------|--------|-----| +| name | NetReach 资源的名称 | string | 必填 | + +### Spec + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-----------|------------------|------------------------------------------|---------|-------|------| +| schedule | 调度任务执行 | [schedule](./netreach-zh_CN.md#Schedule) | 可选 | | | +| request | 对目标地址请求配置 | [request](./netreach-zh_CN.md#Request) | 可选 | | | +| target | 请求目标设置 | [target](./netreach-zh_CN.md#Target) | 可选 | | | +| expect | 任务成功条件判断 | [expect](./netreach-zh_CN.md#Expect) | 可选 | | | + +#### Schedule + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|----------|--------|-----|----------------------------------------------------------------------------------------------------------------------|------| +| roundNumber | 任务执行轮数 | int | 可选 | 大于等于-1 且不等于 0,为 -1 时表示永久执行,大于 0 时表示将要执行的轮数 | 1 | +| schedule | 任务执行时间 | string | 可选 | 支持 linux crontab 写法 与 sample 写法
linux crontab : * 1 * * *
sample : 1 1 ,第一位表示多少分钟之后开启任务,第二位表示每一轮任务的间隔多少分钟执行 | "0 60" | +| roundTimeoutMinute | 任务超时时间 | int | 可选 | 大于 1 | 60 | + +#### Request + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-----------------------|----------------------|-----|-----|-------|-----| +| durationInSecond | 每轮任务的请求发压的持续时间 | int | 可选 | 最小值 1 | 2 | +| perRequestTimeoutInMS | 每个请求的超时时间 | int | 可选 | 大于 1 | 500 | +| qps | 每一个 agent 每秒请求数量 | int | 可选 | 大于 1 | 5 | + +> 注意:使用 agent 请求时,所有的 agent 都会向目标地址进行请求,因此实际 server 接收的 qps 等于 agent 数量 * 设置的qps。 + +#### Target + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|-------------------------|--------|-----|------------|-------| +| clusterIP | 测试集群 service cluster ip | bool | 可选 | true,false | true | +| endpoint | 测试集群 pod endpoint | bool | 可选 | true,false | true | +| multusInterface | 测试集群 pod multus 多网卡 ip | bool | 可选 | true,false | false | +| ipv4 | 测试 ipv4 | bool | 可选 | true,false | true | +| ipv6 | 测试 ipv6 | bool | 可选 | true,false | false | +| ingress | 测试 ingress 地址 | bool | 可选 | true,false | false | +| nodePort | 测试 service node port | bool | 可选 | true,false | true | +| enableLatencyMetric | 统计演示分布,开启后会增加内存使用量 | bool | 可选 | true,false | false | + +#### Expect + +任务成功条件,若任务结果没有达到期望条件,任务失败 + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|-----------|-------|-----|-------|------| +| meanAccessDelayInMs | 平均延时 | int | 可选 | 最小值 1 | 5000 | +| successRate | http请求成功率 | float | 可选 | 0-1 | 1 | + + +### status + +| 字段 | 描述 | 结构 | +|--------------------|----------|---------------------------------------------| +| doneRound | 完成的任务轮数 | int | +| expectedRound | 期望执行的轮数 | string | +| finish | 任务是否完成 | string | +| lastRoundStatus | 最后一轮任务状态 | string | +| history | 任务历史 | 元素为[history](./netreach-zh_CN.md#History)的数组 | + + +#### History + +| 字段 | 描述 | +|----------------------------------|-----------------| +| roundNumber | 任务轮数 | +| status | 任务状态 | +| startTimeStamp | 本轮任务开始时间 | +| endTimeStamp | 本轮任务结束时间 | +| duration | 本轮任执行时间 | +| deadLineTimeStamp | 本轮任务 deadline | +| failedAgentNodeList | 任务失败的 agent | +| succeedAgentNodeList | 任务成功的 agent | +| notReportAgentNodeList | 没有上传任务报告的 agent | diff --git a/docs/usage/install-zh_CN.md b/docs/usage/install-zh_CN.md new file mode 100644 index 00000000..b343b0cf --- /dev/null +++ b/docs/usage/install-zh_CN.md @@ -0,0 +1,63 @@ +# 安装文档 + +## 介绍 + +安装 kdoctor 对集群内外的网络及性能进行检查 + +## 实施要求 + +1.一套完整的 k8s 集群 + +2.已安装 [Helm](https://helm.sh/docs/intro/install/) + +3.storageClass(可选) 如果需要 kdoctor-controller 高可用且需要报告持久化 + +## 安装 + +### 添加 helm 仓库 + +```shell +helm repo add kdoctor https://kdoctor-io.github.io/kdoctor +helm repo update kdoctor +``` + +### 安装 kdoctor +kdoctor 可以根据不同的需求进行安装,以下为几个场景的推荐安装方式 + +#### 1.非高可用安装 + +以下方法 kdoctor agent 只将报告打印到标准输出 +```shell +helm install kdoctor kdoctor/kdoctor \ + -n kdoctor --wait --debug --create-namespace \ +``` +#### 2.高可用安装 + +以下方法将 kdoctor-controller 的收集报告引导到存储,因此,需要安装storageClass + +```shell + +helm install kdoctor kdoctor/kdoctor \ + -n kdoctor --wait --debug --create-namespace \ + --set kdoctorController.replicas=2 \ + --set feature.aggregateReport.controller.pvc.enabled=true \ + --set feature.aggregateReport.controller.pvc.storageClass=local \ + --set feature.aggregateReport.controller.pvc.storageRequests="100Mi" \ + --set feature.aggregateReport.controller.pvc.storageLimits="500Mi" +``` + +### 确认 kdoctor 所有组件正常运行 + +```shell +kubectl get pod -n kdoctor +NAME READY STATUS RESTARTS AGE +kdoctor-agent-gp5mh 1/1 Running 0 137m +kdoctor-agent-xkjn4 1/1 Running 0 137m +kdoctor-controller-686b75d6d7-k4dcq 1/1 Running 0 137m +``` + +### 卸载 kdoctor + +```shell +helm uninstall kdoctor -n kdoctor +```